PageRenderTime 52ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/FSN/application/Controller/Fsn/Organisme.php

https://gitlab.com/r.collas/site_central
PHP | 260 lines | 159 code | 78 blank | 23 comment | 15 complexity | 8c17d459a7b36541bee1060caf694ee9 MD5 | raw file
  1. <?php
  2. class Controller_Fsn_Organisme extends Yab_Controller_Action {
  3. public function actionIndex() {
  4. $fsn_organisme = new Model_Fsn_Organisme();
  5. // $fsn_organismes = $fsn_organisme->fetchAll();
  6. $fsn_organismes = $fsn_organisme -> getOrganismeDetail();
  7. $this -> getSession() -> set('titre', 'GESTION DES ORGANISMES'); //EDEM
  8. // $this -> getLayout() -> setFile("View/layout_fsn.html");
  9. $this -> _view -> set('fsn_organismes_index', $fsn_organismes);
  10. }
  11. public function actionAdd() {
  12. // appel fichier internationalisation
  13. $registry = Yab_Loader::getInstance()->getRegistry();
  14. $i18n = $registry->get('i18n');
  15. $filter_no_html = new Yab_Filter_NoHtml();
  16. $mode = self::ACTION_MODE_CREATE ;
  17. $errors_messages = '';
  18. $fsn_organisme = new Model_Fsn_Organisme();
  19. $form = new Form_Fsn_Organisme($fsn_organisme, $mode);
  20. $formvalue = $form->getValues();
  21. if ($form -> isSubmitted()) {
  22. try{
  23. //Default type_id: Organisme Externe
  24. $formvalue['type_id'] = 2337;
  25. // Control champs requis
  26. function isNumber($idElt, &$formvalue, &$form, &$errors_messages, $message){
  27. $eltvalue = addslashes($formvalue[$idElt]);
  28. if(!empty($eltvalue)){
  29. if($form->getElement($idElt)->getErrors()) $errors_messages[$idElt] = $message;
  30. }
  31. }
  32. function isUnique($idElt, &$formvalue, &$fsn_organisme, &$errors_messages, $message){
  33. $eltvalue = addslashes($formvalue[$idElt]);
  34. if(!empty($eltvalue)){
  35. $req = $fsn_organisme->fetchAll()->where(addslashes($idElt).' ="'.$eltvalue.'" ');
  36. $nb_row = $req->count();
  37. if($nb_row > 0){
  38. $errors_messages[$idElt] = $message;
  39. }
  40. }
  41. }
  42. if($form->getErrors()){
  43. $errors_messages[] = $filter_no_html->filter( $i18n -> say('verror_requisAll') );
  44. }
  45. isUnique('nom', $formvalue, $fsn_organisme , $errors_messages, $filter_no_html->filter( $i18n -> say('sitefouille_uniciteNom') ));
  46. isUnique('nomabrege', $formvalue, $fsn_organisme , $errors_messages, $filter_no_html->filter( $i18n -> say('sitefouille_uniciteNomAbrege') ));
  47. isNumber('cp', $formvalue, $form, $errors_messages, $filter_no_html->filter( $i18n -> say('intervenant_requisCp') ));
  48. //Caractères spéciaux interdits: Trois param($donnees, $field, $fieldMessage, $errors_messages)
  49. Plugin_Fonctions::nospecialcharacter($formvalue['nomabrege'], 'nomabrege', 'fsn_organisme_nopecialcaractere', $errors_messages);
  50. if(!empty($errors_messages)) throw new Exception();
  51. $fsn_organisme -> populate($formvalue) -> save();
  52. // Historisation de la modif
  53. $id_fsn_organisme = $fsn_organisme -> get('id');
  54. $formvalue['id'] = $id_fsn_organisme;
  55. $historisation = new Plugin_Historique();
  56. $formvalue = $form->getTypedValues($formvalue);
  57. $historisation -> addhistory('Fsn_Organisme', self::MODE_CREATE, $formvalue);
  58. $this -> getSession() -> set('flash_title', ''); $this -> getSession() -> set('flash_status', 'info'); $this -> getSession() -> set('flash_message', 'organisme as been added');
  59. $this -> forward('Fsn_Organisme', 'index');
  60. } catch(Exception $e){
  61. $this -> getSession() -> set('flash_title', ''); $this -> getSession() -> set('flash_status', 'warning'); $this -> getSession() -> set('flash_message', '');
  62. $this->getSession()->setFlashErrors($errors_messages);
  63. }
  64. }
  65. // $this -> _view -> set('helper_form', new Yab_Helper_Form($form));
  66. $this -> _view -> set('helper_form', $form);
  67. }
  68. public function actionEdit() {
  69. // appel fichier internationalisation
  70. $registry = Yab_Loader::getInstance()->getRegistry();
  71. $i18n = $registry->get('i18n');
  72. $filter_no_html = new Yab_Filter_NoHtml();
  73. $mode = self::ACTION_MODE_UPDATE ;
  74. $errors_messages = '';
  75. $fsn_organisme = new Model_Fsn_Organisme($this -> _request -> getParams());
  76. $form = new Form_Fsn_Organisme($fsn_organisme, $mode);
  77. $id = $fsn_organisme->get('id');
  78. $formvalue = $form->getValues();
  79. if ($form -> isSubmitted()) {
  80. try{
  81. //Default type_id: Organisme Externe
  82. $formvalue['type_id'] = 2337;
  83. // Control champs requis
  84. function isNumber($idElt, &$formvalue, &$form, &$errors_messages, $message){
  85. $eltvalue = addslashes($formvalue[$idElt]);
  86. if(!empty($eltvalue)){
  87. if($form->getElement($idElt)->getErrors()) $errors_messages[$idElt] = $message;
  88. }
  89. }
  90. function isUnique($idElt, &$formvalue, &$fsn_organisme, &$id, &$errors_messages, $message){
  91. $eltvalue = addslashes($formvalue[$idElt]);
  92. if(!empty($eltvalue)){
  93. $req = $fsn_organisme->fetchAll()->where(addslashes($idElt).' ="'.$eltvalue.'" and id !="'.$id.'" ');
  94. $nb_row = $req->count();
  95. if($nb_row > 0){
  96. $errors_messages[$idElt] = $message;
  97. }
  98. }
  99. }
  100. if($form->getErrors()){
  101. $errors_messages[] = $filter_no_html->filter( $i18n -> say('verror_requisAll') );
  102. }
  103. isUnique('nom', $formvalue, $fsn_organisme , $id, $errors_messages, $filter_no_html->filter( $i18n -> say('sitefouille_uniciteNom') ));
  104. isUnique('nomabrege', $formvalue, $fsn_organisme , $id, $errors_messages, $filter_no_html->filter( $i18n -> say('sitefouille_uniciteNomAbrege') ));
  105. isNumber('cp', $formvalue, $form, $errors_messages, $filter_no_html->filter( $i18n -> say('intervenant_requisCp') ));
  106. //Caractères spéciaux interdits: Trois param($donnees, $field, $fieldMessage, $errors_messages)
  107. Plugin_Fonctions::nospecialcharacter($formvalue['nomabrege'], 'nomabrege', 'fsn_organisme_nopecialcaractere', $errors_messages);
  108. if(!empty($errors_messages)) throw new Exception();
  109. $fsn_organisme -> populate($formvalue) -> save();
  110. // Historisation de la modif
  111. $id_fsn_organisme = $fsn_organisme -> get('id');
  112. $formvalue['id'] = $id_fsn_organisme;
  113. $historisation = new Plugin_Historique();
  114. $formvalue = $form->getTypedValues($formvalue);
  115. $historisation -> addhistory('Fsn_Organisme', self::MODE_UPDATE, $formvalue);
  116. $this -> getSession() -> set('flash_title', ''); $this -> getSession() -> set('flash_status', 'info'); $this -> getSession() -> set('flash_message', 'organisme as been edited');
  117. $this -> forward('Fsn_Organisme', 'index');
  118. } catch(Exception $e){
  119. $this -> getSession() -> set('flash_title', ''); $this -> getSession() -> set('flash_status', 'warning'); $this -> getSession() -> set('flash_message', '');
  120. $this->getSession()->setFlashErrors($errors_messages);
  121. }
  122. }
  123. // $this -> _view -> set('helper_form', new Yab_Helper_Form($form));
  124. $this -> _view -> set('helper_form',$form);
  125. }
  126. public function actionShow() {
  127. $mode = self::ACTION_MODE_SHOW ;
  128. $fsn_organisme = new Model_Fsn_Organisme($this->_request->getParams());
  129. $form = new Form_Fsn_Organisme($fsn_organisme, $mode);
  130. $formvalue= $form->getValues();
  131. $id_fsn_organisme = $fsn_organisme->get('id');
  132. // $this->_view->set('helper_form', new Yab_Helper_Form($form));
  133. $this->_view->set('helper_form', $form);
  134. $this->_view->set('fsn_organisme_id', $id_fsn_organisme);
  135. }
  136. public function actionDelete() {
  137. $user_info = $this -> getSession() -> get('session');
  138. $login = $user_info['login'];
  139. $fsn_organisme = new Model_Fsn_Organisme($this -> _request -> getParams());
  140. $form = new Form_Fsn_Organisme($fsn_organisme);
  141. $formvalue = $form->getValues();
  142. // jfb 2016-04-19 correctif fiche mantis 99 début
  143. $message = ''; // init. à blanc message de deletion
  144. try {
  145. $fsn_organisme -> delete(); // try delete avant historisation
  146. // historisation début
  147. $historisation = new Plugin_Historique();
  148. $formvalue = $form->getTypedValues($formvalue);
  149. $historisation->addhistory('Fsn_Organisme', self::MODE_DELETE, $formvalue);
  150. // historisation fin
  151. $message='organisme supprimé';
  152. } catch (Exception $e) {
  153. $message = 'Suppression organisme impossible';
  154. }
  155. //$this->getSession()->set('flash_title', ''); $this->getSession()->set('flash_status', 'info'); $this->getSession()->set('flash_message', 'organisme as been deleted');
  156. $this->getSession()->set('flash_title', '');
  157. $this->getSession()->set('flash_status', 'info');
  158. $this->getSession()->set('flash_message', $message);
  159. // jfb 2016-04-19 correctif fiche mantis 99 fin
  160. $this -> forward('Fsn_Organisme', 'index');
  161. }
  162. private function _AddEntiteAdmin($id_fsn_organisme) {
  163. $mode = self::ACTION_MODE_CREATE ;
  164. $fsn_entiteadmin = new Model_Fsn_Entiteadmin();
  165. $form = new Form_Fsn_Entiteadmin($fsn_entiteadmin);
  166. $formvalue = $form->getValues();
  167. $form -> getElement('organisme_id') -> set('value', $id_fsn_organisme);
  168. if ($form -> isValid()) {
  169. $fsn_entiteadmin->populate($formvalue)->save();
  170. // Historisation de la modif
  171. $id_fsn_entiteadmin = $fsn_entiteadmin->get('id');
  172. $formvalue['id'] = $id_fsn_entiteadmin;
  173. $historisation = new Plugin_Historique();
  174. $formvalue = $form->getTypedValues($formvalue);
  175. $historisation -> addhistory('Fsn_Entiteadmin', self::MODE_CREATE, $formvalue);
  176. // $this->getSession()->set('flash', 'fsn_entiteadmin as been added');
  177. // $this->forward('Fsn_Entiteadmin', 'index');
  178. return;
  179. }
  180. return;
  181. }
  182. }