liste_liberations.inc.php 50 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120
  1. <?PHP
  2. // ------------------------------
  3. // Caractéristiques du module
  4. // ------------------------------
  5. unset($module);
  6. $module = array(
  7. "titre" => "Gestion des libérations",
  8. "urldest" => $SCRIPT_NAME . "?page=liste_liberations",
  9. "recherche" => array("engin" => true),
  10. "jeton" => $jeton,
  11. "opradmin" => "Ajouter une libération",
  12. "fenetre" => array(
  13. "nom" => "liste_liberations",
  14. "titre" => "titre",
  15. "largeur" => "1200",
  16. "hauteur" => "500",
  17. "champs" => array("lnoemployeur", "lnom", "lcontact", "ltitre", "ladresse1", "ladresse2", "lville", "lcodepostal", "ltelephone", "ltelecopieur", "lemail")
  18. ),
  19. "msgajoutbouton" => "Ajout de la libération",
  20. "msgmodifbouton" => "Modification de la libération",
  21. "actionmodifbouton" => "Modifier la libération",
  22. "nombre_a_afficher" => array(
  23. 0 => array("refid" => 15, "valeur" => 15),
  24. 1 => array("refid" => 30, "valeur" => 30),
  25. 2 => array("refid" => 45, "valeur" => 45),
  26. 3 => array("refid" => 60, "valeur" => 60),
  27. 4 => array("refid" => 120, "valeur" => 120),
  28. 5 => array("refid" => 240, "valeur" => 240)
  29. ),
  30. "colonneaction" => true,
  31. "lientri" => true,
  32. "entete" => array(
  33. 1 => array("Demandée par" => "concat(employes.nomfamille,employes.prenom)", "largeur" => "100px"), //130
  34. 2 => array("Employé" => "concat(employes.nomfamille, employes.prenom)", "largeur" => "150px"), //130
  35. 3 => array("Type" => "liberations.typeoperation", "largeur" => "60px"), //78px
  36. 4 => array("Date" => "ligneliberations.dateliberation", "largeur" => "75px"), //141px
  37. 5 => array("Article" => "articles.noarticle", "largeur" => "60px"), //65px
  38. 6 => array("Commentaire" => "ligneliberations.commentaire", "largeur" => "214px"),
  39. 7 => array("Durée" => "duree.duree", "largeur" => "56px"), //61px
  40. 8 => array("Lieu" => "ligneliberations.lieu", "largeur" => "89px"),
  41. 9 => array("Assumée par" => "ligneliberations.quipaye", "largeur" => "75px"), //105px
  42. 10 => array("Paiement" => "ligneliberations.paiement", "largeur" => "84px", "droit" => array("gestion_site" => "Oui")),
  43. 11 => array("En date du" => "ligneliberations.datepaiement", "largeur" => "88px", "droit" => array("gestion_site" => "Oui")), //95px
  44. 12 => array("<img alt=\"Pdf\" src=\"images/pdficon_small.gif\">" => "-1", "largeur" => "22px"),
  45. 13 => array("<img alt=\"Pdf\" src=\"images/icones/icones_20.png\">" => "-1", "largeur" => "22px")
  46. ),
  47. "msg" => array(
  48. "maj_ok" => "Création de la libération effectuée avec succès.",
  49. "maj_echec" => "L'opération de création de la libération a échouée.",
  50. "modif_ok" => "Modification de la libération effectuée avec succès.",
  51. "modif_echec" => "L'opération de modification de la libération a échouée.",
  52. "typeopr" => "Le type d'opération n'a pas été sélectionné.",
  53. "datecreation" => "La date de création n'a pas été inscrite ou est invalide.",
  54. "choixemp" => "L'employé n'a pas été sélectionné.",
  55. "dateliberation" => "Le format de la date de libération est invalide.",
  56. "numeroart" => "Le numéro d'article est inconnu.",
  57. "dateoccupee" => "La date de libération est déjà prise pour le même article pour ce membre.",
  58. "annulationimpossible" => "Il n'y a aucune demande de libération à annuler pour ce membre.",
  59. "dureevide" => "La durée est inconnue.",
  60. "commentairevide" => "Le commentaire est vide.",
  61. "lieuvide" => "Le lieu est vide.",
  62. "quipaye" => "L'organisme payeur n'a pas été choisit.",
  63. "rech_ok" => "La recherche a réussie.",
  64. "rech_echec" => "La recherche a été infructueuse ou a échouée.",
  65. "employeur_invalide" => "Employeur introuvable ou inconnu.",
  66. "annulationDemandee" => "Annulation de la demande déjà effectuée"
  67. )
  68. );
  69. // ------------------
  70. // Requête sur le tri
  71. // ------------------
  72. $rtri = antiInjection($module["entete"][$tri][key($module["entete"][$tri])] . " " . $dir);
  73. // -----------------------
  74. // Opération de sauvegarde
  75. // -----------------------
  76. if (isset($action)) {
  77. $msg = "";
  78. //Cueillette de données du module
  79. $action = stripslashes(antiInjection($action));
  80. //$noliberation = stripslashes(antiInjection($noliberation));
  81. switch ($action) {
  82. case "Accepter et imprimer":
  83. case "Accepter et envoyer par courriel":
  84. case "Modifier":
  85. case "Modifier et imprimer":
  86. unset($opereussie);
  87. unset($erreurid);
  88. unset($modemodif);
  89. $modemodif = false;
  90. $opereussie = true;
  91. if ($action == "Modifier" || $action == "Modifier et imprimer") {
  92. $modemodif = true;
  93. }
  94. if ($ltypeopr != "" && $ldatecreation != "" && $lreference != "") {
  95. // Validation du type d'opération
  96. $rltypeopr2 = antiInjection($ltypeopr);
  97. if ($rltypeopr2 != "1" && $rltypeopr2 != "2") {
  98. $opereussie = false;
  99. $erreurid = "typeopr";
  100. break;
  101. }
  102. // Validation de la date de création
  103. $rldatecreation = antiInjection($ldatecreation);
  104. if (strtotime($rldatecreation) == false) {
  105. $opereussie = false;
  106. $erreurid = "datecreation";
  107. break;
  108. }
  109. // La référence est le numéro de l'employé dans la bd
  110. $rlreference = antiInjection($lreference);
  111. unset($sqlparam, $result);
  112. $sqlparam["table"][] = "employes";
  113. $sqlparam["champs"][] = "CONCAT(nomfamille,\", \",prenom) as nomemploye";
  114. $sqlparam["where"][] = sprintf("refemploye = %d", $rlreference);
  115. $result = executerRequeteSql($sqlparam);
  116. if (!(isset($result) && is_array($result) && count($result) > 0)) {
  117. $msg = sprintf("L'employé «%s» n'est pas un membre connu.", $nomemploye);
  118. $opereussie = false;
  119. $erreurid = "choixemp";
  120. }
  121. // Conditions de base remplies
  122. // Le type d'opération
  123. // L'employé
  124. // La date de création du document
  125. // Toujours pas d'erreur, nous continuons.
  126. if ($opereussie) {
  127. //Lecture du numéro d'employé
  128. $nomemploye = $result[0]["nomemploye"];
  129. // Les différents tableaux de données
  130. $rdatelib = $datelib;
  131. $rlarticle = $larticle;
  132. $rcommentaire = $commentaire;
  133. $rlduree = $lduree;
  134. $rlieu = $lieu;
  135. $rlassumerpar = $lassumerpar;
  136. if ($action == "Modifier" || $action == "Modifier et imprimer") {
  137. $rlpaiement = $lpaiement;
  138. $rldatepaiement = $datepaiement;
  139. $rligneliberation = $ligneliberation;
  140. }
  141. //Calcul du nombre de ligne ;à insérer
  142. $nombreligne = sizeof($rdatelib);
  143. $nombreligne2 = $nombreligne;
  144. // Tableau des requêtes SQL à effectuer
  145. $tableausql = array();
  146. //Ajout du détail de la libération pour chaque ligne
  147. for ($x = 0; $x < $nombreligne; $x++) {
  148. // Validation sur la date
  149. $rdatelib2 = antiInjection($rdatelib[$x]);
  150. if (strtotime($rdatelib2) == false) {
  151. $opereussie = false;
  152. $erreurid = "dateliberation";
  153. break;
  154. }
  155. // Validation sur l'article
  156. $rlarticle2 = antiInjection($rlarticle[$x]);
  157. unset($sqlparam, $result1);
  158. $sqlparam["table"][] = "articles";
  159. $sqlparam["champs"][] = "refarticle";
  160. $sqlparam["where"][] = sprintf("refarticle='%s'", $rlarticle2);
  161. $result1 = executerRequeteSql($sqlparam);
  162. if (isset($result1) && is_array($result1) && sizeof($result1) > 0) {
  163. $refarticle = $result1[0]["refarticle"];
  164. } else {
  165. $opereussie = false;
  166. $erreurid = "numeroart";
  167. break;
  168. }
  169. //Validation sur le commentaire
  170. $rcommentaire2 = antiInjection($rcommentaire[$x]);
  171. if (empty($rcommentaire2)) {
  172. $opereussie = false;
  173. $erreurid = "commentairevide";
  174. break;
  175. }
  176. // Validation sur la durée
  177. $rlduree2 = antiInjection($rlduree[$x]);
  178. unset($sqlparam, $result2);
  179. $sqlparam["table"][] = "duree";
  180. $sqlparam["champs"][] = "refduree";
  181. $sqlparam["champs"][] = "duree";
  182. $sqlparam["where"][] = sprintf("refduree=%d", $rlduree2);
  183. $result2 = executerRequeteSql($sqlparam);
  184. if (isset($result2) && is_array($result2) && sizeof($result2) > 0) {
  185. $refduree = $result2[0]["refduree"];
  186. } else {
  187. $opereussie = false;
  188. $erreurid = "dureevide";
  189. break;
  190. }
  191. // Validation sur le lieu
  192. $rlieu2 = antiInjection($rlieu[$x]);
  193. if (empty($rlieu2)) {
  194. $opereussie = false;
  195. $erreurid = "lieuvide";
  196. break;
  197. }
  198. // Validation sur le payeur
  199. $rlassumerpar2 = antiInjection($rlassumerpar[$x]);
  200. if ($rlassumerpar2 != "Syndicat" && $rlassumerpar2 != "Employeur") {
  201. $opereussie = false;
  202. $erreurid = "quipaye";
  203. break;
  204. }
  205. //Validation sur le paiement
  206. if ($modemodif) {
  207. $rlpaiement2 = antiInjection($rlpaiement[$x]);
  208. $rldatepaiement2 = antiInjection($rldatepaiement[$x]);
  209. }
  210. // Date déjà demandée pour le même employé selon l'article
  211. unset($sqlparam, $result3);
  212. $sqlparam["table"][] = "liberations";
  213. $sqlparam["table"][] = "ligneliberations";
  214. $sqlparam["table"][] = "articles";
  215. $sqlparam["table"][] = "duree";
  216. $sqlparam["join"][] = "ligneliberations.refliberation = liberations.refliberation";
  217. $sqlparam["join"][] = "articles.refarticle=ligneliberations.refarticle";
  218. $sqlparam["join"][] = "duree.refduree=ligneliberations.duree";
  219. $sqlparam["champs"][] = "liberations.refemploye";
  220. $sqlparam["champs"][] = "articles.refarticle";
  221. $sqlparam["champs"][] = "unix_timestamp(ligneliberations.dateliberation) as dateliberation";
  222. $sqlparam["champs"][] = "SUM(If(liberations.typeoperation=1,duree.dureeNombre,0-dureeNombre)) AS calculduree";
  223. $sqlparam["groupe"][] = "liberations.refemploye";
  224. $sqlparam["groupe"][] = "ligneliberations.dateliberation";
  225. $sqlparam["groupe"][] = "articles.refarticle";
  226. $sqlparam["where"][] = sprintf("ligneliberations.refarticle=%d", $rlarticle2);
  227. $sqlparam["where"][] = "DATE_FORMAT(ligneliberations.dateliberation,'%Y-%m-%d')='$rdatelib2'";
  228. $sqlparam["where"][] = "liberations.refemploye=$rlreference";
  229. if ($modemodif) {
  230. $sqlparam["where"][] = sprintf("ligneliberations.refligneliberation<>%d", $rligneliberation[$x]);
  231. }
  232. $result3 = executerRequeteSql($sqlparam);
  233. if (isset($result3) && is_array($result3) && sizeof($result3) > 0) {
  234. if ($result3[0]["calculduree"] > 0 && $ltypeopr == 1) {
  235. $opereussie = false;
  236. $erreurid = "dateoccupee";
  237. $x = $nombreligne + 1;
  238. break;
  239. } elseif ($result3[0]["calculduree"] == 0 && $ltypeopr == 2) {
  240. $opereussie = false;
  241. $erreurid = "annulationimpossible";
  242. $x = $nombreligne + 1;
  243. break;
  244. }
  245. }
  246. if ($opereussie) {
  247. unset($sqlparam);
  248. if (!$modemodif) {
  249. $sqlparam["type"] = "INSERT";
  250. $sqlparam["champs"]["paiement"] = 0;
  251. } else {
  252. $sqlparam["type"] = "UPDATE";
  253. $sqlparam["where"][] = "ligneliberations.refligneliberation = " . sprintf("%d", $rligneliberation[$x]);
  254. $sqlparam["champs"]["paiement"] = sprintf("%d", $rlpaiement2);
  255. if ($rlpaiement2 == 2 && !empty($rldatepaiement2)) {
  256. $sqlparam["champs"]["datepaiement "] = sprintf("'%s'", $rldatepaiement2);
  257. }
  258. }
  259. $sqlparam["table"][] = "ligneliberations";
  260. $sqlparam["champs"]["dateliberation"] = sprintf("'%s'", "$rdatelib2 12:00:00");
  261. $sqlparam["champs"]["refarticle "] = sprintf("%d", $refarticle);
  262. $sqlparam["champs"]["commentaire "] = sprintf("'%s'", $rcommentaire2);
  263. $sqlparam["champs"]["duree "] = sprintf("%d", $refduree);
  264. $sqlparam["champs"]["lieu"] = sprintf("'%s'", $rlieu2);
  265. $sqlparam["champs"]["quipaye"] = sprintf("'%s'", $rlassumerpar2);
  266. $tableausql[] = $sqlparam;
  267. }
  268. }
  269. unset($cpt_opr);
  270. $cpt_opr = 0;
  271. if ($opereussie) {
  272. unset($sqlparam2);
  273. if (!$modemodif) {
  274. // Création de la libération
  275. unset($sqlparam);
  276. $sqlparam["type"] = "INSERT";
  277. $sqlparam["table"][] = "liberations";
  278. $sqlparam["champs"]["refemploye"] = sprintf("%d", $rlreference);
  279. $sqlparam["champs"]["datedemande"] = sprintf("'%s'", $rldatecreation . " 00:00");
  280. $sqlparam["champs"]["typeoperation"] = sprintf("%d", $rltypeopr2);
  281. $result = executerRequeteSql($sqlparam);
  282. $valeurnolib = $result;
  283. $sqlparam2 = $sqlparam;
  284. } else {
  285. $valeurnolib = antiInjection($liberation);
  286. }
  287. //Ajout du détail de la libération pour chaque ligne
  288. $nombreligne2 = sizeof($rdatelib);
  289. for ($x = 0; $x < $nombreligne2; $x++) {
  290. $tableausql[$x]["champs"]["refliberation"] = sprintf('%d', $valeurnolib);
  291. $result = executerRequeteSql($tableausql[$x]);
  292. if (isset($result)) {
  293. $cpt_opr++;
  294. }
  295. }
  296. // Suivi de création (auteur, date, commande sql)
  297. unset($sqlparam);
  298. if (!$modemodif) {
  299. $sqlparam["type"] = "INSERT";
  300. $sqlparam["champs"]["refliberation"] = sprintf("%d", $valeurnolib);
  301. $sqlparam["champs"]["utilisateur"] = sprintf("'%s'", $_SESSION['nomreel']);
  302. } else {
  303. $sqlparam["type"] = "UPDATE";
  304. $sqlparam["where"][] = "refliberation = " . sprintf("%d", $valeurnolib);
  305. }
  306. $sqlparam["champs"]["date"] = "'" . date("Y-m-d H:i:s") . "'"; //sprintf("'%s'", $rldatecreation . " 00:00");
  307. $sqlparam["table"][] = "suivilib";
  308. $result = executerRequeteSql($sqlparam);
  309. }
  310. }
  311. } else {
  312. $opereussie = false;
  313. if ($ltypeopr == "") {
  314. $erreurid = "typeopr";
  315. } elseif ($ldatecreation == "") {
  316. $erreurid = "datecreation";
  317. } elseif ($lreference == "") {
  318. $erreurid = "choixemp";
  319. }
  320. }
  321. break;
  322. case "Annuler la libération":
  323. unset($opereussie);
  324. unset($erreurid);
  325. unset($modemodif);
  326. $modemodif = false;
  327. $opereussie = true;
  328. if ($ltypeopr != "" && $noliberation != "") {
  329. unset($sqlparam, $resultCheck);
  330. $sqlparam["table"][] = "liberations";
  331. $sqlparam["champs"][] = "refliberation";
  332. $sqlparam["where"][] = sprintf("demandeOriginale=%d", $noliberation);
  333. $resultCheck = executerRequeteSql($sqlparam);
  334. if (!isset($resultCheck)) {
  335. unset($sqlparam);
  336. $sqlparam["type"] = "INSERT";
  337. $sqlparam["mode"] = "direct";
  338. $sqla = "insert into liberations (refemploye, datedemande, typeoperation, demandeOriginale, archive) ";
  339. $sqlb = sprintf("SELECT refemploye, datedemande, 2, %d, 0 ", $noliberation);
  340. $sqlc = "from liberations ";
  341. $sqld = sprintf("where refliberation = %d", $noliberation);
  342. $sqlparam["sql"] = "$sqla $sqlb $sqlc $sqld";
  343. $result = executerRequeteSql($sqlparam);
  344. unset($sqlparam);
  345. $sqlparam["type"] = "INSERT";
  346. $sqlparam["mode"] = "direct";
  347. $sqle = "insert into ligneliberations (refliberation, dateliberation, refarticle, commentaire, duree, lieu, quipaye, datepaiement, paiement, archive) ";
  348. $sqlf = sprintf("SELECT %d, dateliberation, refarticle, commentaire, duree, lieu, quipaye, datepaiement, paiement, archive ", $result);
  349. $sqlg = "FROM ligneliberations ";
  350. $sqlh = sprintf("where refliberation = %d", $noliberation);
  351. $sqlparam["sql"] = "$sqle $sqlf $sqlg $sqlh";
  352. $result2 = executerRequeteSql($sqlparam);
  353. // Suivi de création (auteur, date, commande sql)
  354. unset($sqlparam);
  355. $sqlparam["type"] = "INSERT";
  356. $sqlparam["table"][] = "suivilib";
  357. $sqlparam["champs"]["refliberation"] = sprintf("%d", $result);
  358. $sqlparam["champs"]["utilisateur"] = sprintf("'%s'", $_SESSION['nomreel']);
  359. $sqlparam["champs"]["date"] = "'" . date("Y-m-d H:i:s") . "'";
  360. //$sqlparam["debug"] = 2;
  361. $result = executerRequeteSql($sqlparam);
  362. $module["msg"]["maj_ok"] = "Annulation de la demande réussie";
  363. $cpt_opr = 1;
  364. $nombreligne = 1;
  365. $opereussie = true;
  366. } else {
  367. //Pour simuler une erreur, requis plus bas
  368. $cpt_opr = 1;
  369. $nombreligne = 2;
  370. $erreurid = "annulationDemandee";
  371. $opereussie = true;
  372. }
  373. }
  374. break;
  375. }
  376. }
  377. if (isset($opereussie)) {
  378. if ($cpt_opr == $nombreligne) {
  379. $module["resultatSQL"] = true;
  380. if (!$modemodif) {
  381. $module["message"] = $module["msg"]["maj_ok"];
  382. } else {
  383. $module["message"] = $module["msg"]["modif_ok"];
  384. }
  385. } else {
  386. $module["resultatSQL"] = false;
  387. $module["message"] = $module["msg"][$erreurid];
  388. }
  389. }
  390. unset($periode);
  391. unset($datedebut, $datefin);
  392. $datedebut = getPeriodeCourante("début");
  393. $datefin = getPeriodeCourante("fin");
  394. $sqla = "(DATE_FORMAT(ligneliberations.dateliberation,\"%Y-%m-%d\") Between ";
  395. $sqlb = sprintf("\"%s\" And \"%s\") ", $datedebut, $datefin);
  396. $periode = "$sqla$sqlb";
  397. unset($sqlparam);
  398. $sqlparam["compte"] = "liberations.refliberation";
  399. $sqlparam["table"][] = "liberations";
  400. $sqlparam["table"][] = "ligneliberations";
  401. $sqlparam["table"][] = "employes";
  402. $sqlparam["table"][] = "articles";
  403. $sqlparam["table"][] = "duree";
  404. $sqlparam["table"][] = "suivilib";
  405. $sqlparam["join"][] = "ligneliberations.refliberation=liberations.refliberation";
  406. $sqlparam["join"][] = "liberations.refemploye=employes.refemploye";
  407. $sqlparam["join"][] = "ligneliberations.refarticle=articles.refarticle";
  408. $sqlparam["join"][] = "ligneliberations.duree=duree.refduree";
  409. $sqlparam["join"][] = array(0 => "left", 1 => "suivilib.refliberation=liberations.refliberation");
  410. $sqlparam["champs"][] = "employes.refemploye";
  411. $sqlparam["champs"][] = "concat(employes.nomfamille,\" \",employes.prenom) as nomemploye";
  412. $sqlparam["champs"][] = "liberations.typeoperation";
  413. $sqlparam["champs"][] = "unix_timestamp(ligneliberations.dateliberation) as dateliberation";
  414. $sqlparam["champs"][] = "articles.noarticle";
  415. $sqlparam["champs"][] = "ligneliberations.commentaire";
  416. $sqlparam["champs"][] = "duree.duree";
  417. $sqlparam["champs"][] = "ligneliberations.paiement";
  418. $sqlparam["champs"][] = "ligneliberations.quipaye";
  419. $sqlparam["champs"][] = "IF(ISNULL(ligneliberations.datepaiement),'',UNIX_TIMESTAMP(ligneliberations.datepaiement)) as datepaiement";
  420. $sqlparam["champs"][] = "ligneliberations.lieu";
  421. $sqlparam["champs"][] = "suivilib.utilisateur";
  422. $sqlparam["champs"][] = "liberations.refliberation";
  423. if (isset($ListeEmployeurs) && $ListeEmployeurs != "-1") {
  424. $sqlparam["where"][] = sprintf("employes.refemployeur=%d", $ListeEmployeurs);
  425. }
  426. if (isset($ListeEmployes) && $ListeEmployes != -1) {
  427. $sqlparam["where"][] = sprintf("employes.refemploye= %d", $ListeEmployes);
  428. }
  429. $sqlparam["limite"] = ($nombreaffiche * ($nopage - 1)) . "," . $nombreaffiche + 1;
  430. $sqlparam["ordre"][] = $rtri;
  431. if (isset($lreference) && !empty($lreference)) {
  432. $sqlparam["where"][] = "employes.refemploye=" . antiInjection($lreference);
  433. $module["recherche"]["lreference"] = $lreference;
  434. } elseif (isset($zonerecherche) && !empty($zonerecherche)) {
  435. $sqlparam["where"][] = "CONCAT(' ',employes.nomfamille, ' ',employes.prenom, articles.noarticle, duree.duree, ligneliberations.commentaire, ligneliberations.lieu, ligneliberations.datepaiement) like '%" . antiInjection($zonerecherche) . "%'";
  436. $module["recherche"]["zonerecherche"] = $zonerecherche;
  437. }
  438. //Si l'utilisateur fait partie d'un syndicat local
  439. if ($_SESSION['gestion_site'] == 'Non') {
  440. $sqlparam["where"][] = sprintf("employes.refemployeur=%d", $_SESSION['employeur']);
  441. }
  442. // Selon la période en cours
  443. $sqlparam["where"][] = $periode;
  444. if (isset($ListeEmployeurs) && $ListeEmployeurs != "-1") {
  445. $module["listeEmployeurs"] = $ListeEmployeurs;
  446. } else {
  447. $module["listeEmployeurs"] = null;
  448. }
  449. if (isset($ListeEmployes) && $ListeEmployes != -1) {
  450. $module["listeEmployes"] = $ListeEmployes;
  451. } else {
  452. $module["listeEmployes"] = null;
  453. }
  454. $result = executerRequeteSql($sqlparam);
  455. if (isset($result) && is_array($result) && count($result) > 0) {
  456. $module["compte"] = $result[0]["compte"];
  457. } else {
  458. $module["compte"] = 0;
  459. }
  460. $i = 1;
  461. print preparerModule($module);
  462. //Liste principale;
  463. if (isset($result) && is_array($result)) {
  464. if (count($result) > 0) {
  465. $i = ($nopage - 1) * $nombreaffiche + 1;
  466. foreach ($result as $clef => $champs) {
  467. if ($i > ($nopage * $nombreaffiche)) {
  468. continue;
  469. }
  470. $type = ($champs["typeoperation"] == 1) ? "Demande" : "Annulation";
  471. $lieu = $champs["lieu"];
  472. $quipaye = $champs["quipaye"];
  473. if ($quipaye == "0") {
  474. $quipaye = "Indéterminé";
  475. }
  476. $datepaiement = ($champs["datepaiement"] == '0') ? "Non-assign&eacute;" : date("Y-m-d", $champs["datepaiement"]);
  477. $couleur = ($champs["typeoperation"] == 1) ? "" : "color:#ff0000;";
  478. $style = 'border:1px solid #cfcfcf; overflow:hidden; white-space:nowrap;';
  479. print "<tr style='$couleur' $couleur>\n";
  480. print "<td style='$style'>$i</td>\n";
  481. print "<td style='$style'>" . ecrireTexteLimite($champs["utilisateur"], 100) . "</td>\n";
  482. print "<td style='$style'>" . ecrireTexteLimite($champs["nomemploye"], 150) . "</td>\n";
  483. print "<td style='$style' title=\"$type\">$type</td>\n";
  484. print "<td style='$style' title=\"" . date("Y-m-d", $champs["dateliberation"]) . "\">" . date("Y-m-d", $champs["dateliberation"]) . "</td>\n";
  485. print "<td style='$style' title=\"" . $champs["noarticle"] . "\">" . $champs["noarticle"] . "</td>\n";
  486. print "<td style='$style' title=\"" . $champs["commentaire"] . "\"><div style='overflow:hidden; white-space:nowrap; width:202px;'>" . htmlentities($champs["commentaire"], ENT_SUBSTITUTE, "UTF-8") . "</div></td>\n";
  487. print "<td style='$style' title=\"" . $champs["duree"] . "\">" . $champs["duree"] . "</td>\n";
  488. print "<td style='$style'>" . ecrireTexteLimite($lieu, 79) . "</td>\n";
  489. print "<td style='$style' title=\"$quipaye\">$quipaye</td>\n";
  490. if ($_SESSION["gestion_site"] == "Oui") {
  491. if ($champs["paiement"] == "0") {
  492. print "<td style='$style' title=\"Non-assign&eacute;\">Non-assign&eacute;</td>\n";
  493. print "<td style='$style' title=\"Non-assign&eacute;\">Non-assign&eacute;</td>\n";
  494. } elseif ($champs["paiement"] == "1") {
  495. print "<td style='$style' title=\"Non\">Non</td>\n";
  496. print "<td style='$style' title=\"&Agrave; venir\">&Agrave; venir</td>\n";
  497. } else {
  498. print "<td style='$style' title=\"Oui\">Oui</td>\n";
  499. print "<td style='$style' title=\"$datepaiement\">$datepaiement</td>\n";
  500. }
  501. }
  502. print "<td style='$style'><a href='#' onclick='ouvrefenetre(\"creation_liberation.php?lib=" . $champs["refliberation"] . "&sortie=ecran\");'><img alt=\"pdf\" src=\"images/pdficon_small.gif\"></a></td>\n";
  503. if ($_SESSION['gestion_site'] >= "Oui") {
  504. print "<td style='$style'>\n";
  505. print "<INPUT class='modifier' title='Modifier' id='Modifier' TYPE='button' VALUE='Modifier' onclick=\"modifieLiberation(" . $champs["refemploye"] . "," . $champs["refliberation"] . ",'" . $GLOBALS["jeton"] . "');\">\n";
  506. print "</td>\n";
  507. } else {
  508. print "<td style='$style'>&nbsp;</td>\n";
  509. }
  510. print "</tr>\n";
  511. $i++;
  512. }
  513. } else {
  514. print "<tr><td colspan='14' style='text-align:center;'><h1>Aucune donnée pour la période sélectionnée.</h1></td></tr>";
  515. }
  516. }
  517. print"</table>";
  518. // Pagination
  519. print "<table style='width:1200px; margin:auto;'>";
  520. print "<tr><td style='vertical-align:bottom;'>";
  521. print $seqpage;
  522. print "</td>";
  523. print "<td style='width:320px; text-align:right;'>";
  524. //Haut de page
  525. if ($nombreaffiche > 15) {
  526. print "<a href='#hautpage' title='Aller en haut de la page'>Haut de page</a>";
  527. print "<a name='baspage'>";
  528. }
  529. print "</td></tr>";
  530. print "</table>";
  531. print "<span id='simon'></span>";
  532. print fenetreModaleDebut($module["fenetre"], $SCRIPT_NAME, $jeton);
  533. unset($titretemp);
  534. if (isset($module["actionajoutbouton"])) {
  535. $titretemp = $module["actionajoutbouton"];
  536. }
  537. //TODO corriger le titre temporaire
  538. $titretemp = 'tyrtyrt';
  539. print fenetreModaleFin($titretemp);
  540. unset($cpt, $vide);
  541. $vide = true;
  542. ?>
  543. <script type="text/javascript">
  544. var nombre = 1;
  545. var reponseBoolDate;
  546. var mode_ajout;
  547. //Aperçu de la libération
  548. function apercuLiberation() {
  549. if (verifieinfo()) {
  550. var valeurRef = $("#lreference").val();
  551. ouvrefenetre2('creation_liberation_apercu.php?' + obtientValeurs(document.getElementById("frmModif")) + "&lreference=" + valeurRef, 500, 'apercu');
  552. }
  553. }
  554. // Crée la date de paiement
  555. function creeDatePaiement(id, id2) {
  556. if ($("#" + id).val() === "2") {
  557. document.getElementById(id2).removeAttribute("readonly");
  558. var dateactuelle = new Date();
  559. var jour = "";
  560. var mois = "";
  561. if (dateactuelle.getMonth() + 1 < 10)
  562. mois = "0" + (dateactuelle.getMonth() + 1);
  563. else
  564. mois = (dateactuelle.getMonth() + 1);
  565. if (dateactuelle.getDate() + 1 < 10)
  566. jour = "0" + (dateactuelle.getDate());
  567. else
  568. jour = (dateactuelle.getDate());
  569. $("#" + id2).val(dateactuelle.getFullYear() + "-" + mois + "-" + jour);
  570. } else {
  571. document.getElementById(id2).setAttribute("readonly", "readonly");
  572. document.getElementById(id2).value = "";
  573. }
  574. }
  575. //Ajoute la date du jour dans la case Date
  576. function metsDate(id) {
  577. if (verifieinfo()) {
  578. $("#" + id).val("<?php print date("Y-m-d"); ?>");
  579. $("#" + id).focus();
  580. }
  581. }
  582. // Affiche le calendrier et mets la date actuelle par défaut
  583. function calendrier(id) {
  584. if (verifieinfo()) {
  585. if ($("#" + id).val() === "" || $("#" + id).val() === undefined) {
  586. metsDate(id);
  587. } else {
  588. $("#" + id).focus();
  589. }
  590. }
  591. }
  592. //Vérifie si la date est déjà prise.
  593. function verifieDate(idm, id2) {
  594. //Vérification de la date si déjà prise pour la même employée.
  595. if (reponseBoolDate) {
  596. var typeopr;
  597. var notype;
  598. if ($("#opr1").attr('checked') || $("#opr").val() === 1) {
  599. typeopr = "demande";
  600. notype = 1;
  601. } else if ($("#opr2").attr('checked') || $("#opr").val() === 2) {
  602. typeopr = "annulation";
  603. notype = 2;
  604. }
  605. if ($("#lreference").val() !== "" && $("#" + idm).val() !== "") {
  606. var resultat = $.ajax({
  607. url: "obtdatelib.php",
  608. global: false,
  609. type: "POST",
  610. data: {
  611. prm1: escape($("#lreference").val()),
  612. prm2: escape($("#" + idm).val()),
  613. prm3: escape($("#" + id2).val()),
  614. prm4: notype
  615. },
  616. dataType: "html",
  617. async: false,
  618. error: function () {
  619. $("#" + id).datepicker("hide");
  620. },
  621. success: function () {
  622. $("#" + id).datepicker("hide");
  623. }
  624. }).responseText;
  625. if (resultat === "accepte") {
  626. if (nombre > 1) {
  627. for (x = 0; x < nombre; x++) {
  628. var nombrev = parseInt(id.substring(2));
  629. if (x !== nombrev) {
  630. if ($("#" + id).val() === $("#id" + x).val()) {
  631. resultat = "occupedate_" + typeopr;
  632. }
  633. }
  634. }
  635. }
  636. }
  637. if (resultat.indexOf("occupedatearticle") > -1) {
  638. var tablovide = resultat.split("_");
  639. var typeoprtemp = tablovide[1];
  640. jChoice("Cette date de libération (" + $("#" + idm).val() + ") avec l'article " + $("#" + id2 + " option:selected").text() + " pour ce membre (" + $("#zonerecherche2").val() + ") a déjà été demandée auparavant dans une " + typeoprtemp + "!\nVoulez-vous consulter le générateur de rapport?", 'Date déjà prise',
  641. function (r) {
  642. if (r === "goto") {
  643. window.location.href = "index2.php?page=generateur_rapports&jeton=<?php print $jeton; ?>";
  644. } else if (r === "cancel") {
  645. $("#" + id2).val(0);
  646. $("#" + idm).val("");
  647. $("#" + idm).focus();
  648. } else if (r) {
  649. $("#" + id2).next().focus();
  650. }
  651. });
  652. reponseBoolDate = false;
  653. } else if (resultat.indexOf('occupedate') > -1 && resultat.indexOf('article') === -1 && (resultat.indexOf("_demande") > -1 || resultat.indexOf("_annulation") > -1)) {
  654. var typeoprtemp = "";
  655. var tablovide = resultat.split("_");
  656. typeoprtemp = tablovide[1];
  657. jChoice("Cette date de libération (" + $("#" + idm).val() + ") pour ce membre (" + $("#zonerecherche2").val() + ") a déjà été demandée auparavant dans une " + typeoprtemp + "!\nVoulez-vous consulter le générateur de rapport?", 'Date déjà prise',
  658. function (r) {
  659. if (r === "goto") {
  660. window.location.href = "index2.php?page=generateur_rapports&jeton=<?php print $jeton; ?>";
  661. } else if (r === "cancel") {
  662. $("#" + idm).val("");
  663. $("#" + idm).focus();
  664. } else if (r) {
  665. $("#" + id2).focus();
  666. }
  667. });
  668. reponseBoolDate = false;
  669. } else if (resultat.indexOf('refus_annulation') > -1) {
  670. jAlert("Il n'y a pas de demande de libérations à annuler pour ce membre (" + $("#zonerecherche2").val() + ") à cette date!");
  671. $("#" + idm).val("");
  672. $("#" + idm).focus();
  673. reponseBoolDate = false;
  674. }
  675. }
  676. reponseBoolDate = false;
  677. }
  678. }
  679. //Est-ce que l'employé existe?
  680. function verifEmploye() {
  681. var reponseBoolEmp = 0;
  682. var reponseBoolEmp = $.ajax({
  683. url: "obtemploye2.php",
  684. global: false,
  685. type: "POST",
  686. data: {prm1: $("#lreference").val()},
  687. dataType: "html",
  688. async: false
  689. }).responseText;
  690. if (reponseBoolEmp === 0 || reponseBoolEmp === "0") {
  691. return false;
  692. }
  693. return true;
  694. }
  695. //Est-ce que les renseignements primaires sont remplit?
  696. function verifieinfo() {
  697. var idemp = $("#zonerecherche2").val();
  698. var idlref = $("#lreference").val();
  699. var iddat = $("#datecreation").val();
  700. if (!($("#opr1").attr('checked')) && !($("#opr2").attr('checked')) && $("#opr").val() === "") {
  701. jAlert("Veuillez choisir le type d'opération désirée.");
  702. $("#opr1").focus();
  703. return false;
  704. } else if (idemp === '' || idemp === "Recherche" || idlref === '') {
  705. jAlert("Veuillez choisir l'employé parmi les membres");
  706. $("#zonerecherche2").focus();
  707. return false;
  708. } else if (!isDateValide(iddat)) {
  709. jAlert("Veuillez choisir la date de création du document (Format : AAAA-MM-JJ)!");
  710. $("#datecreation").focus();
  711. return false;
  712. }
  713. return true;
  714. }
  715. //Vérifie si la touche Esc a été enfoncée.
  716. function verifieTouche(e) {
  717. if (e === null) { // ie
  718. keycode = event.keyCode;
  719. } else { // mozilla
  720. keycode = e.which;
  721. }
  722. if (keycode === 27) {
  723. setInvisible2('zonerecherche');
  724. }
  725. }
  726. //Vérifie la présente ligne de saisie
  727. function verifieLigne(nombre) {
  728. var nombre2 = nombre - 1;
  729. if ($("#id" + nombre2).val() === '') {
  730. jAlert("La date de libération est vide.");
  731. $("#id" + nombre2).focus();
  732. return false;
  733. } else if ($("#lart" + nombre2).val() === 0) {
  734. jAlert("Aucun article n'a été choisit.");
  735. $("#lart" + nombre2).focus();
  736. return false;
  737. } else if ($("#com" + nombre2).val() === '') {
  738. jAlert("Le commentaire est vide.");
  739. $("#com" + nombre2).focus();
  740. return false;
  741. } else if ($("#ldur" + nombre2).val() === 0) {
  742. jAlert("La durée n'a pas été choisie.");
  743. $("#ldur" + nombre2).focus();
  744. return false;
  745. } else if ($("#lie" + nombre2).val() === '') {
  746. jAlert("Le lieu est vide.");
  747. $("#lie" + nombre2).focus();
  748. return false;
  749. } else if ($("#las" + nombre2).val() === '') {
  750. jAlert("Aucun item de la liste «Assumer par» n'a été choisit.");
  751. $("#las" + nombre2).focus();
  752. return false;
  753. } else
  754. return true;
  755. }
  756. function MapValeur(idname) {
  757. var valeur = "";
  758. var x;
  759. for (x = 0; x < nombre; x++) {
  760. var obj = document.getElementById(idname + x);
  761. if (obj && obj.value !== null && obj.value !== undefined) {
  762. valeur = valeur + obj.value;
  763. if (x < nombre - 1) {
  764. valeur = valeur + "**";
  765. }
  766. }
  767. }
  768. return encodeURI(valeur);
  769. }
  770. //Si le formulaire est valide, on accepte et renvoie le résultat pour traitement.
  771. function ValidationFormulaire(boutontxt) {
  772. var result = true;
  773. if (!verifieinfo()) {
  774. result = false;
  775. }
  776. if (result) {
  777. for (x = 1; x <= nombre; x++) {
  778. if (!verifieLigne(x)) {
  779. result = false;
  780. x = nombre + 1;
  781. }
  782. }
  783. }
  784. if (result) {
  785. var reponseVerif;
  786. var notype;
  787. if ($("#opr1").attr('checked') || $("#opr").val() === 1) {
  788. notype = 1;
  789. } else if ($("#opr2").attr('checked') || $("#opr").val() === 2) {
  790. notype = 2;
  791. } else {
  792. notype = $("#opr").val();
  793. }
  794. var reponseVerif = $.trim($.ajax({
  795. url: "verifliberations.php",
  796. global: false,
  797. type: "POST",
  798. data: {
  799. bouton: "verification",
  800. lreference: $("#lreference").val(),
  801. ldatecreation: $("#datecreation").val(),
  802. ltypeopr: notype,
  803. datelib: MapValeur('id'),
  804. lart: MapValeur('lart'),
  805. lcomm: MapValeur('com'),
  806. ldur: MapValeur('ldur'),
  807. lieu: MapValeur('lie'),
  808. lassume: MapValeur('las'),
  809. ldetail: MapValeur('ligneliberation')
  810. },
  811. dataType: "html",
  812. async: false
  813. }).responseText);
  814. if (reponseVerif !== "ok") {
  815. jAlert(reponseVerif, "Erreur");
  816. result = false;
  817. }
  818. }
  819. if (result) {
  820. document.frmModif.action.value = boutontxt;
  821. document.frmModif.lreference.value = document.frmRecherche.lreference.value;
  822. document.frmModif.submit();
  823. }
  824. }
  825. //Si le formulaire est valide, on accepte et renvoie le résultat pour traitement.
  826. function AnnuleLiberation(boutontxt, noliberation) {
  827. var anonymousDeleteFunction = function (choice) {
  828. if (choice) {
  829. document.frmModif.action.value = boutontxt;
  830. document.frmModif.noliberation.value = noliberation;
  831. document.frmModif.lreference.value = document.frmRecherche.lreference.value;
  832. document.frmModif.submit();
  833. }
  834. };
  835. notif_confirm({
  836. 'message': "Voulez-vous vraiment annuler cette libération complètement?",
  837. 'textaccept': "Annulation de la demande de libération",
  838. 'textcancel': "Ne pas annuler cette demande",
  839. 'callback': anonymousDeleteFunction
  840. });
  841. }
  842. // Ajoute une ligne à la table
  843. function addRow(id) {
  844. var thisnombre = nombre;
  845. var v1 = verifieinfo();
  846. var v2 = verifieLigne(thisnombre);
  847. if (v1 && v2) {
  848. var tbody = document.getElementById(id).getElementsByTagName("TBODY")[0];
  849. var col1 = "<input name=\"datelib[]\" style='min-width:80px;' value=\"\" id=\"id" + thisnombre + "\" onfocus=\"verifieinfo();\" onblur=\"verifieDate('id" + thisnombre + "','lart" + thisnombre + "');\" >";
  850. var col1b = "<img alt=\"Calendrier\" src=\"images/calendar.gif\" class=\"calendrier\" id=\"butdate" + thisnombre + "\" onclick =\"calendrier('id" + thisnombre + "');\">";
  851. var col3 = "<input name=\"commentaire[]\" id=\"com" + thisnombre + "\" value=\"\">";
  852. var col5 = "<input name=\"lieu[]\" id=\"lie" + thisnombre + "\" value=\"\">";
  853. var col6 = "<select NAME=\"lassumerpar[]\" id=\"las" + thisnombre + "\"><option>--------</option><option>Syndicat</option><option>Employeur</option></select>";
  854. var row = document.createElement("TR");
  855. row.id = "ligne" + thisnombre + "";
  856. var td1 = document.createElement("TD");
  857. td1.className = "liberationsdetail";
  858. td1.innerHTML = col1 + col1b; //+col1c;
  859. var td2 = document.createElement("TD");
  860. td2.className = "liberationsdetail";
  861. var obj2 = document.getElementById("lart0").cloneNode(true);
  862. obj2.id = "lart" + thisnombre + "";
  863. td2.appendChild(obj2);
  864. var td3 = document.createElement("TD");
  865. td3.className = "liberationsdetail";
  866. td3.innerHTML = col3;
  867. var td4 = document.createElement("TD");
  868. td4.className = "liberationsdetail";
  869. var obj4 = document.getElementById("ldur0").cloneNode(true);
  870. obj4.id = "ldur" + thisnombre + "";
  871. td4.appendChild(obj4);
  872. var td5 = document.createElement("TD");
  873. td5.className = "liberationsdetail";
  874. td5.innerHTML = col5;
  875. var td6 = document.createElement("TD");
  876. td6.className = "liberationsdetail";
  877. td6.innerHTML = col6;
  878. var td7 = document.createElement("TD");
  879. td7.className = "liberationsdetail";
  880. var obj7 = document.getElementById("0").cloneNode(true);
  881. obj7.id = nombre;
  882. td7.appendChild(obj7);
  883. row.appendChild(td1);
  884. row.appendChild(td2);
  885. row.appendChild(td3);
  886. row.appendChild(td4);
  887. row.appendChild(td5);
  888. row.appendChild(td6);
  889. <?php
  890. if ($_SESSION["gestion_site"] == "Oui") {
  891. ?>
  892. if (mode_ajout === 0) {
  893. var col8 = "<select NAME=\"lpaiement[]\" id=\"lpa" + thisnombre + "\" onchange=\"creeDatePaiement('lpa'+nombre,'datepaiement" + thisnombre + "');\">";
  894. var col8a = "<option value=\"0\">--------</option><option value=\"1\">Non</option><option value=\"2\">Oui</option>";
  895. var col9 = "<input name=\"datepaiement[]\" id=\"datepaiement" + thisnombre + "\" size=\"10\" maxlength=\"10\" type=\"text\" readonly=\"readonly\" value=\"\">";
  896. var td8 = document.createElement("TD");
  897. td8.className = "liberationsdetail";
  898. td8.innerHTML = col8 + col8a;
  899. var td9 = document.createElement("TD");
  900. td9.innerHTML = col9;
  901. td9.className = "liberationsdetail";
  902. row.appendChild(td8);
  903. row.appendChild(td9);
  904. }
  905. <?php
  906. }
  907. ?>
  908. row.appendChild(td7);
  909. tbody.appendChild(row);
  910. $(document).ready(function () {
  911. $("#id" + thisnombre).datepicker({
  912. autoSize: true,
  913. onSelect: function () {
  914. reponseBoolDate = true;
  915. verifieDate('id' + thisnombre, 'lart' + thisnombre);
  916. }
  917. });
  918. $("#id" + thisnombre).datepicker("hide");
  919. nombre++;
  920. });
  921. }
  922. }
  923. //Supprime une ligne à la table.
  924. function supprimeLigne(r) {
  925. var i = r.parentNode.parentNode.rowIndex;
  926. if (i > 1) {
  927. document.getElementById('liberations').deleteRow(i);
  928. nombre--;
  929. } else {
  930. $('#id0').val("");
  931. $('#lart0').val(0);
  932. $('#com0').val("");
  933. $('#ldur0').val(0);
  934. $('#lie0').val("");
  935. $('#las0').val(0);
  936. }
  937. }
  938. //On efface tout le formulaire
  939. function recommencer() {
  940. $("#zoneresultats2").slideUp();
  941. $("#voirsolde").slideUp();
  942. $("#datecreation").datepicker("hide");
  943. $("#id0").datepicker("hide");
  944. var frmModif = document.frmModif;
  945. frmModif.reset();
  946. var nbl = document.getElementById('liberations').rows.length;
  947. for (x = 1; x < nbl - 2; x++) {
  948. var nbl2 = document.getElementById('liberations').rows.length;
  949. document.getElementById('liberations').deleteRow(nbl2);
  950. }
  951. }
  952. function voirsolde() {
  953. var idemp = $("#zonerecherche2").val();
  954. var idlref = $('#lreference').val();
  955. if (idemp === '' || idemp === "Recherche" || idlref === '') {
  956. $("#zonerecherche2").focus();
  957. jAlert("Veuillez choisir l'employé parmi les membres");
  958. return false;
  959. } else {
  960. var reponseVerif = $.trim($.ajax({
  961. url: "obtsolde.php",
  962. global: false,
  963. type: "GET",
  964. data: {
  965. prm1: idlref,
  966. jeton: "<?php print $GLOBALS["jeton"]; ?>"
  967. },
  968. dataType: "html",
  969. async: false
  970. }).responseText);
  971. console.log(reponseVerif);
  972. $("#voirsolde").html(reponseVerif).slideDown();
  973. }
  974. }
  975. function fermersolde() {
  976. $("#voirsolde").slideUp();
  977. }
  978. //Traiter toutes les lignes modifiées pour sauvegarde
  979. function traiter(id) {
  980. if (typeof (document.fermeture.crochet) !== "undefined") {
  981. var source = document.getElementById("Crochet" + id + "");
  982. if (source.checked) {
  983. var champs2 = document.getElementById("TRCrochet" + id + "");
  984. var prm2 = obtientValeurs(champs2);
  985. traiterlignePaiement(id, prm2);
  986. }
  987. }
  988. }
  989. function selectedB(choice, choice2) {
  990. var cible = document.getElementById("lemploye");
  991. cible.value = choice;
  992. var cible2 = document.getElementById('lreference');
  993. cible2.value = choice2;
  994. }
  995. // Charger le formulaire de modification Ajax
  996. function modifieLiberation(noemploye, nolib, jeton) {
  997. $(document).ready(function () {
  998. changetitre(2);
  999. $("#lreference").val(noemploye);
  1000. mode_ajout = 0;
  1001. var reponseVerif = $.trim($.ajax({
  1002. url: "obtformlib.php",
  1003. global: false,
  1004. type: "POST",
  1005. data: {
  1006. prm1: nolib,
  1007. jeton: jeton
  1008. },
  1009. dataType: "html",
  1010. async: false
  1011. }).responseText);
  1012. $("#fenetremodale").html(reponseVerif);
  1013. var oRows = document.getElementById('liberations').getElementsByTagName('tr');
  1014. nombre = oRows.length - 1;
  1015. overlay();
  1016. });
  1017. }
  1018. $(document).ready(function () {
  1019. //Charger le formulaire Ajax avant tout le monde
  1020. $("#fenetremodale").load("obtformlib.php?prm1=-1");
  1021. // Sur le clic du bouton d'ajout d'une libération,
  1022. // réinitialisation de tous les champs du formulaire.
  1023. $("#action_ajout").click(function () {
  1024. mode_ajout = 1;
  1025. $("#fenetremodale").load("obtformlib.php", {prm1: -1, jeton: "<?php print $GLOBALS["jeton"]; ?>"});
  1026. //recommencer();
  1027. });
  1028. $("#frmModif").validate();
  1029. $("voirsolde").blur(function () {
  1030. $("#voirsolde").slideUp();
  1031. });
  1032. });</script>
  1033. <?PHP
  1034. if (isset($action2) && $action2 == "Afficher") {
  1035. ?>
  1036. <script type="text/javascript">
  1037. $(document).ready(function () {
  1038. changetitre(2);
  1039. overlay();
  1040. });
  1041. </script>
  1042. <?php
  1043. }