stats.class.php 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <?php
  2. class stats {
  3. public static function countStatistiquesGenrale(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)) AS lieuParis147, "
  13. . "SUM(IF(lieu = 'LYON (IVOIRE)', 1, 0)) AS lieuLyonIvoire, "
  14. . "SUM(IF(lieu = 'PEROLS', 1, 0)) AS lieuPerols, "
  15. . "SUM(IF(lieu = 'PARIS CAMBACERE', 1, 0)) AS lieuParisCambaceres, "
  16. . "SUM(IF(lieu = 'BLAGNAC CENT. 3', 1, 0)) AS lieuToulouseBalgnac, "
  17. . "SUM(IF(lieu = 'PARIS-BOUCHARDO', 1, 0)) 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. ksort($return);
  54. return $return;
  55. }
  56. public static function countStatistiquesByLieu(string $_lieu){
  57. $lieu = self::byLieu($_lieu);
  58. if($lieu == NULL){
  59. return FALSE;
  60. }
  61. db::query("SELECT "
  62. . "SUM(IF(sexe = 'F' AND actif = 1, 1, 0)) AS Femme, "
  63. . "SUM(IF(sexe = 'M' AND actif = 1, 1, 0)) AS Homme, "
  64. . "SUM(IF(contrat = 1 AND actif = 1, 1, 0)) AS ContratOn, "
  65. . "SUM(IF(contrat = 0 AND actif = 1, 1, 0)) AS ContratOff, "
  66. . "SUM(IF(actif = 1, 1, 0)) AS ActifOn, "
  67. . "SUM(IF(actif = 0, 1, 0)) AS ActifOff "
  68. . "FROM " . DB_T_SALARIES . " "
  69. . "WHERE lieu = :lieu");
  70. db::bind(':lieu', $lieu);
  71. return db::single();
  72. }
  73. }