verifliberations.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263
  1. <?php
  2. ini_set('display_errors', 'Off');
  3. ini_set('log_errors', 'Off');
  4. session_start();
  5. //Librairie de fonctions
  6. require (__DIR__ . '/vendor/autoload.php');
  7. require_once("lib/libconfig.inc.php");
  8. require_once("lib/libsession.inc.php");
  9. require_once("lib/libfonctions.inc.php");
  10. require_once("lib/libmysql.inc.php");
  11. require_once("lib/libencode.inc.php");
  12. require_once("lib/libforms.inc.php");
  13. require_once("lib/libcourriel.inc.php");
  14. require_once("lib/libliberations.inc.php");
  15. require_once("lib/lib2fa.inc.php");
  16. //Encodage des caractères
  17. header('Content-Type: text/html; charset=$ENCODAGE');
  18. unset($msg);
  19. $msg = "vide";
  20. if (isset($_POST['bouton'])) {
  21. $msg = "vide2";
  22. //filtrer_valeur_saisie();
  23. // Retrait de la fonction import_request_variable.
  24. // Remplacer par une extraction manuelle de toutes les valeurs requises.
  25. // Simon G. 2013-10-12
  26. // import_request_variables("P", "r");
  27. if (is_array($_POST) && count($_POST) > 0) {
  28. foreach ($_POST as $clef => $valeur) {
  29. unset($nom_var);
  30. $nom_var = "r" . $clef;
  31. $$nom_var = $_POST[$clef];
  32. }
  33. }
  34. $rbouton = antiInjection($rbouton);
  35. unset($operation);
  36. $opereussie = true;
  37. switch ($rbouton) {
  38. case "verification":
  39. if ($rltypeopr != "" && $rldatecreation != "" && $rlreference != "") {
  40. // Validation du type d'opération
  41. $rltypeopr2 = antiInjection($rltypeopr);
  42. if ($rltypeopr2 != "1" && $rltypeopr2 != "2") {
  43. $opereussie = false;
  44. $msg = "Le type d'op&eacute; n'a pas &eacute;t&eacute; choisit.";
  45. break;
  46. }
  47. // Validation de la date de création
  48. $rldatecreation = antiInjection($rldatecreation);
  49. if (strtotime($rldatecreation) == false) {
  50. $opereussie = false;
  51. $msg = "Le format de date de création est invalide.";
  52. break;
  53. }
  54. //La référence est le numéro de l'employé dans la bd
  55. $rlreference = antiInjection($rlreference);
  56. unset($sqlparam, $result);
  57. $sqlparam["table"][] = "employes";
  58. $sqlparam["champs"][] = "CONCAT(nomfamille,\", \",prenom) as nomemploye";
  59. $sqlparam["where"][] = sprintf("refemploye = %d", $rlreference);
  60. $result = executerRequeteSql($sqlparam);
  61. if (isset($result) && is_array($result) && count($result) > 0) {
  62. //Ajout de l'entête de la libération
  63. $nomemploye = $result[0]["nomemploye"];
  64. $datetemp = $rdatelib;
  65. $lieutemp = $rlieu;
  66. $detailtemp = $rldetail;
  67. unset($rdatelib);
  68. unset($rlieu);
  69. unset($rldetail);
  70. //Calcul du nombre de ligne à insérer
  71. if (strpos($datetemp, "**") !== false) {
  72. $rdatelib = explode("**", $datetemp);
  73. } else {
  74. $rdatelib[0] = $datetemp;
  75. }
  76. if (strpos($rlcomm, "**") !== false) {
  77. $rcommentaire = explode("**", $rlcomm);
  78. } else {
  79. $rcommentaire[0] = $rlcomm;
  80. }
  81. if (strpos($lieutemp, "**") !== false) {
  82. $rlieu = explode("**", $lieutemp);
  83. } else {
  84. $rlieu[0] = $lieutemp;
  85. }
  86. if (strpos($rlassume, "**") !== false) {
  87. $rlassumerpar = explode("**", $rlassume);
  88. } else {
  89. $rlassumerpar[0] = $rlassume;
  90. }
  91. if (strpos($rlart, "**") !== false) {
  92. $rlarticle = explode("**", $rlart);
  93. } else {
  94. $rlarticle[0] = $rlart;
  95. }
  96. if (strpos($rldur, "**") !== false) {
  97. $rlduree = explode("**", $rldur);
  98. } else {
  99. $rlduree[0] = $rldur;
  100. }
  101. if (strpos($detailtemp, "**") !== false) {
  102. $rldetail = explode("**", $detailtemp);
  103. } else {
  104. $rldetail[0] = $detailtemp;
  105. }
  106. $nombreligne = sizeof($rdatelib);
  107. //Vérification du détail de la libération de chaque ligne
  108. for ($x = 0; $x < $nombreligne; $x++) {
  109. if (strlen($rdatelib[$x]) > 0) {
  110. // Validation sur la date
  111. $rdatelib2 = antiInjection($rdatelib[$x]);
  112. //print $rdatelib[$x];
  113. //print strtotime($rdatelib2);
  114. if (strtotime($rdatelib2) === false) {
  115. $opereussie = false;
  116. $msg = "Le format de la date de libération « $rdatelib2 » est invalide.";
  117. break;
  118. }
  119. // Validation sur l'article
  120. $rlarticle2 = antiInjection($rlarticle[$x]);
  121. unset($sqlparam, $result1);
  122. $sqlparam["table"][] = "articles";
  123. $sqlparam["champs"][] = "refarticle";
  124. $sqlparam["champs"][] = "noarticle";
  125. $sqlparam["where"][] = sprintf("refarticle='%s'", $rlarticle2);
  126. $result1 = executerRequeteSql($sqlparam);
  127. if (isset($result1) && is_array($result1) && sizeof($result1) > 0) {
  128. $nomarticle = $result1[0]["noarticle"];
  129. } else {
  130. $opereussie = false;
  131. $msg = "Le numéro d'article «$rlarticle2» est inconnu.";
  132. break;
  133. }
  134. //Validation sur le commentaire
  135. $rcommentaire2 = antiInjection($rcommentaire[$x]);
  136. if (empty($rcommentaire2)) {
  137. $opereussie = false;
  138. $msg = "Le commentaire est vide";
  139. break;
  140. }
  141. // Validation sur la durée
  142. $rlduree2 = antiInjection($rlduree[$x]);
  143. unset($sqlparam, $result1);
  144. $sqlparam["table"][] = "duree";
  145. $sqlparam["champs"][] = "refduree";
  146. $sqlparam["where"][] = sprintf("refduree='%s'", $rlduree2);
  147. $result1 = executerRequeteSql($sqlparam);
  148. if (isset($result1) && is_array($result1) && sizeof($result1) > 0) {
  149. $refduree = $result1[0]["refduree"];
  150. } else {
  151. $opereussie = false;
  152. $msg = "La durée «$rlduree2» est inconnue.";
  153. break;
  154. }
  155. // Validation sur le lieu
  156. $rlieu2 = antiInjection($rlieu[$x]);
  157. if (empty($rlieu2)) {
  158. $opereussie = false;
  159. $msg = "Le lieu est vide";
  160. break;
  161. }
  162. if (empty($rcommentaire2)) {
  163. $opereussie = false;
  164. $msg = "Le commentaire est vide";
  165. break;
  166. }
  167. // Validation sur le payeur
  168. $rlassumerpar2 = antiInjection($rlassumerpar[$x]);
  169. if ($rlassumerpar2 != "Syndicat" && $rlassumerpar2 != "Employeur") {
  170. $opereussie = false;
  171. $msg = "L'organisme payeur n'a pas été choisit.";
  172. break;
  173. }
  174. // Validation pour vérifier s'il existe un autre document
  175. // créé avec la même date de libération, le même employé pour le même article.
  176. unset($sqlparam, $result1);
  177. $sqlparam["table"][] = "liberations";
  178. $sqlparam["table"][] = "ligneliberations";
  179. $sqlparam["champs"][] = "liberations.refliberation";
  180. $sqlparam["join"][] = "ligneliberations.refliberation=liberations.refliberation";
  181. $sqlparam["where"][] = "DATE_FORMAT(ligneliberations.dateliberation,'%Y-%m-%d')='" .
  182. sprintf("%s'", $rdatelib2);
  183. $sqlparam["where"][] = sprintf("liberations.refemploye=%d", $rlreference);
  184. //$sqlparam["where"][] = sprintf("liberations.typeoperation=%d", $rltypeopr2);
  185. $sqlparam["where"][] = sprintf("ligneliberations.refarticle=%d", $rlarticle2);
  186. $sqlparam["where"][] = "liberations.demandeOriginale is null";
  187. $sqlparam["where"][] = "liberations.refliberation>0";
  188. $sqlparam["where"][] = sprintf("liberations.refliberation!=%d", $rnoliberation);
  189. $sqlparam["debug"]=2;
  190. ob_start();
  191. $result2 = executerRequeteSql($sqlparam);
  192. $out1 = ob_get_contents();
  193. ob_end_flush();
  194. if (isset($result2) && is_array($result2) && sizeof($result2) > 0) {
  195. $opereussie = false;
  196. $msg = sprintf("La date de libération «%s» avec l'article «%s» pour l'employé «%s» a "
  197. . "déjà été demandé auparavant. %s", $rdatelib2, $nomarticle, $nomemploye, $out1);
  198. break;
  199. }
  200. }
  201. }
  202. // Tout est ok! Libération valide
  203. if ($opereussie) {
  204. $msg = "ok";
  205. }
  206. } else {
  207. $opereussie = false;
  208. $msg = sprintf("L'employé «%s» n'est pas un membre connu.", $nomemploye);
  209. }
  210. } else {
  211. if ($rltypeopr == "") {
  212. $msg = "Le type d'opération n'a pas été sélectionné.";
  213. } elseif ($rldatecreation == "") {
  214. $msg = "La date de création n'a pas été inscrite ou est invalide.";
  215. } elseif ($rlreference == "") {
  216. $msg = "L'employé n'a pas été sélectionné.";
  217. }
  218. }
  219. break;
  220. default:
  221. $msg = "Erreur interne de la fonction.";
  222. break;
  223. }
  224. }
  225. print "$msg";
  226. ?>