Open Monograph Press  3.3.0
ApprovedProofForm.inc.php
1 <?php
16 import('lib.pkp.classes.form.Form');
17 
18 class ApprovedProofForm extends Form {
20  var $approvedProof;
21 
24 
27 
34  public function __construct($monograph, $publicationFormat, $fileIdAndRevision) {
35  parent::__construct('controllers/grid/files/proof/form/approvedProofForm.tpl');
36 
37  $this->monograph = $monograph;
38  $this->publicationFormat = $publicationFormat;
39 
40  $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO'); /* @var $submissionFileDao SubmissionFileDAO */
41  list($fileId, $revision) = explode('-', $fileIdAndRevision);
42  $this->approvedProof = $submissionFileDao->getRevision($fileId, $revision, SUBMISSION_FILE_PROOF, $this->monograph->getId());
43 
44  // matches currencies like: 1,500.50 1500.50 1,112.15 5,99 .99
45  $this->addCheck(new FormValidatorRegExp($this, 'price', 'optional', 'grid.catalogEntry.validPriceRequired', '/^(([1-9]\d{0,2}(,\d{3})*|[1-9]\d*|0|)(.\d{2})?|([1-9]\d{0,2}(,\d{3})*|[1-9]\d*|0|)(.\d{2})?)$/'));
46  $this->addCheck(new FormValidatorPost($this));
47  $this->addCheck(new FormValidatorCSRF($this));
48  }
49 
50 
51  //
52  // Extended methods from Form
53  //
57  public function fetch($request, $template = null, $display = false) {
58  $templateMgr = TemplateManager::getManager($request);
59  $templateMgr->assign('fileId', $this->approvedProof->getFileIdAndRevision());
60  $templateMgr->assign('submissionId', $this->monograph->getId());
61  $templateMgr->assign('representationId', $this->publicationFormat->getId());
62  $templateMgr->assign('publicationId', $this->publicationFormat->getData('publicationId'));
63 
64  $salesTypes = array(
65  'openAccess' => 'payment.directSales.openAccess',
66  'directSales' => 'payment.directSales.directSales',
67  'notAvailable' => 'payment.directSales.notAvailable',
68  );
69 
70  $templateMgr->assign('salesTypes', $salesTypes);
71  $templateMgr->assign('salesType', $this->approvedProof->getSalesType());
72  return parent::fetch($request, $template, $display);
73  }
74 
78  public function readInputData() {
79  $this->readUserVars(array('price', 'salesType'));
80  }
81 
85  public function initData() {
86  $this->_data = array(
87  'price' => $this->approvedProof->getDirectSalesPrice(),
88  'salesType' => $this->approvedProof->getSalesType(),
89  );
90  }
91 
95  public function execute(...$functionArgs) {
96  parent::execute(...$functionArgs);
97  $submissionFileDao = DAORegistry::getDAO('SubmissionFileDAO'); /* @var $submissionFileDao SubmissionFileDAO */
98  $salesType = $this->getData('salesType');
99  if ($salesType === 'notAvailable') {
100  // Not available
101  $this->approvedProof->setDirectSalesPrice(null);
102  } elseif ($salesType === 'openAccess') {
103  // Open access
104  $this->approvedProof->setDirectSalesPrice(0);
105  } else { /* $salesType === 'directSales' */
106  // Direct sale
107  $this->approvedProof->setDirectSalesPrice($this->getData('price'));
108  }
109  $this->approvedProof->setSalesType($salesType);
110  $submissionFileDao->updateObject($this->approvedProof);
111 
112  return $this->approvedProof->getFileIdAndRevision();
113  }
114 }
115 
116 
ApprovedProofForm\execute
execute(... $functionArgs)
Definition: ApprovedProofForm.inc.php:104
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
Form\readUserVars
readUserVars($vars)
Definition: Form.inc.php:378
Form\getData
getData($key)
Definition: Form.inc.php:220
FormValidatorPost
Form validation check to make sure the form is POSTed.
Definition: FormValidatorPost.inc.php:18
ApprovedProofForm
Form for editing approved proofs (available for direct sales).
Definition: ApprovedProofForm.inc.php:18
ApprovedProofForm\readInputData
readInputData()
Definition: ApprovedProofForm.inc.php:87
ApprovedProofForm\initData
initData()
Definition: ApprovedProofForm.inc.php:94
ApprovedProofForm\fetch
fetch($request, $template=null, $display=false)
Definition: ApprovedProofForm.inc.php:66
ApprovedProofForm\$approvedProof
$approvedProof
Definition: ApprovedProofForm.inc.php:23
ApprovedProofForm\$monograph
$monograph
Definition: ApprovedProofForm.inc.php:29
PKPTemplateManager\getManager
static & getManager($request=null)
Definition: PKPTemplateManager.inc.php:1239
FormValidatorRegExp
Form validation check using a regular expression.
Definition: FormValidatorRegExp.inc.php:18
ApprovedProofForm\$publicationFormat
$publicationFormat
Definition: ApprovedProofForm.inc.php:35
ApprovedProofForm\__construct
__construct($monograph, $publicationFormat, $fileIdAndRevision)
Definition: ApprovedProofForm.inc.php:43
Form\addCheck
addCheck($formValidator)
Definition: Form.inc.php:395
FormValidatorCSRF
Form validation check to make sure the CSRF token is correct.
Definition: FormValidatorCSRF.inc.php:18
Form
Class defining basic operations for handling HTML forms.
Definition: Form.inc.php:47