PageRenderTime 44ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 1ms

/src/2.071.0/_GestionnaireAgendasStd.class.php

https://github.com/crepeausucre/soothERP
PHP | 301 lines | 198 code | 48 blank | 55 comment | 39 complexity | 701ac39a0a3f384559cae2466d31820f MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, LGPL-3.0
  1. <?php
  2. // *************************************************************************************************************
  3. // CLASSE GestionnaireAgendas
  4. // *************************************************************************************************************
  5. abstract class GestionnaireAgendasStd {
  6. //$agendasPermissions[REF_AGENDA] = array();
  7. //$agendasPermissions[REF_AGENDA] = AgendasPermissions;
  8. private $agendasPermissions;
  9. private $user;
  10. public function __construct(&$user){
  11. $this->user =& $user;
  12. $this->chargerAgendasAvecDroits();
  13. }
  14. function __call($method,$args){
  15. return true;
  16. }
  17. // *************************************************************************************************************
  18. // Getters & Setters
  19. // *************************************************************************************************************
  20. public function &getUser(){
  21. return $this->user;
  22. }
  23. protected function setUser(&$user){
  24. $this->user =& $user;
  25. }
  26. public function &getAgendasPermissions($ref_agenda){
  27. if(is_null($ref_agenda) || $ref_agenda == "" || !isset($this->agendasPermissions[$ref_agenda]))
  28. { $res = null; return $res;}
  29. //$agendasPermissions[REF_AGENDA] = array();
  30. //$agendasPermissions[REF_AGENDA] = AgendasPermissions;
  31. return $this->agendasPermissions[$ref_agenda];
  32. }
  33. protected function setAgendasPermissions(&$agendasPermissions){
  34. return $this->agendasPermissions =& $agendasPermissions;
  35. }
  36. // *************************************************************************************************************
  37. // DROITS SUR LES AGENDAS
  38. // *************************************************************************************************************
  39. //$agendasPermissions[REF_AGENDA] = array();
  40. //$agendasPermissions[REF_AGENDA] = AgendasPermissions;
  41. //private $agendasPermissions;
  42. public function chargerAgendasAvecDroits(){
  43. $this->agendasPermissions = array();
  44. global $bdd;
  45. $resultat = $bdd->query ($this->queryChargerAgendasAvecDroits());
  46. while ($r = $resultat->fetchObject()){
  47. if(isset($old_ref_agenda) && $old_ref_agenda != $r->ref_agenda){
  48. $this->agendasPermissions[$old_ref_agenda] = new AgendasPermissions($old_ref_agenda, $id_permission, $events_types_permission);
  49. $old_ref_agenda = $r->ref_agenda;
  50. $id_permission = intval($r->agenda_permission);
  51. $events_types_permission = array();
  52. if($r->id_type_event != "" && $r->event_type_permission != ""){
  53. $events_types_permission[intval($r->id_type_event)] = intval($r->event_type_permission);
  54. }
  55. }else{
  56. if(!isset($old_ref_agenda)){
  57. $old_ref_agenda = $r->ref_agenda;
  58. $id_permission = intval($r->agenda_permission);
  59. $events_types_permission = array();
  60. }
  61. if($r->id_type_event != "" && $r->event_type_permission != ""){
  62. $events_types_permission[intval($r->id_type_event)] = intval($r->event_type_permission);
  63. }
  64. }
  65. if(isset($old_ref_agenda)){
  66. $this->agendasPermissions[$old_ref_agenda] = new AgendasPermissions($old_ref_agenda, $id_permission, $events_types_permission);
  67. }
  68. }
  69. }
  70. protected function queryChargerAgendasAvecDroits(){
  71. return "SELECT a.ref_agenda, aet.id_type_event, 9999 AS agenda_permission, 9999 AS event_type_permission
  72. FROM agendas a
  73. LEFT JOIN agendas_events_types aet ON a.id_type_agenda = aet.id_type_agenda
  74. ORDER BY a.ref_agenda, aet.id_type_event";
  75. }
  76. // ****************************************************************
  77. //$agendas[REF_AGENDA] = array();
  78. //$agendas[REF_AGENDA]["libAgenda"] = string;
  79. //$agendas[REF_AGENDA]["affiche"] = bool;
  80. //$agendas[REF_AGENDA]["droits"] = int;
  81. //$agendas[REF_AGENDA]["couleur1"] = string;
  82. //$agendas[REF_AGENDA]["couleur2"] = string;
  83. //$agendas[REF_AGENDA]["couleur3"] = string;
  84. //$agendas[REF_AGENDA]["id_type_agenda"] = int;
  85. //$agendas[REF_AGENDA]["lib_type_agenda"] = string;
  86. public function &getAgendasAvecDroits($id_liste_agenda = -1){
  87. return $this->getAgendasOfAllListeAvecDroits();
  88. }
  89. //$agendas[REF_AGENDA] = array();
  90. //$agendas[REF_AGENDA]["libAgenda"] = string;
  91. //$agendas[REF_AGENDA]["affiche"] = bool;
  92. //$agendas[REF_AGENDA]["droits"] = int;
  93. //$agendas[REF_AGENDA]["couleur1"] = string;
  94. //$agendas[REF_AGENDA]["couleur2"] = string;
  95. //$agendas[REF_AGENDA]["couleur3"] = string;
  96. //$agendas[REF_AGENDA]["id_type_agenda"] = int;
  97. //$agendas[REF_AGENDA]["lib_type_agenda"] = string;
  98. protected function &getAgendasOfAllListeAvecDroits(){
  99. $agendas = array();
  100. //$agendas[REF_AGENDA] = AgendasPermissions;
  101. $query_IN = "";
  102. reset($this->agendasPermissions);
  103. for($i=0; $i< count($this->agendasPermissions); $i++){
  104. $index = key($this->agendasPermissions);
  105. if($query_IN != "")
  106. { $query_IN.= ", '".$index."'";}
  107. else{ $query_IN.= "'".$index."'";}
  108. next($this->agendasPermissions);
  109. }
  110. if($query_IN == "")return $agendas;
  111. $query = "SELECT a.ref_agenda, a.lib_agenda, a.id_type_agenda, at.lib_type_agenda, ac.agenda_couleur_rule_1, ac.agenda_couleur_rule_2, ac.agenda_couleur_rule_3, ua.affiche
  112. FROM agendas a
  113. LEFT JOIN agendas_types at ON at.id_type_agenda = a.id_type_agenda
  114. LEFT JOIN agendas_couleurs ac ON a.id_agenda_couleurs = ac.id_agenda_couleurs
  115. LEFT JOIN agendas_users_agendas_affichage ua ON a.ref_agenda = ua.ref_agenda && ua.ref_user = '".$this->user->getRef_user()."'
  116. WHERE a.ref_agenda IN (".$query_IN.")
  117. ORDER BY a.ref_agenda";
  118. global $bdd;
  119. //var_dump($query);
  120. $resultat = $bdd->query ($query);
  121. $tmp_ref_agenda = "";
  122. while ($r = $resultat->fetchObject()){
  123. $tmp_ref_agenda = $r->ref_agenda;
  124. $agendas[$tmp_ref_agenda] = array();
  125. $agendas[$tmp_ref_agenda]["libAgenda"] = $r->lib_agenda;
  126. $agendas[$tmp_ref_agenda]["affiche"] = intval($r->affiche);
  127. if(isset($this->agendasPermissions[$tmp_ref_agenda])){
  128. $agendas[$tmp_ref_agenda]["droits"] = intval($this->agendasPermissions[$tmp_ref_agenda]->getAgenda_permission());
  129. }else{
  130. $agendas[$tmp_ref_agenda]["droits"] = null;
  131. }
  132. $agendas[$tmp_ref_agenda]["couleur1"] = $r->agenda_couleur_rule_1;
  133. $agendas[$tmp_ref_agenda]["couleur2"] = $r->agenda_couleur_rule_2;
  134. $agendas[$tmp_ref_agenda]["couleur3"] = $r->agenda_couleur_rule_3;
  135. $agendas[$tmp_ref_agenda]["id_type_agenda"] = intval($r->id_type_agenda);
  136. $agendas[$tmp_ref_agenda]["lib_type_agenda"] = $r->lib_type_agenda;
  137. }
  138. return $agendas;
  139. }
  140. // *************************************************************************************************************
  141. // FIN : DROITS SUR LES AGENDAS
  142. // *************************************************************************************************************
  143. //public bool majAgendasUsersAgendasAffichage(string, 0/1/null)
  144. public function majAgendasUsersAgendasAffichage($ref_agenda, $affichage){
  145. if($ref_agenda == "")return false;
  146. $query = "DELETE FROM agendas_users_agendas_affichage
  147. WHERE ref_user = '".$this->user->getRef_user()."' &&
  148. ref_agenda = '".$ref_agenda."' ;";
  149. if(!is_null($affichage)){
  150. $query.= "INSERT INTO agendas_users_agendas_affichage
  151. (ref_user, ref_agenda, affiche) VALUES
  152. ('".$this->user->getRef_user()."', '".$ref_agenda."', ".$affichage.")";
  153. }
  154. var_dump($query);
  155. global $bdd;
  156. $bdd->exec($query);
  157. return true;
  158. }
  159. //public array getListesAgendasAvecDroitsNonVides()
  160. //$ListesAgendasAvecDroitsNonVides[ID_GROUPE] = libGroupe
  161. public function getListesAgendasAvecDroitsNonVides(){
  162. $ListesAgendasAvecDroitsNonVides = array();
  163. return $ListesAgendasAvecDroitsNonVides;
  164. }
  165. //public array getAgendasTypesAvecDroitsNonVides(){
  166. //$AgendasTypesAvecDroitsNonVides[ID_TYPE_AGENDA] = libTypeAgenda
  167. public function getAgendasTypesAvecDroitsNonVides(){
  168. $agendasTypes = array();
  169. global $bdd;
  170. $resultat = $bdd->query ($this->queryGetAgendasTypesAvecDroitsNonVides());
  171. while ($r = $resultat->fetchObject()){
  172. $agendasTypes[intval($r->id_type_agenda)] = $r->lib_type_agenda;
  173. }
  174. return $agendasTypes;
  175. }
  176. protected function queryGetAgendasTypesAvecDroitsNonVides(){
  177. return "SELECT a.id_type_agenda, at.lib_type_agenda
  178. FROM agendas a
  179. LEFT JOIN agendas_types at ON at.id_type_agenda = a.id_type_agenda
  180. ORDER BY at.lib_type_agenda";
  181. }
  182. //public array getTypesEventsAvecDroits(int1)
  183. //$typesEvents[$tmp_id_type_event] = array();
  184. //$typesEvents[$tmp_id_type_event]["libTypeEvent"] = $r->lib_type_event;
  185. //$typesEvents[$tmp_id_type_event]["affiche"] = $r->affiche;
  186. //$typesEvents[$tmp_id_type_event]["droits"] = intval($r->id_permission);
  187. public function getTypesEventsAvecDroits($id_type_agenda = -1){
  188. $typesEvents = array();
  189. global $bdd;
  190. $resultat = $bdd->query($this->queryGetTypesEventsAvecDroits($id_type_agenda));
  191. $tmp_ref_agenda = "";
  192. while ($r = $resultat->fetchObject()){
  193. $tmp_id_type_event = intval($r->id_type_event);
  194. $typesEvents[$tmp_id_type_event] = array();
  195. $typesEvents[$tmp_id_type_event]["libTypeEvent"] = $r->lib_type_event;
  196. $typesEvents[$tmp_id_type_event]["affiche"] = $r->affiche;
  197. $typesEvents[$tmp_id_type_event]["droits"] = intval($r->id_permission);
  198. }
  199. return $typesEvents;
  200. }
  201. protected function queryGetTypesEventsAvecDroits($id_type_agenda = -1){
  202. if($id_type_agenda != -1)
  203. { $where = " && et.id_type_agenda = ".$id_type_agenda;}
  204. else{ $where = "";}
  205. return "SELECT et.id_type_event, et.lib_type_event, ap.affiche, 9999 as id_permission
  206. FROM agendas_events_types et
  207. LEFT JOIN agendas_users_events_type_affiche_permissions ap ON et.id_type_event = ap.id_type_event
  208. WHERE ap.ref_user = '".$this->user->getRef_user()."'
  209. ".$where."
  210. ORDER BY et.lib_type_event";
  211. }
  212. //public bool majAgendasUsersEventsTypesAffichage(int, 0/1/null)
  213. public function majAgendasUsersEventsTypesAffichage($id_type_agenda, $affichage){
  214. if(!is_numeric($id_type_agenda)) return false;
  215. if(is_null($affichage))
  216. { $aff = "NULL";}
  217. elseif($affichage < 0 || $affichage > 1)
  218. { return false;}
  219. else
  220. { $aff = $affichage;}
  221. $query = "UPDATE agendas_users_events_type_affiche_permissions SET affiche = ".$aff."
  222. WHERE ref_user = '".$this->user->getRef_user()."' &&
  223. id_type_event = ".$id_type_agenda;
  224. echo $query;
  225. global $bdd;
  226. $bdd->exec($query);
  227. return true;
  228. }
  229. //public string getJAVASCRIPTagendasPermissions(string, string){
  230. //$portee = "var" ou ""
  231. public function getJAVASCRIPTagendasPermissions($portee, $nomVarRetour){
  232. //$agendasPermissions[REF_AGENDA] = array();
  233. //$agendasPermissions[REF_AGENDA] = AgendasPermissions;
  234. $script = $portee." ".$nomVarRetour."= new Array();\n";
  235. $script.= "var tmpAgendasPermissions = new Array();\n";
  236. reset($this->agendasPermissions);
  237. for($i = 0 ; $i < count($this->agendasPermissions) ; $i++ ){
  238. $index = key($this->agendasPermissions);
  239. $events_types_permission = $this->agendasPermissions[$index]->getEvents_types_permission();
  240. reset($events_types_permission);
  241. for($j = 0 ; $j < count($events_types_permission) ; $j++ ){
  242. $index2 = key($events_types_permission);
  243. $script.= "tmpAgendasPermissions[".$index2."] = ".$events_types_permission[$index2].";\n";
  244. next($events_types_permission);
  245. }
  246. $script.= $nomVarRetour."['".$index."'] = new new_DroitAgenda('".$this->agendasPermissions[$index]->getRef_agenda()."', ".$this->agendasPermissions[$index]->getAgenda_permission().", tmpAgendasPermissions);\n\n";
  247. $script.= "tmpAgendasPermissions = new Array();\n";
  248. next($this->agendasPermissions);
  249. }
  250. return $script;
  251. }
  252. }
  253. ?>