liste_employes.inc.php 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661
  1. <?php
  2. // --------
  3. // Sécurité
  4. // --------
  5. if (isValidConstant() != 1) {
  6. fermeSessionUtilisateur();
  7. }
  8. // ----------------------
  9. // Droit de l'utilisateur
  10. // ----------------------
  11. if ($_SESSION['gestion_site'] < 'Oui') {
  12. exit;
  13. }
  14. function reset_champs() {
  15. global $lnom;
  16. global $lprenom;
  17. global $ladresse1;
  18. global $ladresse2;
  19. global $lville;
  20. global $lcodepostal;
  21. global $ltelephone;
  22. global $lnumero;
  23. global $lnoemploye;
  24. global $lmembreca;
  25. global $lpresentation;
  26. global $lnoemployeur;
  27. global $lemail;
  28. unset($lnom);
  29. unset($lprenom);
  30. unset($ladresse1);
  31. unset($ladresse2);
  32. unset($lville);
  33. unset($lcodepostal);
  34. unset($ltelephone);
  35. unset($lnumero);
  36. unset($lnoemploye);
  37. unset($lmembreca);
  38. unset($lpresentation);
  39. unset($lnoemployeur);
  40. unset($lemail);
  41. $lnom = "";
  42. $lprenom = "";
  43. $ladresse1 = "";
  44. $ladresse2 = "";
  45. $lville = "";
  46. $lcodepostal = "";
  47. $ltelephone = "";
  48. $lnumero = "";
  49. $lnoemploye = "";
  50. $lmembreca = "";
  51. $lpresentation = "";
  52. $lnoemployeur = "";
  53. $lemail = "";
  54. }
  55. // ------------------------------
  56. // Caractéristiques du module
  57. // ------------------------------
  58. unset($module);
  59. $module = array(
  60. "titre" => "Gestion des employés",
  61. "urldest" => $SCRIPT_NAME . "?page=liste_employes",
  62. "recherche" => array("engin" => true, "filtre_employeur_employe" => false),
  63. "jeton" => $jeton,
  64. "opradmin" => "Ajouter un employé",
  65. "fenetre" => array(
  66. "nom" => "liste_employes",
  67. "titre" => "titre",
  68. "largeur" => "850",
  69. "hauteur" => "545",
  70. "champs" => array("lnoemploye", "lpresentation", "lnom", "lprenom", "ladresse1", "ladresse2", "lville", "lcodepostal", "ltelephone", "lemail", "lmembreca", "lnolieutravail", "lnumero"),
  71. "validation" => true
  72. ),
  73. "msgajoutbouton" => "Ajout de la fiche d'employé",
  74. "actionajoutbouton" => "Ajouter la fiche de l'employé",
  75. "msgmodifbouton" => "Modification de la fiche de l'employé",
  76. "actionmodifbouton" => "Modifier la fiche de l'employé",
  77. "nombre_a_afficher" => array(
  78. 0 => array("refid" => 15, "valeur" => 15),
  79. 1 => array("refid" => 30, "valeur" => 30),
  80. 2 => array("refid" => 45, "valeur" => 45),
  81. 3 => array("refid" => 60, "valeur" => 60),
  82. 4 => array("refid" => 120, "valeur" => 120)
  83. ),
  84. "lientri" => true,
  85. "entete" => array(
  86. 1 => array("Nom" => "employes.nomfamille", "largeur" => "85px"),
  87. 2 => array("Prénom" => "employes.prenom", "largeur" => "95px"),
  88. 3 => array("# Emp" => "employes.numemploye", "largeur" => "75px"),
  89. 4 => array("Adresse" => "(employes.adresse1+employes.adresse2+employes.ville+employes.codepostal)", "largeur" => "280px"),
  90. 5 => array("Employeur" => "employeurs.refemployeur", "largeur" => "135px"),
  91. 6 => array("Lieu travail" => "employeurs.reflieutravail", "largeur" => "135px"),
  92. 7 => array("Téléphone" => "employes.numtel", "largeur" => "105px"),
  93. 8 => array("Adresse @" => "employes.email", "largeur" => "180px"),
  94. 9 => array("CA" => "employes.membreca", "largeur" => "40px")
  95. ),
  96. "nbaction" => 2,
  97. "msg" => array(
  98. "maj_ajout_ok" => "Ajout de la fiche de l'employé effectuée avec succès.",
  99. "maj_ok" => "Mise à jour de la fiche de l'employé effectuée avec succès.",
  100. "maj_echec" => "L'opération de mise à jour de la fiche de l'employé a échouée",
  101. "rech_ok" => "La recherche a été réussie.",
  102. "rech_echec" => "La recherche a été infructueuse ou a échouée.",
  103. "suppr_ok" => "L'opération de suppression a réussie.",
  104. "suppr_echec" => "L'opération de suppression a échouée.",
  105. "employeur_invalide" => "Employeur introuvable ou inconnu.",
  106. "lieutravail_invalide" => "Lieu de travail introuvable ou inconnu."
  107. )
  108. );
  109. // ------------------
  110. // Requête sur le tri
  111. // ------------------
  112. $rtri = antiInjection($module["entete"][$tri][key($module["entete"][$tri])] . " " . $dir);
  113. // -----------------------
  114. // Opération de sauvegarde
  115. // -----------------------
  116. if (isset($action)) {
  117. $msg = "";
  118. $action = stripslashes(antiInjection($action));
  119. if ($action == "Modifier la fiche de l'employé" || $action == "Ajouter la fiche de l'employé") {
  120. $lnoemploye = antiInjection($lnoemploye);
  121. $lnom = antiInjection($lnom);
  122. $lprenom = antiInjection($lprenom);
  123. $ladresse1 = antiInjection($ladresse1);
  124. $ladresse2 = antiInjection($ladresse2);
  125. $lville = antiInjection($lville);
  126. $lcodepostal = antiInjection($lcodepostal);
  127. $ltelephone = antiInjection($ltelephone);
  128. $lnumero = antiInjection($lnumero);
  129. if (!isset($lmembreca)) {
  130. $lmembreca = 0;
  131. }
  132. $lmembreca = antiInjection(sprintf("%d", $lmembreca));
  133. $lpresentation = antiInjection($lpresentation);
  134. $lnolieutravail = antiInjection(sprintf("%d", $lnolieutravail));
  135. $lemail = antiInjection($lemail);
  136. //Validations d'usage
  137. if (empty($lnom)) {
  138. $module["resultatSQL"] = false;
  139. $module["message"] = "Le nom de famille de l'employé est requis";
  140. $error = true;
  141. } else if (empty($lprenom)) {
  142. $module["resultatSQL"] = false;
  143. $module["message"] = "Le prénom de l'employé est requis.";
  144. $error = true;
  145. } else if (empty($ladresse)) {
  146. $module["resultatSQL"] = false;
  147. $module["message"] = "L'adresse de l'employé est requis.";
  148. $error = true;
  149. } else if (empty($lville)) {
  150. $module["resultatSQL"] = false;
  151. $module["message"] = "Le nom de la ville est requis.";
  152. $error = true;
  153. } else if (!isValidCodePostal($lcodepostal)) {
  154. $module["resultatSQL"] = false;
  155. $module["message"] = "Le code postal est requis et doit être valide.";
  156. $error = true;
  157. } else if (!isValidPhone($ltelephone)) {
  158. $module["resultatSQL"] = false;
  159. $module["message"] = "Le numéro de téléphone est requis et doit être valide.";
  160. $error = true;
  161. } else if ($lnumero === "" || intval($lnumero) < 0) {
  162. $module["resultatSQL"] = false;
  163. $module["message"] = "Le numéro d'employé st requis et doit être valide.";
  164. $error = true;
  165. } else if (!filter_var($lemail, FILTER_VALIDATE_EMAIL)) {
  166. $module["resultatSQL"] = false;
  167. $module["message"] = "L'adresse courriel est requise et doit être valide.";
  168. $error = true;
  169. }
  170. //Cueillette de données du module
  171. unset($sqlparam, $result);
  172. $sqlparam["table"][] = "employeurs";
  173. $sqlparam["table"][] = "lieuxtravail";
  174. $sqlparam["join"][] = "employeurs.refemployeur = lieuxtravail.refemployeur";
  175. $sqlparam["where"][] = "lieuxtravail.reflieutravail=" . $lnolieutravail;
  176. $sqlparam["champs"][] = "employeurs.nomemployeur";
  177. $sqlparam["champs"][] = "employeurs.refemployeur";
  178. $result = executerRequeteSql($sqlparam);
  179. if (!isset($result) || count($result) == 0) {
  180. $module["resultatSQL"] = false;
  181. $module["message"] = $module["msg"]["lieutravail_invalide"];
  182. } else {
  183. $lnoemployeur = $result[0]["refemployeur"];
  184. unset($sqlparam);
  185. if ($action == "Modifier la fiche de l'employé") {
  186. $sqlparam["type"] = "UPDATE";
  187. $sqlparam["where"][] = sprintf("refemploye = %d", $lnoemploye);
  188. } else {
  189. $sqlparam["type"] = "INSERT";
  190. $sqlparam["champs"]["refemploye"] = sprintf("%d", $lnoemploye);
  191. }
  192. $sqlparam["table"][] = "employes";
  193. $sqlparam["champs"]["nomfamille"] = "'" . sprintf("%s", $lnom) . "'";
  194. $sqlparam["champs"]["prenom"] = "'" . sprintf("%s", $lprenom) . "'";
  195. $sqlparam["champs"]["numemploye"] = "'" . sprintf("%s", $lnumero) . "'";
  196. $sqlparam["champs"]["adresse1"] = "'" . sprintf("%s", $ladresse1) . "'";
  197. $sqlparam["champs"]["adresse2"] = "'" . sprintf("%s", $ladresse2) . "'";
  198. $sqlparam["champs"]["ville"] = "'" . sprintf("%s", $lville) . "'";
  199. $sqlparam["champs"]["codepostal"] = "'" . sprintf("%s", $lcodepostal) . "'";
  200. $sqlparam["champs"]["numtel"] = "'" . sprintf("%s", $ltelephone) . "'";
  201. $sqlparam["champs"]["refemployeur"] = sprintf("%d", $lnoemployeur);
  202. $sqlparam["champs"]["membreca"] = sprintf("%d", $lmembreca);
  203. $sqlparam["champs"]["presentation"] = "'" . sprintf("%s", $lpresentation) . "'";
  204. $sqlparam["champs"]["reflieutravail"] = sprintf("%d", $lnolieutravail);
  205. $sqlparam["champs"]["email"] = "'" . sprintf("%s", $lemail) . "'";
  206. $result = executerRequeteSql($sqlparam);
  207. if (isset($result)) {
  208. reset_champs();
  209. //Mettre à -1 pour effacer son ID.
  210. $lnoemploye = -1;
  211. $module["resultatSQL"] = true;
  212. if ($action == "Modifier la fiche de l'employé") {
  213. $module["message"] = $module["msg"]["maj_ok"];
  214. } else {
  215. $module["message"] = $module["msg"]["maj_ajout_ok"];
  216. }
  217. } else {
  218. $module["resultatSQL"] = false;
  219. $module["message"] = $module["msg"]["maj_echec"];
  220. }
  221. }
  222. } elseif ($action == "Recherche") {
  223. unset($sqlparam, $result);
  224. unset($sqlparam);
  225. $sqlparam["table"][] = "employes";
  226. $sqlparam["table"][] = "employeurs";
  227. $sqlparam["join"][] = "employes.refemployeur = employeurs.refemployeur";
  228. $sqlparam["champs"][] = "employes.nomfamille";
  229. $sqlparam["champs"][] = "employes.prenom";
  230. $sqlparam["champs"][] = "employes.numemploye";
  231. $sqlparam["champs"][] = "employes.adresse1";
  232. $sqlparam["champs"][] = "employes.adresse2";
  233. $sqlparam["champs"][] = "employes.ville";
  234. $sqlparam["champs"][] = "employes.codepostal";
  235. $sqlparam["champs"][] = "employes.refemployeur";
  236. $sqlparam["champs"][] = "employes.membreca";
  237. $sqlparam["champs"][] = "employes.refemploye";
  238. $sqlparam["champs"][] = "employeurs.nomemployeur";
  239. $sqlparam["champs"][] = "employes.numtel";
  240. $sqlparam["champs"][] = "employes.presentation";
  241. $sqlparam["champs"][] = "employes.email";
  242. if (isset($lreference) && !empty($lreference)) {
  243. $sqlparam["where"][] = "employes.refemploye=" . antiInjection($lreference);
  244. $result = executerRequeteSql($sqlparam);
  245. if (isset($result) && is_array($result)) {
  246. if (count($result) > 0) {
  247. unset($recherchereussie);
  248. $recherchereussie = true;
  249. $lnom = antiInjection($result[0]["nomfamille"]);
  250. $lprenom = antiInjection($result[0]["prenom"]);
  251. $ladresse1 = antiInjection($result[0]["adresse1"]);
  252. $ladresse2 = antiInjection($result[0]["adresse2"]);
  253. $lville = antiInjection($result[0]["ville"]);
  254. $lcodepostal = antiInjection($result[0]["codepostal"]);
  255. $ltelephone = antiInjection($result[0]["numtel"]);
  256. $lnumero = antiInjection($result[0]["numemploye"]);
  257. $lnoemploye = antiInjection($result[0]["refemploye"]);
  258. $lmembreca = antiInjection($result[0]["membreca"]);
  259. $lpresentation = antiInjection($result[0]["presentation"]);
  260. $lnoemployeur = antiInjection($result[0]["refemployeur"]);
  261. $lemail = antiInjection($result[0]["email"]);
  262. } else {
  263. $module["resultatSQL"] = true;
  264. $module["message"] = $module["msg"]["rech_echec"];
  265. }
  266. }
  267. }
  268. } elseif ($action == "Supprimer") {
  269. unset($sqlparam);
  270. $sqlparam["type"] = "UPDATE";
  271. $sqlparam["table"][] = "employes";
  272. $sqlparam["where"][] = "employes.refemploye=" . antiInjection($lnoemploye);
  273. $sqlparam["champs"]["archive"] = 1;
  274. $result = executerRequeteSql($sqlparam);
  275. if (isset($result) && is_array($result)) {
  276. if (count($result) > 0) {
  277. $module["resultatSQL"] = true;
  278. $module["message"] = $module["msg"]["suppr_ok"];
  279. } else {
  280. $module["resultatSQL"] = true;
  281. $module["message"] = $module["msg"]["suppr_echec"];
  282. }
  283. reset_champs();
  284. }
  285. }
  286. } else {
  287. reset_champs();
  288. }
  289. if (!empty($action) && $action != "Recherche") {
  290. }
  291. $i = 0;
  292. unset($sqlparam);
  293. $sqlparam["compte"] = "employes.refemploye";
  294. $sqlparam["table"][] = "employes";
  295. $sqlparam["table"][] = "lieuxtravail";
  296. $sqlparam["table"][] = "employeurs";
  297. $sqlparam["join"][] = "lieuxtravail.reflieutravail = employes.reflieutravail";
  298. $sqlparam["join"][] = "employeurs.refemployeur = lieuxtravail.refemployeur";
  299. $sqlparam["champs"][] = "employes.refemploye";
  300. $sqlparam["champs"][] = "employes.nomfamille";
  301. $sqlparam["champs"][] = "employes.prenom";
  302. $sqlparam["champs"][] = "employes.numemploye";
  303. $sqlparam["champs"][] = "employes.adresse1";
  304. $sqlparam["champs"][] = "employes.adresse2";
  305. $sqlparam["champs"][] = "employes.ville";
  306. $sqlparam["champs"][] = "employes.codepostal";
  307. $sqlparam["champs"][] = "employes.numtel";
  308. $sqlparam["champs"][] = "employes.refemployeur";
  309. $sqlparam["champs"][] = "employes.membreca";
  310. $sqlparam["champs"][] = "employes.refemploye";
  311. $sqlparam["champs"][] = "employeurs.nomemployeur";
  312. $sqlparam["champs"][] = "employes.presentation";
  313. $sqlparam["champs"][] = "employes.reflieutravail";
  314. $sqlparam["champs"][] = "lieuxtravail.nomlieutravail";
  315. $sqlparam["champs"][] = "employes.email";
  316. $sqlparam["limite"] = ($nombreaffiche * ($nopage - 1)) . "," . $nombreaffiche;
  317. $sqlparam["ordre"][] = $rtri;
  318. if (isset($ListeEmployeurs) && !empty($ListeEmployeurs) && $ListeEmployeurs != "-1") {
  319. $sqlparam["where"][] = sprintf("employes.refemployeur=%d", $ListeEmployeurs);
  320. }
  321. if (isset($ListeEmployes) && $ListeEmployes != "-1" && $ListeEmployes != 0) {
  322. $sqlparam["where"][] = sprintf("employes.refemploye= %d", $ListeEmployes);
  323. }
  324. unset($sqltemp);
  325. if (isset($lreference) && !empty($lreference)) {
  326. $sqltemp = "employes.refemploye=" . antiInjection($lreference);
  327. $sqlparam["where"][] = $sqltemp;
  328. $module["recherche"]["lreference"] = $lreference;
  329. } elseif (isset($zonerecherche) && !empty($zonerecherche)) {
  330. $sqltemp = "CONCAT(employes.nomfamille, ' ',employes.prenom, ' ',employes.numemploye, ";
  331. $sqltemp .= "' ',employes.adresse1, ' ',employes.adresse2, ' ',employes.ville, ' ',employes.numtel) ";
  332. $sqltemp .= "like '%" . antiInjection($zonerecherche) . "%'";
  333. $sqlparam["where"][] = $sqltemp;
  334. $module["recherche"]["zonerecherche"] = $zonerecherche;
  335. }
  336. $sqlparam["where"][] = "employes.archive=0";
  337. $result = executerRequeteSql($sqlparam);
  338. if (isset($result) && is_array($result) && count($result) > 0) {
  339. $module["compte"] = $result[0]["compte"];
  340. }
  341. // Afficher le module
  342. print preparerModule($module);
  343. //Liste principale;
  344. if (isset($result) && is_array($result)) {
  345. if (count($result) > 0) {
  346. $i = ($nopage - 1) * $nombreaffiche + 1;
  347. unset($style);
  348. $style = "border:1px solid #cfcfcf; font-family:arial, helvetica, sans-serif; font-size:9pt; ";
  349. $style .= "margin-left:5px; margin-right:5px; overflow:hidden;";
  350. foreach ($result as $clef => $champs) {
  351. $adresse1 = ($champs["adresse2"] != "") ? $champs["adresse2"] : "";
  352. $telephone = ($champs["numtel"] != "") ? $champs["numtel"] : "&nbsp";
  353. $membreca = ($champs["membreca"] == -1) ? "Oui" : "Non";
  354. $champs2a = (empty($champs["numemploye"]) ? "&nbsp;" : $champs["numemploye"]);
  355. $email = (empty($champs["email"]) ? "" : $champs["email"]);
  356. print stripslashes("<tr style='height:35px; vertical-align:middle;'>\n");
  357. print "<td style='$style'>$i</td>\n";
  358. print "<td class='detail_liste' style='width:max-width:" . $module["entete"][1]["largeur"] . "; width:" . $module["entete"][1]["largeur"] . "px;'>" . htmlentities($champs["nomfamille"], ENT_SUBSTITUTE, "UTF-8") . "</td>\n";
  359. print "<td class='detail_liste' style='width: max-width:" . $module["entete"][2]["largeur"] . "; width:" . $module["entete"][2]["largeur"] . "px;'>" . htmlentities($champs["prenom"], ENT_SUBSTITUTE, "UTF-8") . "</td>\n";
  360. print "<td class='detail_liste' style='max-width:" . $module["entete"][3]["largeur"] . "; width:" . $module["entete"][3]["largeur"] . "px;'>" . $champs2a . "</td>\n";
  361. print "<td class='detail_liste' style='max-width:" . $module["entete"][4]["largeur"] . "; width:" . $module["entete"][4]["largeur"] . "px;'>" . ecrireTexteLimite($champs["adresse1"] . $adresse1 . ", " . $champs["ville"] . " " . $champs["codepostal"], 280) . "</td>\n";
  362. print "<td class='detail_liste' style='max-width:" . $module["entete"][5]["largeur"] . "; width:" . $module["entete"][5]["largeur"] . "px;'>" . ecrireTexteLimite($champs["nomemployeur"], 135) . "</td>\n";
  363. print "<td class='detail_liste' style='max-width:" . $module["entete"][6]["largeur"] . "; width:" . $module["entete"][5]["largeur"] . "px;'>" . ecrireTexteLimite($champs["nomlieutravail"], 135) . "</td>\n";
  364. print "<td class='detail_liste' style='max-width:" . $module["entete"][7]["largeur"] . "; width:" . $module["entete"][6]["largeur"] . "px;'>" . $telephone . "</td>\n";
  365. print "<td class='detail_liste' style='max-width:" . $module["entete"][8]["largeur"] . "; width:" . $module["entete"][7]["largeur"] . "px;'>" . ecrireMailToLimite($email, 180) . "</td>\n";
  366. print "<td class='detail_liste' style='max-width:" . $module["entete"][9]["largeur"] . "; width:" . $module["entete"][8]["largeur"] . "px;'>" . $membreca . "</td>";
  367. print "<td class='detail_liste' style='text-align:center;'>";
  368. print "<form action='$SCRIPT_NAME?page=liste_employes' name='sous_formulaire$i' method='post' onsubmit='return confirme_suppr(this);'>";
  369. print prepareBoutonModifier(array($champs["refemploye"], $champs["presentation"], $champs["nomfamille"], $champs["prenom"], addslashes($champs["adresse1"]), $adresse1, $champs["ville"], $champs["codepostal"], $champs["numtel"], $champs["email"], sprintf("%d", $champs["membreca"]), sprintf("%d", $champs["reflieutravail"]), $champs["numemploye"]));
  370. print "<INPUT class='supprimer' title='Supprimer' style='width:24px;' TYPE='submit' VALUE='Supprimer' name='action'>";
  371. print "<input type='hidden' name='lnoemploye' value='" . $champs["refemploye"] . "'>";
  372. print "<input type='hidden' name='jeton' value='$jeton'>";
  373. print "</form>";
  374. print "</td>\n";
  375. print "</tr>\n";
  376. $i++;
  377. }
  378. }
  379. }
  380. print"</table>";
  381. // Pagination
  382. print "<table style='width:968px; margin:auto;'>";
  383. print "<tr><td style='vertical-align:bottom;'>";
  384. print $seqpage;
  385. print "</td>";
  386. print "<td style='text-align:right;'>";
  387. //Haut de page
  388. if ($nombreaffiche > 15) {
  389. print "<a name='baspage' href='#hautpage' title='Aller en haut de la page'>Haut de page</a>";
  390. }
  391. print "</td></tr>";
  392. print "</table>";
  393. // Validation JavaScript
  394. ?>
  395. <script type='text/javascript'>
  396. function ValidationFormulaire() {
  397. var msgPres = "Présentation requise.";
  398. var msgNom = "Nom de famille requis.";
  399. var msgPrenom = "Prénom requis.";
  400. var msgAdresse = "Adresse requise.";
  401. var msgVille = "Ville requise.";
  402. var msgCode = "Code postal requis.";
  403. var msgTel1 = "Numéro de téléphone requis et valide.";
  404. var msgEmail = "Adresse de courriel valide requise";
  405. var msgMembreca = "Est-ce que l'employé est un membre du C.A.?";
  406. var msgLieutravail = "Lieu de travail requis.";
  407. var msgNumero = "Numéro d'employé requis.";
  408. var frm = document.frmModif;
  409. var plpres = frm.lpresentation.selectedIndex;
  410. var plnom = frm.lnom.value;
  411. var plprenom = frm.lprenom.value;
  412. var pladresse1 = frm.ladresse1.value;
  413. var plcodepostal = frm.lcodepostal.value.trim();
  414. var plville = frm.lville.value;
  415. var pltel = frm.ltelephone.value;
  416. var pemail = frm.lemail.value;
  417. var pmembreca = frm.lmembreca.slectedIndex;
  418. var plnolieutravail = frm.lnolieutravail.selectedIndex;
  419. var plnumero = frm.lnumero.value;
  420. if (plpres === 0) {
  421. jAlert(msgPres);
  422. frm.lpresentation.focus();
  423. return false;
  424. } else if (plnom === "") {
  425. jAlert(msgNom);
  426. frm.lnom.focus();
  427. return false;
  428. } else if (plprenom === "") {
  429. jAlert(msgPrenom);
  430. frm.lprenom.focus();
  431. return false;
  432. } else if (pladresse1 === "") {
  433. jAlert(msgAdresse);
  434. frm.ladresse1.focus();
  435. return false;
  436. } else if (plville === "") {
  437. jAlert(msgVille);
  438. frm.lville.focus();
  439. return false;
  440. } else if (!isPostCode(plcodepostal)) {
  441. jAlert(msgCode);
  442. frm.lcodepostal.focus();
  443. return false;
  444. } else if (!isTelephone(pltel)) {
  445. jAlert(msgTel1);
  446. frm.ltelephone.focus();
  447. return false;
  448. } else if (!isCourrielValide(pemail)) {
  449. jAlert(msgEmail);
  450. frm.lemail.focus();
  451. return false;
  452. } else if (pmembreca === 0) {
  453. jAlert(msgMembreca);
  454. frm.lmembreca.focus();
  455. return false;
  456. } else if (plnolieutravail === 0) {
  457. jAlert(msgLieutravail);
  458. frm.lnolieutravail.focus();
  459. return false;
  460. } else if (plnumero === "") {
  461. jAlert(msgNumero);
  462. $("#lnumero").focus();
  463. return false;
  464. }
  465. return true;
  466. }
  467. // Confirmation de suppression
  468. function confirme_suppr(formulaire) {
  469. if (formulaire.action.value === "Supprimer") {
  470. return confirm("Voulez-vous vraiment désactiver cet employé?");
  471. } else {
  472. return true;
  473. }
  474. }
  475. function isBonEmployeur(employeurs) {
  476. let lieutravail = $("#lnolieutravail").val();
  477. return employeurs.refid === lieutravail;
  478. }
  479. //Affiche le nom de l'employeur lors de la sélection du lieux de travail
  480. function afficheNomEmployeur() {
  481. const tableauNomEmployeur = [
  482. <?PHP
  483. foreach (getLieuxTravail() as $clef => $employeur) {
  484. print "{ refid:\"" . $employeur["refid"] . "\", nom:\"" . $employeur["nomemployeur"] . "\"},\n";
  485. }
  486. ?>
  487. ];
  488. const nomEmployeur = tableauNomEmployeur.find(isBonEmployeur);
  489. $("#NomEmployeurFiche").html(" Employeur : " + nomEmployeur.nom);
  490. }
  491. // Mise en place des masques de saisie
  492. $(document).ready(function () {
  493. $("#ltelephone").mask("(999) 999-9999");
  494. $("#lcodepostal").mask("a9a 9a9");
  495. $("#frmModif").validate();
  496. });
  497. </script>
  498. <?php
  499. //Début de la fenêtre modale du formulaire de saisie
  500. print fenetreModaleDebut($module["fenetre"], $SCRIPT_NAME, $jeton);
  501. // Clef de l'enregistrement de la fiche de l'employé
  502. print"<input type='hidden' id='lnoemploye' name='lnoemploye' value='$lnoemploye'>
  503. <tr>
  504. <td>Présentation : </td>
  505. <td>";
  506. unset($listeprez);
  507. $listeprez[0]["refid"] = "-1";
  508. $listeprez[0]["valeur"] = "Madame";
  509. $listeprez[1]["refid"] = "0";
  510. $listeprez[1]["valeur"] = "Monsieur";
  511. // Présentation
  512. print " <select name='lpresentation' id='lpresentation' value='$lpresentation'>
  513. <option>-----</option>
  514. <option value='-1'>Madame</option>
  515. <option value='0'>Monsieur</option>
  516. </select>";
  517. // Nom, prénom, adresse, ville
  518. // code postal, téléphone et adresse courriel
  519. print " </td>
  520. </tr>
  521. <tr>
  522. <td>Nom de famille : </td>
  523. <td>
  524. <INPUT TYPE='text' id='lnom' NAME='lnom' Value='$lnom' SIZE='20' MAXLENGTH='20' >
  525. </td>
  526. </tr>
  527. <tr>
  528. <td>Prénom : </td>
  529. <td>
  530. <INPUT TYPE='text' id='lprenom' NAME='lprenom' Value='$lprenom' SIZE='20' MAXLENGTH='20' >
  531. </td>
  532. </tr>
  533. <tr>
  534. <td valign=top>Adresse : </td>
  535. <td>
  536. <INPUT TYPE='text' id='ladresse1' NAME='ladresse1' Value='$ladresse1' SIZE='50' MAXLENGTH='50' >\n<br>
  537. <INPUT TYPE='text' id='ladresse2' NAME='ladresse2' Value='$ladresse2' SIZE='50' MAXLENGTH='50'>
  538. </td>
  539. </tr>
  540. <tr>
  541. <td>Ville : </td>
  542. <td>
  543. <INPUT TYPE='text' id='lville' NAME='lville' Value='$lville' SIZE='30' MAXLENGTH='30' >
  544. </td>
  545. </tr>
  546. <tr>
  547. <td>Code postal : </td>
  548. <td>
  549. <INPUT TYPE='text' id='lcodepostal' NAME='lcodepostal' SIZE='7' MAXLENGTH='7' Value='$lcodepostal' >
  550. Format: A9A 9A9
  551. </td>
  552. </tr>
  553. <tr>
  554. <td>Téléphone : </td>
  555. <td>
  556. <INPUT TYPE='text' id='ltelephone' NAME='ltelephone' Value='$ltelephone' SIZE='14' MAXLENGTH='14' >
  557. Format : (XXX) XXX-XXXX
  558. </td>
  559. </tr>
  560. <tr>
  561. <td>Adresse de courriel : </td>
  562. <td>
  563. <INPUT TYPE='text' id='lemail' NAME='lemail' Value='$lemail' SIZE='50' MAXLENGTH='50' class='email'>
  564. </td>
  565. </tr>
  566. <tr>
  567. <td>Membre du CA : </td>
  568. <td>";
  569. //Membre CA
  570. print "<select name='lmembreca' id='lmembreca' value='$lmembreca'>
  571. <option value='-2'>-----</option>
  572. <option value='-1'>Oui</option>
  573. <option value='0'>Non</option>
  574. </select>
  575. </td>
  576. </tr>";
  577. //Lieu de travail
  578. print "<tr>
  579. <td>Lieu de travail : </td>
  580. <td>";
  581. unset($result2);
  582. $result2 = getLieuxTravail();
  583. unset($param);
  584. $param["form"] = "frmModif";
  585. $param["nom"] = "lnolieutravail";
  586. $param["etq"] = "";
  587. $param["defaut"] = $_SESSION["lieutravail"];
  588. $param["donnees"] = $result2;
  589. $param["menu"] = true;
  590. $param["evt"] = "onchange=\"afficheNomEmployeur()\"";
  591. print formListbox2($param);
  592. print "<span id='NomEmployeurFiche'></span>";
  593. print "</td>
  594. </tr>";
  595. // Numéro de l'employé
  596. print "<tr>
  597. <td>Numéro d'employé : </td>
  598. <td>
  599. <INPUT TYPE='text' id='lnumero' NAME='lnumero' Value='$lnumero' SIZE='10' MAXLENGTH='10'>
  600. </td>
  601. </tr>";
  602. print "<input type='hidden' value='$ListeEmployeurs' name='ListeEmployeurs'>";
  603. print "<input type='hidden' value='$ListeEmployes' name='ListeEmployes'>";
  604. // Fermeture du formulaire de saisie
  605. print fenetreModaleFin($module["actionajoutbouton"]);
  606. // Exécution de fonctions pour les boutons d'action
  607. if (isset($action) && $action == "Recherche" && isset($recherchereussie) && $recherchereussie == true) {
  608. print "<script type='text/javascript'>";
  609. print " $(document).ready(function() {\n";
  610. print " changetitre(2);\n";
  611. $adresse1 = ($ladresse2 != "") ? $ladresse2 : "";
  612. print " mettrevaleurdansid(\"$lnoemploye\",\"$lpresentation\",\"$lnom\",\"$lprenom\",\"" . addslashes($ladresse1) . "\",\"" . $adresse1 . "\",\"$lville\",\"$lcodepostal\",";
  613. print "$ltelephone,\"$lemail\",\"$lmembreca\",$lnolieutravail,\"$lnumero\");";
  614. print " });";
  615. print "</script>\n";
  616. }