/**
  * Save changes to article.
  * @param $request Request
  * @return int the article ID
  */
 function execute(&$request)
 {
     $articleDao =& DAORegistry::getDAO('ArticleDAO');
     $article =& $this->article;
     $articleContact = new ArticleContact();
     $articleContact->setArticleId($article->getId());
     $articleContact->setPQName($this->getData('pqName'));
     $articleContact->setPQAffiliation($this->getData('pqAffiliation'));
     $articleContact->setPQAddress($this->getData('pqAddress'));
     $articleContact->setPQCountry($this->getData('pqCountry'));
     $articleContact->setPQPhone($this->getData('pqPhone'));
     $articleContact->setPQFax($this->getData('pqFax'));
     $articleContact->setPQEmail($this->getData('pqEmail'));
     $articleContact->setSQName($this->getData('sqName'));
     $articleContact->setSQAffiliation($this->getData('sqAffiliation'));
     $articleContact->setSQAddress($this->getData('sqAddress'));
     $articleContact->setSQCountry($this->getData('sqCountry'));
     $articleContact->setSQPhone($this->getData('sqPhone'));
     $articleContact->setSQFax($this->getData('sqFax'));
     $articleContact->setSQEmail($this->getData('sqEmail'));
     $article->setArticleContact($articleContact);
     //update step
     if ($article->getSubmissionProgress() <= $this->step) {
         $article->stampStatusModified();
         $article->setSubmissionProgress($this->step + 1);
     } elseif ($article->getSubmissionProgress() == 9) {
         $article->setSubmissionProgress(8);
     }
     parent::execute();
     // Save the article
     $articleDao->updateArticle($article);
     return $this->articleId;
 }
 /**
  * Internal function to return a article contact object from a row.
  * @param $row array
  * @return ArticleContact object
  */
 function &_returnArticleContactFromRow(&$row)
 {
     $articleContact = new ArticleContact();
     $articleContact->setArticleId($row['article_id']);
     $articleContact->setPQName($row['pq_name']);
     $articleContact->setPQAffiliation($row['pq_affiliation']);
     $articleContact->setPQAddress($row['pq_address']);
     $articleContact->setPQCountry($row['pq_country']);
     $articleContact->setPQPhone($row['pq_phone']);
     $articleContact->setPQFax($row['pq_fax']);
     $articleContact->setPQEmail($row['pq_email']);
     $articleContact->setSQName($row['sq_name']);
     $articleContact->setSQAffiliation($row['sq_affiliation']);
     $articleContact->setSQAddress($row['sq_address']);
     $articleContact->setSQCountry($row['sq_country']);
     $articleContact->setSQPhone($row['sq_phone']);
     $articleContact->setSQFax($row['sq_fax']);
     $articleContact->setSQEmail($row['sq_email']);
     HookRegistry::call('ArticleContactDAO::_returnArticleContactFromRow', array(&$articleContact, &$row));
     return $articleContact;
 }