.
*/
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();
?>