stats.class.php 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <?php
  2. class stats {
  3. public static function countStatistiquesGenerale(int $_actifOnly = 1){
  4. $actif = ($_actifOnly == 1) ? " AND actif = 1" : "";
  5. db::query("SELECT "
  6. . "SUM(IF(sexe = 'F'" . $actif . ", 1, 0)) AS Femme, "
  7. . "SUM(IF(sexe = 'M'" . $actif . ", 1, 0)) AS Homme, "
  8. . "SUM(IF(contrat = 1" . $actif . ", 1, 0)) AS ContratOn, "
  9. . "SUM(IF(contrat = 0" . $actif . ", 1, 0)) AS ContratOff, "
  10. . "SUM(IF(actif = 1, 1, 0)) AS ActifOn, "
  11. . "SUM(IF(actif = 0, 1, 0)) AS ActifOff, "
  12. . "SUM(IF(lieu = 'ISSY - 147', 1, 0)" . $actif . ") AS lieuParis147, "
  13. . "SUM(IF(lieu = 'LYON (IVOIRE)', 1, 0)" . $actif . ") AS lieuLyonIvoire, "
  14. . "SUM(IF(lieu = 'PEROLS', 1, 0)" . $actif . ") AS lieuPerols, "
  15. . "SUM(IF(lieu = 'PARIS CAMBACERE', 1, 0)" . $actif . ") AS lieuParisCambaceres, "
  16. . "SUM(IF(lieu = 'BLAGNAC CENT. 3', 1, 0)" . $actif . ") AS lieuToulouseBalgnac, "
  17. . "SUM(IF(lieu = 'PARIS-BOUCHARDO', 1, 0)" . $actif . ") AS lieuParisBouchardo "
  18. . "FROM " . DB_T_SALARIES);
  19. return db::single();
  20. }
  21. private static function byLieu(string $_lieu){
  22. switch ($_lieu) {
  23. case "147":
  24. return "ISSY - 147";
  25. break;
  26. case "LYON":
  27. return "LYON (IVOIRE)";
  28. break;
  29. case "PEROLS":
  30. return "PEROLS";
  31. break;
  32. case "CAMBACERE":
  33. return "PARIS CAMBACERE";
  34. break;
  35. case "BLAGNAC":
  36. return "BLAGNAC CENT. 3";
  37. break;
  38. case "BOUCHARDO":
  39. return "PARIS-BOUCHARDO";
  40. break;
  41. default:
  42. return NULL;
  43. }
  44. }
  45. public static function countStatistiquesGenraleEntrees(string $_lieu = NULL, int $_actifOnly = 1){
  46. $return = NULL;
  47. $actif = ($_actifOnly == 1) ? " WHERE contrat = 1" : "";
  48. $lieu = ($_lieu == NULL) ? "" : " AND lieu = '" . self::byLieu($_lieu) . "'";
  49. db::query("SELECT SUBSTR(jourEntree, 1 , 4) AS anEntree FROM " . DB_T_SALARIES . $actif . $lieu);
  50. foreach (db::resultset() as $value) {
  51. $return[$value["anEntree"]] = (empty($return[$value["anEntree"]])) ? 1 : $return[$value["anEntree"]]+1;
  52. }
  53. if(!empty($return)){
  54. ksort($return);
  55. } else {
  56. $return = array(date("Y") => 0);
  57. }
  58. return $return;
  59. }
  60. public static function countStatistiquesByLieu(string $_lieu){
  61. $lieu = self::byLieu($_lieu);
  62. if($lieu == NULL){
  63. return FALSE;
  64. }
  65. db::query("SELECT "
  66. . "SUM(IF(sexe = 'F' AND actif = 1, 1, 0)) AS Femme, "
  67. . "SUM(IF(sexe = 'M' AND actif = 1, 1, 0)) AS Homme, "
  68. . "SUM(IF(contrat = 1 AND actif = 1, 1, 0)) AS ContratOn, "
  69. . "SUM(IF(contrat = 0 AND actif = 1, 1, 0)) AS ContratOff, "
  70. . "SUM(IF(actif = 1, 1, 0)) AS ActifOn, "
  71. . "SUM(IF(actif = 0, 1, 0)) AS ActifOff "
  72. . "FROM " . DB_T_SALARIES . " "
  73. . "WHERE lieu = :lieu");
  74. db::bind(':lieu', $lieu);
  75. return db::single();
  76. }
  77. }