00001 <?php
00002
00016
00017
00018
00019 import('submission.copyAssignment.CopyAssignment');
00020
00021 class CopyAssignmentDAO extends DAO {
00022 var $articleFileDao;
00023
00027 function CopyAssignmentDAO() {
00028 parent::DAO();
00029 $this->articleFileDao = &DAORegistry::getDAO('ArticleFileDAO');
00030 }
00031
00037 function &getCopyAssignmentById($copyedId) {
00038 $result = &$this->retrieve(
00039 'SELECT c.*, u.first_name, u.last_name FROM copyed_assignments c LEFT JOIN users u ON (c.copyeditor_id = u.user_id) WHERE c.copyed_id = ?',
00040 $copyedId
00041 );
00042
00043 $returner = null;
00044 if ($result->RecordCount() != 0) {
00045 $returner = &$this->_returnCopyAssignmentFromRow($result->GetRowAssoc(false));
00046 }
00047
00048 $result->Close();
00049 unset($result);
00050
00051 return $returner;
00052 }
00053
00059 function &getCopyAssignmentByArticleId($articleId) {
00060 $result = &$this->retrieve(
00061 'SELECT c.*, a.copyedit_file_id, u.first_name, u.last_name FROM copyed_assignments c LEFT JOIN articles a ON (c.article_id = a.article_id) LEFT JOIN users u ON (c.copyeditor_id = u.user_id) WHERE c.article_id = ?',
00062 $articleId
00063 );
00064
00065 $returner = null;
00066 if ($result->RecordCount() != 0) {
00067 $returner = &$this->_returnCopyAssignmentFromRow($result->GetRowAssoc(false));
00068 }
00069
00070 $result->Close();
00071 unset($result);
00072
00073 return $returner;
00074 }
00075
00081 function &_returnCopyAssignmentFromRow(&$row) {
00082 $copyAssignment = &new CopyAssignment();
00083
00084
00085 $copyAssignment->setCopyedId($row['copyed_id']);
00086 $copyAssignment->setArticleId($row['article_id']);
00087 $copyAssignment->setCopyeditorId($row['copyeditor_id']);
00088 $copyAssignment->setCopyeditorFullName($row['first_name'].' '.$row['last_name']);
00089 $copyAssignment->setDateNotified($this->datetimeFromDB($row['date_notified']));
00090 $copyAssignment->setDateUnderway($this->datetimeFromDB($row['date_underway']));
00091 $copyAssignment->setDateCompleted($this->datetimeFromDB($row['date_completed']));
00092 $copyAssignment->setDateAcknowledged($this->datetimeFromDB($row['date_acknowledged']));
00093 $copyAssignment->setDateAuthorNotified($this->datetimeFromDB($row['date_author_notified']));
00094 $copyAssignment->setDateAuthorUnderway($this->datetimeFromDB($row['date_author_underway']));
00095 $copyAssignment->setDateAuthorCompleted($this->datetimeFromDB($row['date_author_completed']));
00096 $copyAssignment->setDateAuthorAcknowledged($this->datetimeFromDB($row['date_author_acknowledged']));
00097 $copyAssignment->setDateFinalNotified($this->datetimeFromDB($row['date_final_notified']));
00098 $copyAssignment->setDateFinalUnderway($this->datetimeFromDB($row['date_final_underway']));
00099 $copyAssignment->setDateFinalCompleted($this->datetimeFromDB($row['date_final_completed']));
00100 $copyAssignment->setDateFinalAcknowledged($this->datetimeFromDB($row['date_final_acknowledged']));
00101 $copyAssignment->setInitialRevision($row['initial_revision']);
00102 $copyAssignment->setEditorAuthorRevision($row['editor_author_revision']);
00103 $copyAssignment->setFinalRevision($row['final_revision']);
00104
00105
00106
00107
00108 if ($row['initial_revision'] != null) {
00109 $copyAssignment->setInitialCopyeditFile($this->articleFileDao->getArticleFile($row['copyedit_file_id'], $row['initial_revision']));
00110 }
00111
00112
00113 if ($row['editor_author_revision'] != null) {
00114 $copyAssignment->setEditorAuthorCopyeditFile($this->articleFileDao->getArticleFile($row['copyedit_file_id'], $row['editor_author_revision']));
00115 }
00116
00117
00118 if ($row['final_revision'] != null) {
00119 $copyAssignment->setFinalCopyeditFile($this->articleFileDao->getArticleFile($row['copyedit_file_id'], $row['final_revision']));
00120 }
00121
00122 HookRegistry::call('CopyAssignmentDAO::_returnCopyAssignmentFromRow', array(&$copyAssignment, &$row));
00123
00124 return $copyAssignment;
00125 }
00126
00131 function deleteCopyAssignmentsByArticle($articleId) {
00132 return $this->update(
00133 'DELETE FROM copyed_assignments WHERE article_id = ?',
00134 $articleId
00135 );
00136 }
00137
00142 function getInsertCopyedId() {
00143 return $this->getInsertId('copyed_assignments', 'copyed_id');
00144 }
00145 }
00146
00147 ?>