PageRenderTime 46ms CodeModel.GetById 19ms RepoModel.GetById 0ms app.codeStats 0ms

/FSN/application/Controller/Emplacement.php

https://gitlab.com/r.collas/site_central
PHP | 364 lines | 262 code | 96 blank | 6 comment | 25 complexity | 314db9c5d842490cb9aa4243d507fda2 MD5 | raw file
  1. <?php
  2. class Controller_Emplacement extends Yab_Controller_Action {
  3. public function actionGestion() {
  4. $this->getSession()->set("titre", "Gestion des emplacements");
  5. $this->_view->setFile('View/emplacement/gestion.php');
  6. }
  7. public function actionAjaxAjouter() {
  8. $emplacement = new Model_Emplacement();
  9. $types = $emplacement->getTypeEnfant($_POST["id"]) ;
  10. // Si l'utilisateur ne peut pas ajouter plus de sous emplacements
  11. if (count($types) == 1 && is_null($types[0]["id"]) && is_null($types[0]["categorie_value"])) {
  12. echo "null" ;
  13. exit ;
  14. }
  15. $this->_view->set("types", $types) ;
  16. $this->getLayout()->setEnabled(false) ;
  17. $this->_view->setFile('View/emplacement/ajax_ajouter.php') ;
  18. }
  19. public function actionAjaxModifier() {
  20. $emplacement = new Model_Emplacement();
  21. $emplacement_post = $emplacement->getDescriptionById($_POST["id"]) ;
  22. $description = $emplacement_post[0]["description"] ;
  23. $types = $emplacement->getEmplacementTypeAll();
  24. $this->_view->set("types", $types) ;
  25. $this->_view->set("description", $description) ;
  26. $this->getLayout()->setEnabled(false) ;
  27. $this->_view->setFile('View/emplacement/ajax_modifier.php') ;
  28. }
  29. public function actionAjaxGetDescription() {
  30. $emplacement = new Model_Emplacement();
  31. $emplacement = $emplacement->getEmplacementById($_POST["id"]) ;
  32. $this->_view->set("emplacement", $emplacement) ;
  33. $this->getLayout()->setEnabled(false) ;
  34. $this->_view->setFile("View/emplacement/ajax_get_description.php") ;
  35. }
  36. private function getRacine() {
  37. $user_session = $this->getSession()->get("session");
  38. $entiteadmin_id=$user_session["entiteadmin_id"];
  39. $emplacement = new Model_Emplacement();
  40. $racine=$emplacement->getVerifRacine($entiteadmin_id);
  41. if ($racine->toArray()==null) {
  42. $organisme=$emplacement->getNomOrganisme($entiteadmin_id);
  43. $organisme=$organisme->toArray();
  44. $racine_id=$this->sauver($organisme[0]["nom"]);
  45. } else {
  46. $racine=$racine->toArray();
  47. $racine_id=$racine[0]["id"];
  48. }
  49. return $racine_id;
  50. }
  51. private function sauver($nom) {
  52. $ref=new Model_Fsn_Categorie();
  53. $type=$ref->isExiste("emplacement_type", "racine");
  54. $type_id=$type[0]["id"];
  55. $user_session = $this->getSession()->get("session");
  56. $entiteadmin_id=$user_session["entiteadmin_id"];
  57. $emplacement = new Model_Emplacement();
  58. $insertion = array() ;
  59. $insertion["nom"] = $nom;
  60. $insertion["type_id"] = $type_id;
  61. $insertion["parent_id"] ="null";
  62. $insertion["entiteadmin_id"] = $entiteadmin_id;
  63. $insertion["description"] = "Emplacement Racine";
  64. $emplacement->populate($insertion)->save() ;
  65. return $emplacement->id ;
  66. }
  67. public function actionTest(){
  68. $this->getSession()->set("titre", "Gestion des emplacements") ;
  69. $this->getLayout()->setFile("View/layout_fsn.html") ;
  70. $this->_view->setFile('View/emplacement/test.html') ;
  71. }
  72. public function actionAjaxSauver() {
  73. $user_session = $this->getSession()->get("session");
  74. $emplacement = new Model_Emplacement();
  75. $this->getRacine();
  76. $this->getLayout()->setEnabled(false) ;
  77. $this->_view->setEnabled(false) ;
  78. if ($_POST["action"] == "ajouter") {
  79. if($_POST["parent_id"]==0)
  80. $_POST["parent_id"]=$this->getRacine();
  81. $insertion = array() ;
  82. $insertion["nom"] = $_POST["label"] ;
  83. $insertion["type_id"] = $_POST["type_id"] ;
  84. $insertion["parent_id"] = $_POST["parent_id"] ;
  85. $insertion["entiteadmin_id"] = $user_session["entiteadmin_id"] ;
  86. $insertion["description"] = $_POST["description"] ;
  87. $emplacement->populate($insertion)->save() ;
  88. echo $emplacement->id ;
  89. } else if ($_POST["action"] == "modifier") {
  90. $update= array() ;
  91. $update["id"] = $_POST["id"] ;
  92. $update["nom"] = $_POST["label_modified"] ;
  93. $update["entiteadmin_id"] = $user_session["entiteadmin_id"] ;
  94. $update["description"] = $_POST["description_modified"] ;
  95. $emplacement->populate($update)->save() ;
  96. } else if ($_POST["action"] == "supprimer") {
  97. if (!isset($emplacement->getEnfant($_POST["id"])[0])) {
  98. try {
  99. $emplacement->delete("id = '" . $_POST["id"] . "'") ;
  100. } catch (Exception $e) {
  101. echo 2 ;
  102. }
  103. } else {
  104. echo 0 ;
  105. }
  106. }
  107. }
  108. public function actionEnfant($id=null) {
  109. $emplacement = new Model_Emplacement();
  110. $this->getLayout()->setEnabled(false) ;
  111. $this->_view->setEnabled(false) ;
  112. $enfants = $emplacement->getEnfant($id);
  113. $table=array();
  114. $compt=0;
  115. foreach ($enfants as $enfant) {
  116. $table[$compt]["label"]=Plugin_Fonctions::html($enfant["nom"]);
  117. $table[$compt]["id"]=$enfant["id"];
  118. if ($enfant["nb_enfant"]!=0) {
  119. $table[$compt]["items"][0]["value"]=$this->getRequest()->getBaseUrl() . "/emplacement/enfant/".$enfant["id"];
  120. $table[$compt]["items"][0]["label"]="Loading...";
  121. }
  122. $compt++;
  123. }
  124. echo json_encode($table);
  125. }
  126. public function actionGetSite() {
  127. $user_session = $this->getSession()->get("session");
  128. $emplacement = new Model_Emplacement();
  129. $this->getLayout()->setEnabled(false) ;
  130. $this->_view->setEnabled(false) ;
  131. $session=$this->getSession();
  132. $entiteadmin_id = $user_session["entiteadmin_id"] ;
  133. $sites = $emplacement->getSite($entiteadmin_id);
  134. $organisme=$emplacement->getNomOrganisme($entiteadmin_id);
  135. $organisme=$organisme->toArray();
  136. $racine=$organisme[0]["nom"];
  137. $table[0]["label"]=$racine;
  138. $table[0]["id"]=0;
  139. $table[0]["expanded"]="true";
  140. $compt=0;
  141. foreach ($sites as $site) {
  142. $table[0]["items"][$compt]["label"]=Plugin_Fonctions::html($site["nom"]);
  143. $table[0]["items"][$compt]["id"]=$site["id"];
  144. $table[0]["items"][$compt]["items"]=array();
  145. $table[0]["items"][$compt]["items"][0]["value"]=$this->getRequest()->getBaseUrl() . "/emplacement/enfant/".$site["id"];
  146. $table[0]["items"][$compt]["items"][0]["label"]="Loading...";
  147. $compt++;
  148. }
  149. echo json_encode($table);
  150. }
  151. public function actionIndex() {
  152. $emplacement = new Model_Emplacement();
  153. $emplacements = $emplacement->fetchAll();
  154. $this->_view->set('emplacements', $emplacements);
  155. }
  156. public function actionAdd() {
  157. $mode = 'add' ;
  158. $emplacement = new Model_Emplacement();
  159. $form = new Form_Emplacement($emplacement,$mode);
  160. if($form->isSubmitted() && $form->isValid()) {
  161. // Ajout du GUUID
  162. $generateGuuid = new Plugin_Guuid() ;
  163. $guuid = $generateGuuid->GetUUID() ;
  164. $form->setElement('id', array('type'=>'text', 'value' => $guuid ) ) ;
  165. $emplacement->populate($form->getValues())->save();
  166. $this->getSession()->set('flash_title', ''); $this->getSession()->set('flash_status', 'info'); $this->getSession()->set('flash_message', 'emplacement as been added');
  167. $this->forward('Emplacement', 'index');
  168. }
  169. $this->_view->set('helper_form', new Yab_Helper_Form($form));
  170. }
  171. public function actionEdit() {
  172. $mode = 'edit' ;
  173. $emplacement = new Model_Emplacement($this->_request->getParams());
  174. $form = new Form_Emplacement($emplacement, $mode);
  175. if($form->isSubmitted() && $form->isValid()) {
  176. $emplacement->populate($form->getValues())->save();
  177. $this->getSession()->set('flash_title', ''); $this->getSession()->set('flash_status', 'info'); $this->getSession()->set('flash_message', 'emplacement as been edited');
  178. $this->forward('Emplacement', 'index');
  179. }
  180. $this->_view->set('helper_form', new Yab_Helper_Form($form));
  181. }
  182. public function actionShow() {
  183. $mode = 'show' ;
  184. $emplacement = new Model_Emplacement($this->_request->getParams());
  185. $form = new Form_Emplacement($emplacement, $mode);
  186. if($form->isSubmitted()) {
  187. $this->forward('Emplacement', 'index');
  188. }
  189. $this->_view->set('helper_form', new Yab_Helper_Form($form));
  190. }
  191. public function actionDelete() {
  192. $emplacement = new Model_Emplacement($this->_request->getParams());
  193. $emplacement->delete();
  194. $this->getSession()->set('flash_title', ''); $this->getSession()->set('flash_status', 'info'); $this->getSession()->set('flash_message', 'emplacement as been deleted');
  195. $this->forward('Emplacement', 'index');
  196. }
  197. public function actionAjaxGetER() {
  198. $emplacement = new Model_Emplacement();
  199. $user_session = $this->getSession()->get('session') ;
  200. $entiteadmin_id = $user_session['entiteadmin_id'] ;
  201. $racine=$emplacement->getRacine($entiteadmin_id);
  202. $id=(isset($_POST["id"]) and $_POST["id"]!=0 ) ? $_POST["id"] : $racine["id"];
  203. //$id=(isset($_POST["id"]) ) ? $_POST["id"] : 32;
  204. $sites = $emplacement->getParent($entiteadmin_id, null, $id);
  205. $emps=array();
  206. //recupération des noms d'emplacement pour la concaténation
  207. foreach ($sites as $site ) {
  208. $emps[$site["id"]]=$site["nom"];
  209. }
  210. $result=array();
  211. $compt=0;
  212. $this->setERTable($id, $result, $compt, "");
  213. foreach ($sites as $site) {
  214. $tab=explode("-", $site["path"]);
  215. $chemin="";
  216. //on supprime la racine pour tous les enfants
  217. if (count($tab!=1))
  218. unset($tab[0]);
  219. foreach($tab as $cle => $item) {
  220. if (count($tab)==$cle)
  221. $chemin.=$emps[$item];
  222. else
  223. $chemin.=$emps[$item]." > ";
  224. }
  225. $this->setERTable($site["id"], $result, $compt, $chemin);
  226. }
  227. $this->getLayout()->setEnabled(false) ;
  228. $this->_view->set("data", $result);
  229. }
  230. public function setERTable($id, &$result, &$compt, $chemin) {
  231. $er=new Model_Elementrecueilli();
  232. $ers=$er->fetchAll()->where("emplacement_id='".$id."'");
  233. foreach ($ers as $er) {
  234. $result[$compt]["id"]=$er["id"];
  235. $result[$compt]["numero"]=$er["numero"];
  236. $result[$compt]["description"]=(strlen($er["description"])>45) ? substr($er["description"], 0, 45).". . .": $er["description"];
  237. $result[$compt]["chemin"]=$chemin;
  238. $result[$compt]["origine"]=(empty($chemin)) ? true : false;
  239. $compt++;
  240. }
  241. $ers=$er->getByEmplacement($id);
  242. foreach ($ers as $er) {
  243. $result[$compt]["id"]=$er["er_id"];
  244. $result[$compt]["numero"]=$er["numero"];
  245. $result[$compt]["description"]=(strlen($er["description"])>45) ? substr($er["description"], 0, 45).". . .": $er["description"];
  246. $result[$compt]["chemin"]=$chemin." > " . $er["nom"];
  247. $result[$compt]["origine"]=false;
  248. $compt++;
  249. }
  250. }
  251. public function actionGenererQRCode() {
  252. $emplacement = new Model_Emplacement();
  253. $user_session = $this->getSession()->get('session') ;
  254. $entiteadmin_id = $user_session['entiteadmin_id'] ;
  255. $racine=$emplacement->getRacine($entiteadmin_id);
  256. $id=(isset($_GET["id"]) and $_GET["id"]!=0 ) ? $_GET["id"] : $racine["id"];
  257. $loader = Yab_Loader::getInstance();
  258. $config = $loader->getConfig();
  259. $url = "http://" . $config["ip"] . ":" . $config["port"] . $config["context"] . "/emplacement/code" ;
  260. // $emps = $emplacement->getEnfant($id) ;
  261. $emps = $emplacement->getParent($entiteadmin_id, null, $id);
  262. $emp_courant = $emplacement->getEmplacementById($id) ;
  263. $this->getLayout()->setEnabled(false) ;
  264. $this->_view->set("url", $url) ;
  265. $this->_view->set("emps", $emps) ;
  266. $this->_view->set("emp_courant", $emp_courant) ;
  267. }
  268. }