16 import(
'lib.pkp.classes.form.Form');
35 parent::__construct(
'controllers/grid/files/proof/form/approvedProofForm.tpl');
41 list($fileId, $revision) = explode(
'-', $fileIdAndRevision);
42 $this->approvedProof = $submissionFileDao->getRevision($fileId, $revision, SUBMISSION_FILE_PROOF, $this->monograph->getId());
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})?)$/'));
57 public function fetch($request, $template =
null, $display =
false) {
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'));
65 'openAccess' =>
'payment.directSales.openAccess',
66 'directSales' =>
'payment.directSales.directSales',
67 'notAvailable' =>
'payment.directSales.notAvailable',
70 $templateMgr->assign(
'salesTypes', $salesTypes);
71 $templateMgr->assign(
'salesType', $this->approvedProof->getSalesType());
72 return parent::fetch($request, $template, $display);
87 'price' => $this->approvedProof->getDirectSalesPrice(),
88 'salesType' => $this->approvedProof->getSalesType(),
95 public function execute(...$functionArgs) {
96 parent::execute(...$functionArgs);
98 $salesType = $this->
getData(
'salesType');
99 if ($salesType ===
'notAvailable') {
101 $this->approvedProof->setDirectSalesPrice(
null);
102 } elseif ($salesType ===
'openAccess') {
104 $this->approvedProof->setDirectSalesPrice(0);
107 $this->approvedProof->setDirectSalesPrice($this->
getData(
'price'));
109 $this->approvedProof->setSalesType($salesType);
110 $submissionFileDao->updateObject($this->approvedProof);
112 return $this->approvedProof->getFileIdAndRevision();