2
0

cms.lottery-import-inscription.php 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. <?php
  2. if (core::ifPost("from") AND core::getPost("from") == "lottery-import-inscription") {
  3. if(lottery::getCloture(core::getPost("lottery"))["sortDate"] != NULL){
  4. alert::recError("Action annulée car le tirage au sort a déjà été réalisé.");
  5. header("Location: /lottery-".core::getPost("lottery").".html");
  6. exit();
  7. }
  8. if (isset($_FILES[core::getPost("from")]['error']) AND $_FILES[core::getPost("from")]['error'] > 0) {
  9. switch ($_FILES[core::getPost("from")]['error']) {
  10. case 1: // UPLOAD_ERR_INI_SIZE
  11. alert::recError("Le fichier dépasse la limite autorisée par le serveur (fichier php.ini) !");
  12. break;
  13. case 2: // UPLOAD_ERR_FORM_SIZE
  14. alert::recError("Le fichier dépasse la limite autorisée dans le formulaire HTML !");
  15. break;
  16. case 3: // UPLOAD_ERR_PARTIAL
  17. alert::recError("L'envoi du fichier a été interrompu pendant le transfert !");
  18. break;
  19. case 4: // UPLOAD_ERR_NO_FILE
  20. alert::recError("Vous n'avez pas chargé de fichier");
  21. break;
  22. }
  23. } elseif ($_FILES[core::getPost("from")]['type'] != "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet") {
  24. alert::recError("Seuls les fichiers Excel au format xlsx sont acceptés (".$_FILES[core::getPost("from")]['type'].")");
  25. header("Location: /lottery-".core::getPost("lottery").".html");
  26. exit();
  27. } else {
  28. if (file_exists($_FILES[core::getPost("from")]['tmp_name'])) {
  29. $simpleXLSX = new simpleXLSX();
  30. $xlsx = $simpleXLSX->parse($_FILES[core::getPost("from")]['tmp_name']);
  31. $returnXlsx = $xlsx->rows();
  32. if( $returnXlsx[0][0] != "prest_id"
  33. OR $returnXlsx[0][1] != "doss_id"
  34. OR $returnXlsx[0][2] != "od_matricule"
  35. OR $returnXlsx[0][3] != "od_prenom"
  36. OR $returnXlsx[0][4] != "od_nom"
  37. OR $returnXlsx[0][5] != "od_email_prof"
  38. ){ echo "error";
  39. alert::recError("Le fichier " . $_FILES[core::getPost("from")]['name'] . " n'est pas un fichier d'inscription à un tirage au sort.");
  40. header("Location: /lottery-".core::getPost("lottery").".html");
  41. exit();
  42. }
  43. $nbSalaries = count($returnXlsx) - 1;
  44. foreach ($returnXlsx as $key => $ligne) {
  45. if($key > 0){
  46. $salarie = salaries::get_salarieByLoginId(strtoupper($ligne[2]));
  47. if(isset($salarie["id"])){
  48. $tmp_id_salarie = $salarie["id"];
  49. $tmp_id_presta = $ligne[0];
  50. $tmp_id_dossier = $ligne[1];
  51. $tmp_login = $salarie["loginId"];
  52. $tmp_prenom = $salarie["prenom"];
  53. $tmp_nom = $salarie["nom"];
  54. $tmp_valide = $salarie["actif"];
  55. } else {
  56. $tmp_id_salarie = NULL;
  57. $tmp_id_presta = $ligne[0];
  58. $tmp_id_dossier = $ligne[1];
  59. $tmp_login = $ligne[2];
  60. $tmp_prenom = $ligne[3];
  61. $tmp_nom = $ligne[4];
  62. $tmp_valide = 0;
  63. }
  64. db::query("INSERT INTO " . DB_T_LOTTERY_INSCRITS . "
  65. (id_lottery, id_salarie, id_presta, id_dossier, login, prenom, nom, valide, id_user)
  66. VALUES (:id_lottery, :id_salarie, :id_presta, :id_dossier, :login, :prenom, :nom, :valide, :id_user)
  67. ON DUPLICATE KEY UPDATE id_salarie = :id_salarie, login = :login, prenom = :prenom, nom = :nom, valide = :valide");
  68. db::bind(':id_lottery', core::getPost("lottery"));
  69. db::bind(':id_salarie', $tmp_id_salarie);
  70. db::bind(':id_presta', $tmp_id_presta);
  71. db::bind(':id_dossier', $tmp_id_dossier);
  72. db::bind(':login', $tmp_login);
  73. db::bind(':prenom', $tmp_prenom);
  74. db::bind(':nom', $tmp_nom);
  75. db::bind(':valide', $tmp_valide);
  76. db::bind(':id_user', session::getId());
  77. try {
  78. db::execute();
  79. if($tmp_valide == 1) {
  80. alert::recSuccess("Inscription éligible de " . $tmp_prenom . " " . $tmp_nom);
  81. } else {
  82. alert::recError("Inscription non éligible de " . $tmp_prenom . " " . $tmp_nom);
  83. }
  84. } catch (Exception $ex) {
  85. alert::recError("ERREUR TECHNIQUE : ".$tmp_prenom . " " . $tmp_nom . " n'a pas pu être importé");
  86. }
  87. }
  88. }
  89. header("Location: /lottery-".core::getPost("lottery").".html");
  90. exit();
  91. } else {
  92. alert::recError("Erreur lors du chargement du fichier : " . $_FILES[core::getPost("from")]['name']);
  93. }
  94. }
  95. header("Location: /lottery-".core::getPost("lottery").".html");
  96. exit();
  97. } else {
  98. header('HTTP/1.0 401 Unauthorized');
  99. exit();
  100. }