. */ include("./include/include.php"); require_once(FILESYSTEMROOTPATH."jc/include/classes/DefaultLayout.php"); require_once(FILESYSTEMROOTPATH."include/form/AbstractForm.php"); /** * Helper classes */ class AmendForm extends AbstractForm { private $aService; private $type; private $original; public function __construct(Layout $layout, IModel $model, AmendmentsService $aService, $type) { parent::__construct($layout, $model); $this->aService = $aService; $this->type = $type; $this->original = new Amendments(''); $this->original->copy($model); } public function save(IModel $model) { $psService = $GLOBALS['ClassFactory']->getProposals_sentencesService(); $ps = $psService->load($model->getProposals_sentence_id()); $types = $this->changes($model); foreach($types as $type){ $setter1='set'.ucfirst($type).'_status'; $model->$setter1('Edit'); $ps->$setter('Edit'); //for display reasons } $psService->saveOrUpdate($ps); if( $this->aService->saveOrUpdate($model) ) { $url = $this->type.'4.php?proposal_id='.$model->getProposal_id().'&order='.$model->getOrder(); $this->layout->redirect($url); }else { $this->layout->echoln("Failed saving."); } } private function changes($model){ $changes = array(); if ($this->original->getTitle() != $model->getTitle()){ $changes[] = 'title'; } if (($this->original->getTitle2() != $model->getTitle2())||($this->original->getOrder2() != $model->getOrder2())){ $changes[] = 'title2'; } if (($this->original->getArticle_title() != $model->getArticle_title())||($this->original->getArticle() != $model->getArticle())){ $changes[] = 'article_title'; } if ($this->original->getParagraph() != $model->getParagraph()){ $changes[] = 'paragraph'; } return $changes; } } /** * End of helper classes */ $layout = new DefaultLayout("JC_MANAGE", "./jc/"); $layout->init(); //$pmService = $GLOBALS['ClassFactory']->getProposals_managementService(); $aService = $GLOBALS['ClassFactory']->getAmendmentsService(); $type = $_GET['type']; $proposal_id=$_GET['pid']; $psid=$_GET['psid']; $sid=$_GET['sid']; if (isset($_GET['aid'])){ $aid = $_GET['aid'];} else{ $aid = NULL; } if(isset($_GET['new'])){ $psService = $GLOBALS['ClassFactory']->getProposals_sentencesService(); if(isset($_POST['proposals_sentence_id'])){ $psid = $_POST['proposals_sentence_id']; $ps = $psService->load($psid); }else{ if($psid != NULL){ $ps_old = $psService->load($psid); $ps = new Proposals_sentences(''); $ps->copy($ps_old); } else{ //amend not edited sentence -> create proposals_sentence $ciaService = $GLOBALS['ClassFactory']->getCIAService(); $sentence = $ciaService->load($sid); $ps = new Proposals_sentences(''); $ps->copy_from_cia_array($sentence); $ps->setProposal_id($proposal_id); } $ps->setSentence_text(''); if($_GET['new']=='New_v'){ $ps->setSentence($ps_old->getSentence()+1); $ps->setChange_type('New_v'); }else{ $ps->setSentence($ps_old->getSentence()-1); $ps->setChange_type('New_^'); } $ps->setId(''); $psService->saveOrUpdate($ps); //get last inserted id $ps->setId($psService->get_last_id()); $psid = $ps->getId(); } } //create amendment object $amendment = new Amendments(''); $amendment->copy($ps); $url = $type.'4.php?proposal_id='.$amendment->getProposal_id().'&order='.$amendment->getOrder(); $layout->echoln("Back
"); //display form $amendment->setSession_type(ucfirst($type)); $amendment->setStatus('Accept'); $amendment->setProposer_uid('-'); $form = new AmendForm($layout, $amendment, $aService, $type); //$proposer_uid = new TextField('proposer_uid', 'Proposer UID'); $session = new TextField('session_type', 'Session'); $session->setClass('disabled'); //$status = new SelectField('status','Accepted by Proposer',array('Accept'=>'Accept','Reject'=>'Reject')); $text = new TextAreaField('sentence_text', 'Text',2,70); //$form->addField($proposer_uid->setCompulsory(true)); $form->addField($session->setCompulsory(true)); //$form->addField($status->setCompulsory(true)); $form->addField($text); $form->addHiddenField(new Hiddenfield('proposals_sentence_id',$amendment->getProposals_sentence_id())); $form->display(); $layout->page_footer(); ?>