00001 <?php
00002
00015
00016
00017
00018 import("author.form.submit.AuthorSubmitForm");
00019
00020 class AuthorSubmitStep5Form extends AuthorSubmitForm {
00021
00025 function AuthorSubmitStep5Form($article) {
00026 parent::AuthorSubmitForm($article, 5);
00027 }
00028
00032 function display() {
00033 $journal = &Request::getJournal();
00034 $user = &Request::getUser();
00035 $templateMgr = &TemplateManager::getManager();
00036
00037
00038 $articleFileDao = &DAORegistry::getDAO('ArticleFileDAO');
00039 $articleFiles =& $articleFileDao->getArticleFilesByArticle($this->articleId);
00040
00041 $templateMgr->assign_by_ref('files', $articleFiles);
00042 $templateMgr->assign_by_ref('journal', Request::getJournal());
00043
00044
00045 import('payment.ojs.OJSPaymentManager');
00046 $paymentManager =& OJSPaymentManager::getManager();
00047 if ( $paymentManager->submissionEnabled() || $paymentManager->fastTrackEnabled() || $paymentManager->publicationEnabled()) {
00048 $templateMgr->assign('authorFees', true);
00049 $completedPaymentDAO =& DAORegistry::getDAO('OJSCompletedPaymentDAO');
00050 $articleId = $this->articleId;
00051
00052 if ( $paymentManager->submissionEnabled() ) {
00053 $templateMgr->assign_by_ref('submissionPayment', $completedPaymentDAO->getSubmissionCompletedPayment ( $journal->getJournalId(), $articleId ));
00054 $templateMgr->assign('manualPayment', $journal->getSetting('paymentMethodPluginName') == 'ManualPayment');
00055 }
00056
00057 if ( $paymentManager->fastTrackEnabled() ) {
00058 $templateMgr->assign_by_ref('fastTrackPayment', $completedPaymentDAO->getFastTrackCompletedPayment ( $journal->getJournalId(), $articleId ));
00059 }
00060 }
00061
00062 parent::display();
00063 }
00064
00068 function initData() {
00069 if (isset($this->article)) {
00070 $this->_data = array(
00071 'commentsToEditor' => $this->article->getCommentsToEditor()
00072 );
00073 }
00074 }
00075
00079 function readInputData() {
00080 $this->readUserVars(array('qualifyForWaiver', 'commentsToEditor'));
00081 }
00082
00086 function validate() {
00087 import('payment.ojs.OJSPaymentManager');
00088 $paymentManager =& OJSPaymentManager::getManager();
00089 if ( $paymentManager->submissionEnabled() ) {
00090 if ( !$this->isValid() ) return false;
00091
00092 $journal =& Request::getJournal();
00093 $journalId = $journal->getJournalId();
00094 $articleId = $this->articleId;
00095 $user =& Request::getUser();
00096
00097 $completedPaymentDAO =& DAORegistry::getDAO('OJSCompletedPaymentDAO');
00098 if ( $completedPaymentDAO->hasPaidSubmission ( $journalId, $articleId ) ) {
00099 return parent::validate();
00100 } elseif ( Request::getUserVar('qualifyForWaiver') && Request::getUserVar('commentsToEditor') != '') {
00101 return parent::validate();
00102 } elseif ( Request::getUserVar('paymentSent') ) {
00103 return parent::validate();
00104 } else {
00105 $queuedPayment =& $paymentManager->createQueuedPayment($journalId, PAYMENT_TYPE_SUBMISSION, $user->getUserId(), $articleId, $journal->getSetting('submissionFee'));
00106 $queuedPaymentId = $paymentManager->queuePayment($queuedPayment);
00107
00108 $paymentManager->displayPaymentForm($queuedPaymentId, $queuedPayment);
00109 exit;
00110 }
00111 } else {
00112 return parent::validate();
00113 }
00114 }
00115
00119 function execute() {
00120 $articleDao = &DAORegistry::getDAO('ArticleDAO');
00121
00122 $journal = Request::getJournal();
00123
00124
00125 $article = &$this->article;
00126
00127 if ($this->getData('commentsToEditor') != '') {
00128 $article->setCommentsToEditor($this->getData('commentsToEditor'));
00129 }
00130
00131 $article->setDateSubmitted(Core::getCurrentDate());
00132 $article->setSubmissionProgress(0);
00133 $article->stampStatusModified();
00134 $articleDao->updateArticle($article);
00135
00136
00137 $authorSubmissionDao =& DAORegistry::getDAO('AuthorSubmissionDAO');
00138 $authorSubmission =& $authorSubmissionDao->getAuthorSubmission($article->getArticleId());
00139 AuthorAction::designateReviewVersion($authorSubmission, true);
00140 unset($authorSubmission);
00141
00142
00143 $copyeditorSubmissionDao = &DAORegistry::getDAO('CopyeditorSubmissionDAO');
00144 $copyeditorSubmission = &new CopyeditorSubmission();
00145 $copyeditorSubmission->setArticleId($article->getArticleId());
00146 $copyeditorSubmission->setCopyeditorId(0);
00147 $copyeditorSubmissionDao->insertCopyeditorSubmission($copyeditorSubmission);
00148
00149 $layoutDao = &DAORegistry::getDAO('LayoutAssignmentDAO');
00150 $layoutAssignment = &new LayoutAssignment();
00151 $layoutAssignment->setArticleId($article->getArticleId());
00152 $layoutAssignment->setEditorId(0);
00153 $layoutDao->insertLayoutAssignment($layoutAssignment);
00154
00155 $proofAssignmentDao = &DAORegistry::getDAO('ProofAssignmentDAO');
00156 $proofAssignment = &new ProofAssignment();
00157 $proofAssignment->setArticleId($article->getArticleId());
00158 $proofAssignment->setProofreaderId(0);
00159 $proofAssignmentDao->insertProofAssignment($proofAssignment);
00160
00161 $sectionEditors = $this->assignEditors($article);
00162
00163 $user = &Request::getUser();
00164
00165
00166 import('search.ArticleSearchIndex');
00167 ArticleSearchIndex::indexArticleMetadata($article);
00168 ArticleSearchIndex::indexArticleFiles($article);
00169
00170
00171 import('mail.ArticleMailTemplate');
00172 $mail = &new ArticleMailTemplate($article, 'SUBMISSION_ACK');
00173 $mail->setFrom($journal->getSetting('contactEmail'), $journal->getSetting('contactName'));
00174 if ($mail->isEnabled()) {
00175 $mail->addRecipient($user->getEmail(), $user->getFullName());
00176
00177 if($journal->getSetting('copySubmissionAckPrimaryContact')) {
00178 $mail->addBcc(
00179 $journal->getSetting('contactEmail'),
00180 $journal->getSetting('contactName')
00181 );
00182 }
00183 if($journal->getSetting('copySubmissionAckSpecified')) {
00184 $copyAddress = $journal->getSetting('copySubmissionAckAddress');
00185 if (!empty($copyAddress)) $mail->addBcc($copyAddress);
00186 }
00187
00188
00189 foreach ($sectionEditors as $sectionEditorEntry) {
00190 $sectionEditor =& $sectionEditorEntry['user'];
00191 $mail->addBcc($sectionEditor->getEmail(), $sectionEditor->getFullName());
00192 unset($sectionEditor);
00193 }
00194
00195 $mail->assignParams(array(
00196 'authorName' => $user->getFullName(),
00197 'authorUsername' => $user->getUsername(),
00198 'editorialContactSignature' => $journal->getSetting('contactName') . "\n" . $journal->getJournalTitle(),
00199 'submissionUrl' => Request::url(null, 'author', 'submission', $article->getArticleId())
00200 ));
00201 $mail->send();
00202 }
00203
00204 import('article.log.ArticleLog');
00205 import('article.log.ArticleEventLogEntry');
00206 ArticleLog::logEvent($this->articleId, ARTICLE_LOG_ARTICLE_SUBMIT, ARTICLE_LOG_TYPE_AUTHOR, $user->getUserId(), 'log.author.submitted', array('submissionId' => $article->getArticleId(), 'authorName' => $user->getFullName()));
00207
00208 return $this->articleId;
00209 }
00210
00211 }
00212
00213 ?>