Open Monograph Press  3.3.0
PublicationFormat.inc.php
1 <?php
2 
17 import('lib.pkp.classes.submission.Representation');
18 
23  function __construct() {
24  parent::__construct();
25  }
26 
32  function getBestId() {
33  return $this->getData('urlPath')
34  ? $this->getData('urlPath')
35  : $this->getId();
36  }
37 
42  function getPhysicalFormat() {
43  return $this->getData('physicalFormat');
44  }
45 
50  function setPhysicalFormat($physicalFormat) {
51  return $this->setData('physicalFormat', $physicalFormat);
52  }
53 
58  function getEntryKey() {
59  return $this->getData('entryKey');
60  }
61 
66  function setEntryKey($entryKey) {
67  $this->setData('entryKey', $entryKey);
68  }
69 
74  function getNameForONIXCode() {
75  $onixCodelistItemDao = DAORegistry::getDAO('ONIXCodelistItemDAO'); /* @var $onixCodelistItemDao ONIXCodelistItemDAO */
76  $codes = $onixCodelistItemDao->getCodes('List7'); // List7 is for object formats
77  return $codes[$this->getEntryKey()];
78  }
79 
85  return $this->getData('countryManufactureCode');
86  }
87 
92  function setCountryManufactureCode($countryManufactureCode) {
93  return $this->setData('countryManufactureCode', $countryManufactureCode);
94  }
95 
101  return $this->getData('productAvailabilityCode');
102  }
103 
108  function setProductAvailabilityCode($productAvailabilityCode) {
109  return $this->setData('productAvailabilityCode', $productAvailabilityCode);
110  }
111 
116  function getHeight() {
117  return $this->getData('height');
118  }
119 
124  function setHeight($height) {
125  return $this->setData('height', $height);
126  }
127 
132  function getHeightUnitCode() {
133  return $this->getData('heightUnitCode');
134  }
135 
140  function setHeightUnitCode($heightUnitCode) {
141  return $this->setData('heightUnitCode', $heightUnitCode);
142  }
143 
148  function getWidth() {
149  return $this->getData('width');
150  }
151 
156  function setWidth($width) {
157  return $this->setData('width', $width);
158  }
159 
164  function getWidthUnitCode() {
165  return $this->getData('widthUnitCode');
166  }
167 
172  function setWidthUnitCode($widthUnitCode) {
173  return $this->setData('widthUnitCode', $widthUnitCode);
174  }
175 
180  function getThickness() {
181  return $this->getData('thickness');
182  }
183 
188  function setThickness($thickness) {
189  return $this->setData('thickness', $thickness);
190  }
191 
196  function getThicknessUnitCode() {
197  return $this->getData('thicknessUnitCode');
198  }
199 
204  function setThicknessUnitCode($thicknessUnitCode) {
205  return $this->setData('thicknessUnitCode', $thicknessUnitCode);
206  }
207 
212  function getWeight() {
213  return $this->getData('weight');
214  }
215 
220  function setWeight($weight) {
221  return $this->setData('weight', $weight);
222  }
223 
228  function getWeightUnitCode() {
229  return $this->getData('weightUnitCode');
230  }
231 
236  function setWeightUnitCode($weightUnitCode) {
237  return $this->setData('weightUnitCode', $weightUnitCode);
238  }
239 
244  function getFileSize() {
245  return $this->getData('fileSize');
246  }
247 
254  $fileSize = 0;
255  $publication = Services::get('publication')->get($this->getData('publicationId'));
256  $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO'); /* @var $submissionFileDao SubmissionFileDAO */
257  import('lib.pkp.classes.submission.SubmissionFile'); // File constants
258  $stageMonographFiles = $submissionFileDao->getLatestRevisionsByAssocId(
259  ASSOC_TYPE_PUBLICATION_FORMAT, $this->getId(),
260  $publication->getData('submissionId'), SUBMISSION_FILE_PROOF
261  );
262 
263  foreach ($stageMonographFiles as $monographFile) {
264  if ($monographFile->getViewable()) {
265  $fileSize += (int) $monographFile->getFileSize();
266  }
267  }
268 
269  return sprintf('%d.3', $fileSize/(1024*1024)); // bytes to Mb
270  }
271 
276  function setFileSize($fileSize) {
277  return $this->setData('fileSize', $fileSize);
278  }
279 
284  function getSalesRights() {
285  $salesRightsDao = DAORegistry::getDAO('SalesRightsDAO'); /* @var $salesRightsDao SalesRightsDAO */
286  return $salesRightsDao->getByPublicationFormatId($this->getId());
287  }
288 
294  $identificationCodeDao = DAORegistry::getDAO('IdentificationCodeDAO'); /* @var $identificationCodeDao IdentificationCodeDAO */
295  return $identificationCodeDao->getByPublicationFormatId($this->getId());
296  }
297 
302  function getPublicationDates() {
303  $publicationDateDao = DAORegistry::getDAO('PublicationDateDAO'); /* @var $publicationDateDao PublicationDateDAO */
304  return $publicationDateDao->getByPublicationFormatId($this->getId());
305  }
306 
311  function getMarkets() {
312  $marketDao = DAORegistry::getDAO('MarketDAO'); /* @var $marketDao MarketDAO */
313  return $marketDao->getByPublicationFormatId($this->getId());
314  }
315 
321  return $this->getData('productFormDetailCode');
322  }
323 
328  function setProductFormDetailCode($productFormDetailCode) {
329  return $this->setData('productFormDetailCode', $productFormDetailCode);
330  }
331 
337  return $this->getData('productCompositionCode');
338  }
339 
344  function setProductCompositionCode($productCompositionCode) {
345  return $this->setData('productCompositionCode', $productCompositionCode);
346  }
347 
352  function getFrontMatter() {
353  return $this->getData('frontMatter');
354  }
355 
360  function setFrontMatter($frontMatter) {
361  return $this->setData('frontMatter', $frontMatter);
362  }
363 
368  function getBackMatter() {
369  return $this->getData('backMatter');
370  }
371 
376  function setBackMatter($backMatter) {
377  return $this->setData('backMatter', $backMatter);
378  }
379 
384  function getImprint() {
385  return $this->getData('imprint');
386  }
387 
392  function setImprint($imprint) {
393  return $this->setData('imprint', $imprint);
394  }
395 
401  return $this->getData('technicalProtectionCode');
402  }
403 
408  function setTechnicalProtectionCode($technicalProtectionCode) {
409  return $this->setData('technicalProtectionCode', $technicalProtectionCode);
410  }
411 
417  return $this->getData('returnableIndicatorCode');
418  }
419 
424  function setReturnableIndicatorCode($returnableIndicatorCode) {
425  return $this->setData('returnableIndicatorCode', $returnableIndicatorCode);
426  }
427 
432  function getIsAvailable() {
433  return $this->getData('isAvailable');
434  }
435 
440  function setIsAvailable($isAvailable) {
441  return $this->setData('isAvailable', $isAvailable);
442  }
443 
451  function hasNeededONIXFields() {
452  // ONIX requires one identification code and a market region with a defined price.
453  $assignedIdentificationCodes = $this->getIdentificationCodes();
454  $assignedMarkets = $this->getMarkets();
455 
456  $errors = array();
457  if ($assignedMarkets->wasEmpty()) {
458  $errors[] = 'monograph.publicationFormat.noMarketsAssigned';
459  }
460 
461  if ($assignedIdentificationCodes->wasEmpty()) {
462  $errors[] = 'monograph.publicationFormat.noCodesAssigned';
463  }
464 
465  return array_merge($errors, $this->_checkRequiredFieldsAssigned());
466  }
467 
474  $requiredFields = array('productCompositionCode' => 'grid.catalogEntry.codeRequired', 'productAvailabilityCode' => 'grid.catalogEntry.productAvailabilityRequired');
475 
476  $errors = array();
477 
478  foreach ($requiredFields as $field => $errorCode) {
479  if ($this->getData($field) == '') {
480  $errors[] = $errorCode;
481  }
482  }
483 
484  if (!$this->getPhysicalFormat()) {
485  if (!$this->getFileSize() && !$this->getCalculatedFileSize()) {
486  $errors['fileSize'] = 'grid.catalogEntry.fileSizeRequired';
487  }
488  }
489 
490  return $errors;
491  }
492 
497  function getPressId() {
498  return $this->getContextId();
499  }
500 
505  function getDimensions() {
506 
507  if (!$this->getPhysicalFormat()) {
508  return '';
509  }
510 
511  $width = $this->getWidth();
512  $height = $this->getHeight();
513  $thickness = $this->getThickness();
514 
515  $dimensions = array();
516  if (!empty($width)) { $dimensions[] = $width . $this->getWidthUnitCode(); }
517  if (!empty($height)) { $dimensions[] = $height . $this->getHeightUnitCode(); }
518  if (!empty($thickness)) { $dimensions[] = $thickness . $this->getThicknessUnitCode(); }
519 
520  return join( __('monograph.publicationFormat.productDimensionsSeparator'), $dimensions );
521  }
522 }
523 
524 
PublicationFormat\setFrontMatter
setFrontMatter($frontMatter)
Definition: PublicationFormat.inc.php:360
PublicationFormat\getFrontMatter
getFrontMatter()
Definition: PublicationFormat.inc.php:352
PublicationFormat\getProductFormDetailCode
getProductFormDetailCode()
Definition: PublicationFormat.inc.php:320
DataObject\getData
& getData($key, $locale=null)
Definition: DataObject.inc.php:100
PublicationFormat\setHeight
setHeight($height)
Definition: PublicationFormat.inc.php:124
PublicationFormat\getPhysicalFormat
getPhysicalFormat()
Definition: PublicationFormat.inc.php:42
PublicationFormat\setCountryManufactureCode
setCountryManufactureCode($countryManufactureCode)
Definition: PublicationFormat.inc.php:92
PublicationFormat\setWeight
setWeight($weight)
Definition: PublicationFormat.inc.php:220
PublicationFormat\setIsAvailable
setIsAvailable($isAvailable)
Definition: PublicationFormat.inc.php:440
PublicationFormat\getNameForONIXCode
getNameForONIXCode()
Definition: PublicationFormat.inc.php:74
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
PublicationFormat\setWidthUnitCode
setWidthUnitCode($widthUnitCode)
Definition: PublicationFormat.inc.php:172
PublicationFormat\setPhysicalFormat
setPhysicalFormat($physicalFormat)
Definition: PublicationFormat.inc.php:50
PublicationFormat\__construct
__construct()
Definition: PublicationFormat.inc.php:23
PublicationFormat\getHeight
getHeight()
Definition: PublicationFormat.inc.php:116
PublicationFormat\setProductFormDetailCode
setProductFormDetailCode($productFormDetailCode)
Definition: PublicationFormat.inc.php:328
Representation\getContextId
getContextId()
Definition: Representation.inc.php:131
PublicationFormat\hasNeededONIXFields
hasNeededONIXFields()
Definition: PublicationFormat.inc.php:451
PublicationFormat\getThickness
getThickness()
Definition: PublicationFormat.inc.php:180
PublicationFormat\setTechnicalProtectionCode
setTechnicalProtectionCode($technicalProtectionCode)
Definition: PublicationFormat.inc.php:408
PublicationFormat\getBestId
getBestId()
Definition: PublicationFormat.inc.php:32
PublicationFormat\getWeight
getWeight()
Definition: PublicationFormat.inc.php:212
PublicationFormat\setImprint
setImprint($imprint)
Definition: PublicationFormat.inc.php:392
PublicationFormat\_checkRequiredFieldsAssigned
_checkRequiredFieldsAssigned()
Definition: PublicationFormat.inc.php:473
PublicationFormat\setThicknessUnitCode
setThicknessUnitCode($thicknessUnitCode)
Definition: PublicationFormat.inc.php:204
PublicationFormat\getCountryManufactureCode
getCountryManufactureCode()
Definition: PublicationFormat.inc.php:84
PublicationFormat\getTechnicalProtectionCode
getTechnicalProtectionCode()
Definition: PublicationFormat.inc.php:400
PublicationFormat\setFileSize
setFileSize($fileSize)
Definition: PublicationFormat.inc.php:276
PublicationFormat\getReturnableIndicatorCode
getReturnableIndicatorCode()
Definition: PublicationFormat.inc.php:416
PublicationFormat\setHeightUnitCode
setHeightUnitCode($heightUnitCode)
Definition: PublicationFormat.inc.php:140
PublicationFormat\setEntryKey
setEntryKey($entryKey)
Definition: PublicationFormat.inc.php:66
PublicationFormat\setProductAvailabilityCode
setProductAvailabilityCode($productAvailabilityCode)
Definition: PublicationFormat.inc.php:108
PublicationFormat\setWeightUnitCode
setWeightUnitCode($weightUnitCode)
Definition: PublicationFormat.inc.php:236
PublicationFormat\setBackMatter
setBackMatter($backMatter)
Definition: PublicationFormat.inc.php:376
PublicationFormat\getPressId
getPressId()
Definition: PublicationFormat.inc.php:497
PublicationFormat\getHeightUnitCode
getHeightUnitCode()
Definition: PublicationFormat.inc.php:132
PublicationFormat\getIsAvailable
getIsAvailable()
Definition: PublicationFormat.inc.php:432
PublicationFormat\getCalculatedFileSize
getCalculatedFileSize()
Definition: PublicationFormat.inc.php:253
PublicationFormat\getThicknessUnitCode
getThicknessUnitCode()
Definition: PublicationFormat.inc.php:196
PublicationFormat\getWeightUnitCode
getWeightUnitCode()
Definition: PublicationFormat.inc.php:228
DataObject\getId
getId()
Definition: DataObject.inc.php:206
PublicationFormat\setProductCompositionCode
setProductCompositionCode($productCompositionCode)
Definition: PublicationFormat.inc.php:344
PublicationFormat\setThickness
setThickness($thickness)
Definition: PublicationFormat.inc.php:188
PublicationFormat\getProductAvailabilityCode
getProductAvailabilityCode()
Definition: PublicationFormat.inc.php:100
PublicationFormat\getIdentificationCodes
getIdentificationCodes()
Definition: PublicationFormat.inc.php:293
PublicationFormat\getMarkets
getMarkets()
Definition: PublicationFormat.inc.php:311
PublicationFormat\getProductCompositionCode
getProductCompositionCode()
Definition: PublicationFormat.inc.php:336
PublicationFormat\getPublicationDates
getPublicationDates()
Definition: PublicationFormat.inc.php:302
Representation
A submission's representation (Publication Format, Galley, ...)
Definition: Representation.inc.php:18
PublicationFormat
A publication format for a monograph.
Definition: PublicationFormat.inc.php:19
PublicationFormat\setWidth
setWidth($width)
Definition: PublicationFormat.inc.php:156
PublicationFormat\getWidth
getWidth()
Definition: PublicationFormat.inc.php:148
PublicationFormat\getImprint
getImprint()
Definition: PublicationFormat.inc.php:384
PublicationFormat\getFileSize
getFileSize()
Definition: PublicationFormat.inc.php:244
PublicationFormat\getSalesRights
getSalesRights()
Definition: PublicationFormat.inc.php:284
PublicationFormat\setReturnableIndicatorCode
setReturnableIndicatorCode($returnableIndicatorCode)
Definition: PublicationFormat.inc.php:424
PublicationFormat\getBackMatter
getBackMatter()
Definition: PublicationFormat.inc.php:368
DataObject\setData
setData($key, $value, $locale=null)
Definition: DataObject.inc.php:132
PublicationFormat\getEntryKey
getEntryKey()
Definition: PublicationFormat.inc.php:58
PublicationFormat\getWidthUnitCode
getWidthUnitCode()
Definition: PublicationFormat.inc.php:164
PKPServices\get
static get($service)
Definition: PKPServices.inc.php:49
PublicationFormat\getDimensions
getDimensions()
Definition: PublicationFormat.inc.php:505