PageRenderTime 55ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 1ms

/src/2.071.0/_Event.class.php

https://github.com/crepeausucre/soothERP
PHP | 461 lines | 385 code | 57 blank | 19 comment | 105 complexity | 0068ca432c7b589cf39723d664b21d5b MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, LGPL-3.0
  1. <?php
  2. // *************************************************************************************************************
  3. // CLASSES REGISSANT LES INFORMATIONS D'UN EVENEMENT
  4. // *************************************************************************************************************
  5. //
  6. //
  7. //
  8. // *************************************************************************************************************
  9. // CLASSE Event
  10. // *************************************************************************************************************
  11. class Event{
  12. private $agenda; //Obj Agenda
  13. private $ref_agenda;
  14. private $id_type_agenda;
  15. private $id_agenda_couleurs; //smallint(5) unsigned default 1
  16. private $couleur_1; //varchar(7) ex "#ffffff"
  17. private $couleur_2; //varchar(7) ex "#ffffff"
  18. private $couleur_3; //varchar(7) ex "#000000"
  19. private $event_Parent; //Obj Event
  20. private $ref_event_parent;
  21. private $events_fils; //Tableau d'obj Event
  22. private $ref_events_fils; //Tableau de ref
  23. private $ref_event;
  24. private $lib_event;
  25. private $note_event;
  26. private $Udate_event; // int : temps mesurée en secondes depuis le début de l'époque UNIX, (1er janvier 1970 00:00:00 GMT).
  27. private $duree_event; // int
  28. private $affichage_journee;
  29. private $id_type_event;
  30. private $gestionnaireEvenements;
  31. public function __construct($ref_event){
  32. global $bdd;
  33. if ($ref_event == null || $ref_event == "") return false;
  34. $query = "SELECT ev.ref_agenda_event, ev.ref_agenda, ev.lib_agenda_event, ev.note_agenda_event, UNIX_TIMESTAMP(ev.date_agenda_event) as Udate_agenda_event,
  35. ev.duree_agenda_event, ev.ref_agenda_event_parent, ev.affichage_journee, ev.id_type_event, ag.id_type_agenda, agsr.id_agenda_couleurs,
  36. agsr.agenda_couleur_rule_1, agsr.agenda_couleur_rule_2, agsr.agenda_couleur_rule_3
  37. FROM agendas_events ev
  38. LEFT JOIN agendas ag ON ev.ref_agenda = ag.ref_agenda
  39. LEFT JOIN agendas_couleurs agsr ON agsr.id_agenda_couleurs = ag.id_agenda_couleurs
  40. WHERE ev.ref_agenda_event = '".$ref_event."'";
  41. $resultat = $bdd->query(($query));
  42. if (!$r = $resultat->fetchObject()) return false;
  43. $this->ref_event = ($r->ref_agenda_event);
  44. $this->ref_event_parent = ($r->ref_agenda_event_parent);
  45. $this->lib_event = nl2br(stripslashes($r->lib_agenda_event));
  46. $this->note_event = stripslashes($r->note_agenda_event);
  47. $this->Udate_event = $r->Udate_agenda_event;
  48. $this->duree_event = $r->duree_agenda_event;
  49. $this->id_type_agenda = intval($r->id_type_agenda);
  50. $this->ref_agenda = $r->ref_agenda;
  51. $this->id_agenda_couleurs = intval($r->id_agenda_couleurs);
  52. $this->duree_all_day = $r->affichage_journee;
  53. $this->couleur_1 = $r->agenda_couleur_rule_1;
  54. $this->couleur_2 = $r->agenda_couleur_rule_2;
  55. $this->couleur_3 = $r->agenda_couleur_rule_3;
  56. $this->id_type_event = intval($r->id_type_event);
  57. }
  58. public static function EVENT_ID_REFERENCE_TAG()
  59. { return 35;}
  60. public final static function &newEvent(&$agenda, $id_type_event, &$event_Parent, $lib_event, $note_event, $Udate_event, $duree_event, $affichage_journee = 0){
  61. global $bdd;
  62. $newEvent = null;
  63. if ( $agenda == null || $lib_event == null || $lib_event == "" || !is_numeric($id_type_event) || $id_type_event < 1 ||!is_numeric($Udate_event) || !is_numeric($duree_event)) return $newEvent; // = null
  64. $reference = new reference(Event::EVENT_ID_REFERENCE_TAG());
  65. $ref_event = $reference->generer_ref();
  66. if(is_string($agenda))
  67. { $ref_agenda = $agenda;}
  68. elseif(is_subclass_of($agenda, "Agenda"))
  69. { $ref_agenda = $agenda->getRef_agenda();}
  70. else
  71. { return $newEvent;} // = null
  72. if( $event_Parent == null)
  73. { $ref_event_parent = "";}
  74. else
  75. { $ref_event_parent = $event_Parent->getRef_event();}
  76. $query = "INSERT INTO agendas_events
  77. ( ref_agenda_event, ref_agenda, id_type_event, lib_agenda_event, note_agenda_event, date_agenda_event, duree_agenda_event, ref_agenda_event_parent, affichage_journee) VALUES
  78. ('".$ref_event."', '".$ref_agenda."', ".$id_type_event.", '".addslashes($lib_event)."', '".addslashes($note_event)."', FROM_UNIXTIME(".$Udate_event."), '".$duree_event."', NULL , ".$affichage_journee.")";
  79. $bdd->exec(($query));
  80. $newEvent = new Event($ref_event);
  81. if(!is_string($agenda) && is_subclass_of($agenda, "Agenda")){
  82. $newEvent->agenda =& $agenda;
  83. }
  84. return $newEvent;
  85. }
  86. // *************************************************************************************************************
  87. // Getters & Setters pour l'event
  88. // *************************************************************************************************************
  89. protected function chargerCouleur(){
  90. global $bdd;
  91. $query = "SELECT agsr.agenda_couleur_rule_1, agsr.agenda_couleur_rule_2, agsr.agenda_couleur_rule_3
  92. FROM agendas_events ev
  93. LEFT JOIN agendas ag ON ev.ref_agenda = ag.ref_agenda
  94. LEFT JOIN agendas_couleurs agsr ON agsr.id_agenda_couleurs = ag.id_agenda_couleurs
  95. WHERE ev.ref_agenda_event = '".$this->ref_event."'";
  96. $resultat = $bdd->query(($query));
  97. if (!$r = $resultat->fetchObject()) return false;
  98. $this->couleur_1 = $r->agenda_couleur_rule_1;
  99. $this->couleur_2 = $r->agenda_couleur_rule_2;
  100. $this->couleur_3 = $r->agenda_couleur_rule_3;
  101. return true;
  102. }
  103. //retourne la couleur n°1 sous forme d'une chaine de charactčre de la forme #e3a869
  104. public function getCouleur_1(&$gestionnaireEvenements = null){
  105. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->getCouleur_1($this)){
  106. if(is_null($this->agenda)){
  107. return $this->couleur_1;
  108. }else{
  109. return $this->agenda->getCouleur_1();
  110. }
  111. }else{
  112. return false;
  113. }
  114. }
  115. //retourne la couleur n°2 sous forme d'une chaine de charactčre de la forme #e3a869
  116. public function getCouleur_2(&$gestionnaireEvenements = null){
  117. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->getCouleur_2($this)){
  118. if(is_null($this->agenda)){
  119. return $this->couleur_2;
  120. }else{
  121. return $this->agenda->getCouleur_2();
  122. }
  123. }else{
  124. return false;
  125. }
  126. }
  127. //retourne la couleur n°3 sous forme d'une chaine de charactčre de la forme #e3a869
  128. public function getCouleur_3(&$gestionnaireEvenements = null){
  129. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->getCouleur_3($this)){
  130. if(is_null($this->agenda)){
  131. return $this->couleur_3;
  132. }else{
  133. return $this->agenda->getCouleur_3();
  134. }
  135. }else{
  136. return false;
  137. }
  138. }
  139. public function getRef_agenda(&$gestionnaireEvenements = null){
  140. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->getRef_agenda($this))
  141. { return $this->ref_agenda;}
  142. else{ return false;}
  143. }
  144. public function &getAgenda(&$gestionnaireEvenements = null){
  145. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->getAgenda($this)){
  146. if($this->agenda != null)
  147. { return $this->agenda;}
  148. $this->agenda =& Lib_interface_agenda::openAgenda($this->ref_agenda);
  149. return $this->agenda;
  150. }else{
  151. return null;
  152. }
  153. }
  154. public function setRef_Agenda($ref_agenda, &$gestionnaireEvenements = null){
  155. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->setRef_Agenda($this)){
  156. if($this->ref_agenda != $ref_agenda){
  157. global $bdd;
  158. $query = "UPDATE agendas_events SET ref_agenda = '".$ref_agenda."'
  159. WHERE ref_agenda_event = '".$this->ref_event."' ";
  160. $resultat = $bdd->query(($query));
  161. $this->agenda = null; // l'agenda est chargé ŕ la demande
  162. $this->chargerCouleur();
  163. }
  164. return true;
  165. }else{
  166. return false;
  167. }
  168. }
  169. public function setAgenda(&$agenda, &$gestionnaireEvenements = null){
  170. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->setAgenda($this)){
  171. global $bdd;
  172. if( $agenda == null ){
  173. $this->agenda = null;
  174. $this->ref_agenda = "";
  175. $query = "UPDATE agendas_events SET ref_agenda = ''
  176. WHERE ref_agenda_event = '".$this->ref_event."' ";
  177. $resultat = $bdd->query(($query));
  178. return true;
  179. }
  180. if(! ($agenda instanceof Agenda) ) return false;
  181. if($this->ref_agenda != $agenda->getRef_agenda()){
  182. $query = "UPDATE agendas_events SET ref_agenda = '".$agenda->getRef_agenda()."'
  183. WHERE ref_agenda_event = '".$this->ref_event."' ";
  184. $resultat = $bdd->query(($query));
  185. $this->ref_agenda = $agenda->getRef_agenda();
  186. }
  187. $this->agenda =& $agenda;
  188. return true;
  189. }else{
  190. return false;
  191. }
  192. }
  193. public function getRef_event_parent(&$gestionnaireEvenements = null){
  194. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->getRef_event_parent($this))
  195. { return $this->ref_event_parent;}
  196. else{ return "";}
  197. }
  198. public function &getEvent_parent(&$gestionnaireEvenements = null){
  199. $val_null = null;
  200. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->getEvent_parent($this)){
  201. if ($this->ref_event_parent == "")
  202. { return $val_null;}
  203. else
  204. { if(is_null($this->event_parent)){
  205. $this->event_parent = new Event($this->ref_event_parent);
  206. //ATTENTION $this->event_parent->events_fils[$i] != $this;
  207. //il faut mettre ŕ jour la référence de l'objet
  208. $cousins =& $this->event_parent->getEvents_fils();
  209. for ($i = 0; i< count($cousins); $i++){
  210. if($cousins[$i]->getRef_event() == $this->getRef_event())
  211. $cousins[$i] =& $this;
  212. break;
  213. }
  214. }
  215. return $this->event_parent;
  216. }
  217. }else{
  218. return $val_null;
  219. }
  220. }
  221. public function getRef_events_fils(&$gestionnaireEvenements = null){
  222. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->getRef_events_fils($this)){
  223. return $this->ref_events_fils;
  224. }else{
  225. return false;
  226. }
  227. }
  228. public function &getEvents_fils(&$gestionnaireEvenements = null){
  229. $val_null = null;
  230. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->getEvents_fils($this)){
  231. if(count($this->ref_events_fils) == 0){
  232. return $val_null;
  233. }else{
  234. if(is_null($this->events_fils)){
  235. $this->events_fils = array(count($this->ref_events_fils));
  236. foreach ($this->ref_events_fils as $ref_ev_fils){
  237. $ev = new Event($ref_ev_fils);
  238. $ev->event_parent =& $this;
  239. //ATTENTION $this->events_fils[$i]->event_parent != $this;
  240. //il faut mettre ŕ jour la référence de l'objet
  241. $this->events_fils[] = ev;
  242. }
  243. }
  244. return $this->events_fils;
  245. }
  246. }else{
  247. $val_null;
  248. }
  249. }
  250. public function getRef_event(&$gestionnaireEvenements = null){
  251. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->getRef_event($this))
  252. { return $this->ref_event;}
  253. else{ return "";}
  254. }
  255. public function getLib_event(&$gestionnaireEvenements = null){
  256. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->getLib_event($this))
  257. { return $this->lib_event;}
  258. else{ return false;}
  259. }
  260. public function setLib_event($lib, &$gestionnaireEvenements = null){
  261. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->setLib_event($this)){
  262. if($this->lib_event != $lib){
  263. global $bdd;
  264. $query = "UPDATE agendas_events SET lib_agenda_event = '".nl2br(addslashes($lib))."'
  265. WHERE ref_agenda_event = '".$this->ref_event."' ";
  266. $resultat = $bdd->query(($query));
  267. $this->lib_event = $lib;
  268. }
  269. return true;
  270. }else
  271. { return false;}
  272. }
  273. public function getNote_event(&$gestionnaireEvenements = null){
  274. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->getNote_event($this)){
  275. return $this->note_event;
  276. }else{
  277. return false;
  278. }
  279. }
  280. public function setNote_event($note, &$gestionnaireEvenements = null){
  281. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->setNote_event($this)){
  282. if($this->note_event != $note){
  283. global $bdd;
  284. $query = "UPDATE agendas_events SET note_agenda_event = '".addslashes($note)."'
  285. WHERE ref_agenda_event = '".$this->ref_event."' ";
  286. $resultat = $bdd->query(($query));
  287. $this->note_event = $note;
  288. }
  289. return true;
  290. }else{
  291. return false;
  292. }
  293. }
  294. public function getUdate_event(&$gestionnaireEvenements = null){
  295. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->getUdate_event($this)){
  296. return $this->Udate_event;
  297. }else{
  298. return false;
  299. }
  300. }
  301. public function setUdate_event($Udate, &$gestionnaireEvenements = null){
  302. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->setUdate_event($this)){
  303. if($this->Udate_event != $Udate){
  304. global $bdd;
  305. $query = "UPDATE agendas_events SET date_agenda_event = FROM_UNIXTIME(".$Udate.")
  306. WHERE ref_agenda_event = '".$this->ref_event."' ";
  307. $resultat = $bdd->query(($query));
  308. $this->Udate_event = $Udate;
  309. }
  310. return true;
  311. }else{
  312. return false;
  313. }
  314. }
  315. public function getDuree_event(&$gestionnaireEvenements = null){
  316. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->getDuree_event($this)){
  317. return $this->duree_event;
  318. }else{
  319. return false;
  320. }
  321. }
  322. public function setDuree_event($min, &$gestionnaireEvenements = null){
  323. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->setDuree_event($this)){
  324. if($this->duree_event != $min){
  325. global $bdd;
  326. $query = "UPDATE agendas_events SET duree_agenda_event = '".$min."'
  327. WHERE ref_agenda_event = '".$this->ref_event."' ";
  328. $resultat = $bdd->query(($query));
  329. $this->duree_event = $min;
  330. }
  331. return true;
  332. }else{
  333. return false;
  334. }
  335. }
  336. public function getDuree_all_day_event(&$gestionnaireEvenements = null){
  337. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->getDuree_all_day_event($this)){
  338. return $this->duree_all_day;
  339. }else{
  340. return false;
  341. }
  342. }
  343. public function setDuree_all_day_event($affichage_journee, &$gestionnaireEvenements = null){
  344. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->setDuree_all_day_event($this)){
  345. if(is_bool($affichage_journee)){
  346. global $bdd;
  347. $query = "UPDATE agendas_events SET affichage_journee = '".$affichage_journee."'
  348. WHERE ref_agenda_event = '".$this->ref_event."' ";
  349. $resultat = $bdd->query(($query));
  350. $this->duree_all_day = $affichage_journee;
  351. }
  352. return true;
  353. }else{
  354. return false;
  355. }
  356. }
  357. public function deleteOnCascade(&$gestionnaireEvenements = null){
  358. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->getDuree_all_day_event($this)){
  359. if($this->agenda != null){
  360. $this->agenda->delete_Event($this);
  361. $this->agenda = null;
  362. }
  363. $this->event_Parent = null;
  364. for ($i = 0; $i<count($this->events_fils); $i++){
  365. $this->events_fils[$i]->deleteOnCascade();
  366. }
  367. $this->events_fils = null;
  368. global $bdd;
  369. $query = "DELETE FROM agendas_events
  370. WHERE ref_agenda_event = '".$this->ref_event."'";
  371. $bdd->exec(($query));
  372. return true;
  373. }else{
  374. return false;
  375. }
  376. }
  377. public function getId_type_event(&$gestionnaireEvenements = null){
  378. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->getId_type_event($this)){
  379. return $this->id_type_event;
  380. }else{
  381. return false;
  382. }
  383. }
  384. public function setId_type_event($id_type_event, &$gestionnaireEvenements = null){
  385. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->setId_type_event($this)){
  386. global $bdd;
  387. $query = "UPDATE agendas_events SET id_type_event = '".$id_type_event."'
  388. WHERE ref_agenda_event = '".$this->ref_event."' ";
  389. $resultat = $bdd->query(($query));
  390. $this->id_type_event = $id_type_event;
  391. return true;
  392. }else{
  393. return false;
  394. }
  395. }
  396. public function getId_type_agenda(&$gestionnaireEvenements = null){
  397. if(is_null($gestionnaireEvenements) || $gestionnaireEvenements->getId_type_agenda($this)){
  398. return $this->id_type_agenda;
  399. }else{
  400. return false;
  401. }
  402. }
  403. }
  404. ?>