liste_periodes.inc.php 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  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. // Pour mettre la date la plus récente en premier
  15. if (isset($dir2)) {
  16. $dir = $dir2;
  17. unset($flechetri);
  18. }
  19. // ------------------------------
  20. // Caractéristiques du formulaire
  21. // Période normale
  22. // ------------------------------
  23. unset($module);
  24. $module = array(
  25. "titre" => "Gestion des périodes",
  26. "urldest" => $SCRIPT_NAME . "?page=liste_periodes",
  27. "recherche" => array("engin" => false),
  28. "jeton" => $jeton,
  29. "taille" => "550px",
  30. "lientri" => true,
  31. "entete" => array(
  32. 1 => array("Début" => "periode"),
  33. 2 => array("Fin" => "periode")
  34. ),
  35. "msg" => array(
  36. "maj_ok" => "Mise à jour de la période des libérations effectuée avec succès.",
  37. "maj_echec" => "L'opération de mise à jour de la période des libérations a échouée."
  38. )
  39. );
  40. $nombreaffiche = 25;
  41. //Mode administratif
  42. $modeAdmin= ($_SESSION['gestion_site']>="Oui"?"Oui":"Non");
  43. $rtri = antiInjection($module["entete"][$tri][key($module["entete"][$tri])] . " " . $dir);
  44. //Le mode admin doit être activé.
  45. if ($modeAdmin == "Oui") {
  46. // ------------------
  47. // Requête sur le tri
  48. // ------------------
  49. if (isset($action)) {
  50. $msg = "";
  51. //Cueillette de données du formulaire
  52. if (!empty(filter_input(INPUT_POST, 'lnoperiode'))) {
  53. $lnoperiode = antiInjection($lnoperiode);
  54. }
  55. if ($action == "Ajouter la prochaine période") {
  56. $anneeProchaineAAjouter = false;
  57. //Prochaine Année
  58. $prochaineAnnee = (int) date("Y") + 1;
  59. $nouvellePeriode = $prochaineAnnee . "-04-01";
  60. unset($sqlparam);
  61. $sqlparam["table"][] = "periodes";
  62. $sqlparam["champs"][] = "refperiode";
  63. $sqlparam["where"][] = "date_format(periode,\"%Y-%m-%d\")" . sprintf("='%s'", $nouvellePeriode);
  64. $result = executerRequeteSql($sqlparam);
  65. // La prochaine année est créée, passer à l'année suivante.
  66. if (isset($result) && !empty($result[0]["refperiode"])) {
  67. //Prochaine Année
  68. $prochaineAnnee++;
  69. $nouvellePeriode = $prochaineAnnee . "-04-01";
  70. unset($sqlparam);
  71. $sqlparam["table"][] = "periodes";
  72. $sqlparam["champs"][] = "refperiode";
  73. $sqlparam["where"][] = "date_format(periode,\"%Y-%m-%d\")" . sprintf("='%s'", $nouvellePeriode);
  74. $result = executerRequeteSql($sqlparam);
  75. if (!isset($result) || empty($result[0]["refperiode"])) {
  76. $anneeProchaineAAjouter = true;
  77. }
  78. } else {
  79. $anneeProchaineAAjouter = true;
  80. }
  81. if ($anneeProchaineAAjouter) {
  82. unset($sqlparam);
  83. $sqlparam["type"] = "INSERT";
  84. $sqlparam["table"][] = "periodes";
  85. $sqlparam["champs"]["periode"] = sprintf("'%s'", $nouvellePeriode);
  86. $sqlparam["champs"]["archive"] = 0;
  87. $result = executerRequeteSql($sqlparam);
  88. }
  89. } elseif ($action == "Choisir cette période") {
  90. $sqlparam["type"] = "UPDATE";
  91. $sqlparam["table"][] = "compteurautre";
  92. $sqlparam["champs"]["renouvellement"] = "'$lnoperiode'";
  93. $sqlparam["where"][] = "refcompteur = 1";
  94. $result = executerRequeteSql($sqlparam);
  95. if (isset($result)) {
  96. $module["resultatSQL"] = true;
  97. $module["message"] = $module["msg"]["maj_ok"];
  98. } else {
  99. $module["resultatSQL"] = false;
  100. $module["message"] = $module["msg"]["maj_echec"];
  101. }
  102. }
  103. }
  104. } else {
  105. //Pas de liste à faire apparaître
  106. unset($module["entete"]);
  107. }
  108. $i = 0;
  109. unset($sqlparam);
  110. $sqlparam["table"][] = "periodes";
  111. $sqlparam["champs"][] = "refperiode";
  112. $sqlparam["champs"][] = "unix_timestamp(periode) as periode";
  113. $sqlparam["champs"][] = "(SELECT count(refperiode) FROM periodes) as compte";
  114. $sqlparam["limite"] = ($nombreaffiche * ($nopage - 1)) . "," . $nombreaffiche;
  115. $sqlparam["ordre"][] = $rtri;
  116. $result = executerRequeteSql($sqlparam);
  117. $module["compte"] = $result[0]["compte"];
  118. print preparerModule($module);
  119. if ($modeAdmin == "Oui") {
  120. //Ajout d'une année de libération
  121. print "<p>";
  122. print "<div style='width:500px; margin:auto; text-align:center;'>";
  123. print "<form action='" . $SCRIPT_NAME . "?page=liste_periodes&jeton=" . $jeton;
  124. print "' name='sous_formulaire_ajout' method='POST'>";
  125. print "<INPUT style='cursor:pointer;' name='action' TYPE='submit' VALUE='Ajouter la prochaine période' >";
  126. print "<input name='dir' type='hidden' value='$dir'>\n";
  127. print "<input name='tri' type='hidden' value='$tri'>\n";
  128. print "</form>";
  129. print "</p>";
  130. }
  131. unset($periodestd);
  132. $periodestd = getPeriodeCourante();
  133. // Période actuelle
  134. print "<p>";
  135. print "<div style='width:500px; margin:auto; text-align:center;'>";
  136. print "Période actuellement sélectionnée : " . $periodestd["datedebut"] . "</div>";
  137. print "</p>";
  138. if ($modeAdmin == "Oui") {
  139. //Liste principale
  140. if (isset($result)) {
  141. $i = ($nopage - 1) * $nombreaffiche + 1;
  142. unset($style);
  143. $style = "border:1px solid #cfcfcf; font-family:arial, helvetica, sans-serif; ";
  144. $style .= "font-size:9pt; margin-left:5px; margin-right:5px;";
  145. //Boucle de lecture
  146. foreach ($result as $clef => $champs) {
  147. $datedebut = date("Y-m-d", mktime(0, 0, 0, date("m", $champs["periode"]),
  148. date("d", $champs["periode"]), date("Y", $champs["periode"]) - 1));
  149. $datefin = date("Y-m-d", mktime(0, 0, 0, date("m", $champs["periode"]),
  150. date("d", $champs["periode"]) - 1, date("Y", $champs["periode"])));
  151. print "<tr>\n";
  152. if ($datedebut != $periodestd["datedebut"]) {
  153. print "<td style='min-width:10%; max-width:10%; $style'>" . $i . "</td>";
  154. print "<td style='min-width:30%; max-width:30%; $style'>" . $datedebut . "</td>";
  155. print "<td style='min-width:30%; max-width:30%; $style'>" . $datefin . "</td>";
  156. print "<td style='min-width:30%; max-width:30%; $style'>\n";
  157. print "<form action='" . $SCRIPT_NAME . "?page=liste_periodes&dir2=$dir&tri=$tri&jeton=" . $jeton;
  158. print "' name='sous_formulaire$i' method='POST'>";
  159. print "<INPUT style='cursor:pointer;' name='action' TYPE='submit' VALUE='Choisir cette période' >";
  160. print "<input name='lnoperiode' type='hidden' value='" . date("Y-m-d", $champs["periode"]) . "'>\n";
  161. print "<input name='dir' type='hidden' value='$dir'>\n";
  162. print "<input name='tri' type='hidden' value='$tri'>\n";
  163. print "</form>";
  164. } else {
  165. print "<td style='min-width:10%; max-width:10%; $style color:red;'>" . $i . "</td>";
  166. print "<td style='min-width:30%; max-width:30%; $style color:red;'>" . $datedebut . "</td>";
  167. print "<td style='min-width:30%; max-width:30%; $style color:red;'>" . $datefin . "</td>";
  168. print "<td style='min-width:30%; max-width:30%; $style color:red;'>\n";
  169. print "<div style='margin: 0px; padding: 0px; font-family:arial, helvetica, sans-serif; ";
  170. print "font-size:11pt;'>";
  171. echo "&nbsp;Période sélectionnée&nbsp;";
  172. echo "</div>";
  173. }
  174. print "</td>\n";
  175. print "</tr>\n";
  176. $i++;
  177. }
  178. }
  179. print"</table>";
  180. // Pagination
  181. print "<table style='width:968px; margin:auto;'>";
  182. print "<tr><td style='vertical-align:bottom;'>";
  183. print $seqpage;
  184. print "</td>";
  185. print "<td style='text-align:right;'>";
  186. //Haut de page
  187. if ($nombreaffiche > 25) {
  188. print "<a name='baspage' href='#hautpage' title='Aller en haut de la page'>Haut de page</a>";
  189. }
  190. print "</td></tr>";
  191. print "</table>";
  192. }