verifliberations.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257
  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. // Validation sur la date
  110. $rdatelib2 = antiInjection($rdatelib[$x]);
  111. if (strtotime($rdatelib2) == false) {
  112. $opereussie = false;
  113. $msg = "Le format de la date de libération «$rdatelib2» est invalide.";
  114. break;
  115. }
  116. // Validation sur l'article
  117. $rlarticle2 = antiInjection($rlarticle[$x]);
  118. unset($sqlparam, $result1);
  119. $sqlparam["table"][] = "articles";
  120. $sqlparam["champs"][] = "refarticle";
  121. $sqlparam["champs"][] = "noarticle";
  122. $sqlparam["where"][] = sprintf("refarticle='%s'", $rlarticle2);
  123. $result1 = executerRequeteSql($sqlparam);
  124. if (isset($result1) && is_array($result1) && sizeof($result1) > 0) {
  125. $refarticle = $result1[0]["noarticle"];
  126. } else {
  127. $opereussie = false;
  128. $msg = "Le numéro d'article «$rlarticle2» est inconnu.";
  129. break;
  130. }
  131. //Validation sur le commentaire
  132. $rcommentaire2 = antiInjection($rcommentaire[$x]);
  133. if (empty($rcommentaire2)) {
  134. $opereussie = false;
  135. $msg = "Le commentaire est vide";
  136. break;
  137. }
  138. // Validation sur la durée
  139. $rlduree2 = antiInjection($rlduree[$x]);
  140. unset($sqlparam, $result1);
  141. $sqlparam["table"][] = "duree";
  142. $sqlparam["champs"][] = "refduree";
  143. $sqlparam["where"][] = sprintf("refduree='%s'", $rlduree2);
  144. $result1 = executerRequeteSql($sqlparam);
  145. if (isset($result1) && is_array($result1) && sizeof($result1) > 0) {
  146. $refduree = $result1[0]["refduree"];
  147. } else {
  148. $opereussie = false;
  149. $msg = "La durée «$rlduree2» est inconnue.";
  150. break;
  151. }
  152. // Validation sur le lieu
  153. $rlieu2 = antiInjection($rlieu[$x]);
  154. if (empty($rlieu2)) {
  155. $opereussie = false;
  156. $msg = "Le lieu est vide";
  157. break;
  158. }
  159. if (empty($rcommentaire2)) {
  160. $opereussie = false;
  161. $msg = "Le commentaire est vide";
  162. break;
  163. }
  164. // Validation sur le payeur
  165. $rlassumerpar2 = antiInjection($rlassumerpar[$x]);
  166. if ($rlassumerpar2 != "Syndicat" && $rlassumerpar2 != "Employeur") {
  167. $opereussie = false;
  168. $msg = "L'organisme payeur n'a pas été choisit.";
  169. break;
  170. }
  171. // Validation pour vérifier s'il existe un autre document
  172. // créé avec la même date de libération, le même employé et le même article
  173. unset($sqlparam, $result1);
  174. $sqlparam["table"][] = "liberations";
  175. $sqlparam["table"][] = "ligneliberations";
  176. $sqlparam["champs"][] = "liberations.refliberation";
  177. $sqlparam["join"][] = "ligneliberations.refliberation=liberations.refliberation";
  178. $sqlparam["where"][] = "DATE_FORMAT(ligneliberations.dateliberation,'%Y-%m-%d')='" .
  179. sprintf("%s'", $rdatelib2);
  180. $sqlparam["where"][] = sprintf("liberations.refemploye=%d", $rlreference);
  181. $sqlparam["where"][] = sprintf("liberations.typeoperation=%d", $rltypeopr2);
  182. //$sqlparam["where"][] = sprintf("ligneliberations.refarticle=%d", $rlarticle2);
  183. // Clef existe si le mode est modification.
  184. if (array_key_exists($x, $rldetail) && $rldetail[$x] > 0) {
  185. //$sqlparam["where"][] = sprintf("ligneliberations.refligneliberation<>%d", $rldetail[$x]);
  186. }
  187. $sqlparam["where"][] = "liberations.refliberation>0";
  188. $result1 = executerRequeteSql($sqlparam);
  189. if (isset($result1) && is_array($result1) && sizeof($result1) > 0) {
  190. $opereussie = false;
  191. $msg = sprintf("La date de libération «%s» avec l'article «%s» pour l'employé «%s» a "
  192. . "déjà été demandé auparavant.",
  193. $rdatelib2, $refarticle, $nomemploye);
  194. $x = $nombreligne + 1;
  195. break;
  196. }
  197. }
  198. // Tout est ok! Libération valide
  199. if ($opereussie) {
  200. $msg = "ok";
  201. }
  202. } else {
  203. $opereussie = false;
  204. $msg = sprintf("L'employé «%s» n'est pas un membre connu.", $nomemploye);
  205. }
  206. } else {
  207. if ($rltypeopr == "") {
  208. $msg = "Le type d'opération n'a pas été sélectionné.";
  209. } elseif ($rldatecreation == "") {
  210. $msg = "La date de création n'a pas été inscrite ou est invalide.";
  211. } elseif ($rlreference == "") {
  212. $msg = "L'employé n'a pas été sélectionné.";
  213. }
  214. }
  215. break;
  216. default:
  217. $msg = "Erreur interne de la fonction.";
  218. break;
  219. }
  220. }
  221. //var_dump($msg);
  222. print "$msg";
  223. ?>