liste_employes.inc.php 27 KB

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