Advertisement
Guest User

Untitled

a guest
May 24th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 41.38 KB | None | 0 0
  1. <?php
  2. header('Location: http://leanski_interface.loc/index.php?addConditionSuccess=true');
  3. /**
  4.  * Created by PhpStorm.
  5.  * User: willy.rineau
  6.  * Date: 09/05/2019
  7.  * Time: 15:22
  8.  */
  9.  
  10.  
  11. include_once '../class/conditions.php';
  12. include_once '../class/conditionsManager.php';
  13. include_once '../class/prl.php';
  14. include_once '../class/prlManager.php';
  15. include_once '../class/etat.php';
  16. include_once '../class/etatManager.php';
  17. include_once '../class/zone_meteo.php';
  18. include_once '../class/zone_meteoManager.php';
  19. include_once '../class/media.php';
  20. include_once '../class/mediaManager.php';
  21.  
  22. $db = new PDO('mysql:host=localhost;dbname=leanski;charset=utf8', 'root', '');
  23. $manager_conditions = new conditionsManager($db);
  24. $manager_prl = new prlManager($db);
  25. $manager_etat = new etatManager($db);
  26. $manager_meteo = new zone_meteoManager($db);
  27. $manager_media = new mediaManager($db);
  28.  
  29.  
  30. /*
  31.  * Il faut d'abord ajouter la condition.
  32.  * Il faudra faire un "ALTER TABLE" pour insérer ensuite la condition.
  33.  */
  34.  
  35.  
  36. // Ici, on teste si on récupère un ID, s'il est égal à 0, alors il faut créer la condition.
  37. if ($_POST['idCond'] === 0) {
  38.  
  39.     $condition = new conditions([]);
  40.     $condition->setNom('');
  41.     $condition->setNumero_condition($_POST['numCond']);
  42.     $condition->setIdStation(1);
  43.     $condition->setTexte_fr($_POST['textFr']);
  44.     $condition->setTexte_en($_POST['textEn']);
  45.     $condition->setPriorite($_POST['priority']);
  46.     $condition->setCouleur_fond($_POST['background']);
  47.     $condition->setCouleur_texte($_POST['color']);
  48.     $condition->setLogo($_POST['logo']);
  49.     $condition->setVerification(1);
  50.  
  51.  
  52.     $manager_conditions->add_conditions($condition);
  53.  
  54.  
  55.     $json_source = ($_POST['json']);
  56.  
  57.     $texte_scenario = "";
  58.     $texte_a_afficher = "";
  59.     $texte_a_afficher_final = "SELECT count(*) AS valeur FROM leanski WHERE ";
  60.  
  61.     $conditions = $manager_conditions->getLastID()['MAX(id)'];
  62.  
  63.  
  64.     $json_data = json_decode($json_source);
  65.  
  66.     $parenthese = false;
  67.  
  68.     $getPositionToChange = count($json_data->rules) - 1;
  69.  
  70.     for ($i = 0; $i < count($json_data->rules); $i++) {
  71.  
  72.  
  73.         if (isset($json_data->rules[$i]->field)) {
  74.             if ($parenthese === false) {
  75.                 $texte_scenario .= " (";
  76.                 $texte_a_afficher .= " (";
  77.                 $parenthese = true;
  78.             }
  79.             $prl_id = str_replace("999", ",", $json_data->rules[$i]->field);
  80.             $idInfoneige = (explode(",", $prl_id));
  81.             $idPrl = implode(",", $idInfoneige);
  82.             // Préparation insertion - ID ETAT
  83.             $prl_operator = $json_data->rules[$i]->operator;
  84.             $etat = $manager_etat->getID($prl_operator)[0];
  85.             // Préparation insertion - ID AND_OR
  86.             $and_or = $json_data->condition;
  87.             // Préparation insert - ID VALUE
  88.             $value = $json_data->rules[$i]->value;
  89.             // Préparation insertion - ID PRL
  90.             $prl_id = getPisteID($idInfoneige, $manager_prl, $manager_meteo)[0];
  91.             $prl_name = getPisteID($idInfoneige, $manager_prl, $manager_meteo)[1];
  92.             $prl_info = getPisteID($idInfoneige, $manager_prl, $manager_meteo)[2];
  93.  
  94.  
  95.             $id = 1;
  96.  
  97.             if ($prl_info === "zone_meteo") {
  98.                 $manager_conditions->add_zone_meteo($conditions, $prl_id, $etat, $and_or, $value, $id);
  99.             } elseif ($prl_info === "prl") {
  100.                 $manager_conditions->add_prl_conditions($conditions, $prl_id, $etat, $and_or, $value, $id);
  101.             }
  102.  
  103.             // TODO -> Insertion GROUPE 2
  104.  
  105.  
  106.             $texte_scenario .= getScenario($conditions, $manager_conditions, $prl_info, $id, $manager_prl, $manager_meteo, $idPrl, $etat, $and_or, $prl_name, $value)[0];
  107.             $texte_a_afficher .= getScenario($conditions, $manager_conditions, $prl_info, $id, $manager_prl, $manager_meteo, $idPrl, $etat, $and_or, $prl_name, $value)[1];
  108.  
  109.  
  110.             // TODO -> Insertion GROUPE 1
  111.         } elseif ($json_data->rules[$i]->condition) {
  112.             if ($parenthese === true) {
  113.                 $texte_scenario .= "AREMPLACER (";
  114.                 $texte_a_afficher .= "AREMPLACER (";
  115.                 $parenthese = false;
  116.             }
  117.             $id = 2;
  118.             for ($y = 0; $y < count($json_data->rules[$i]->rules); $y++) {
  119.                 $prl_id = str_replace("999", ",", $json_data->rules[$i]->rules[$y]->field);
  120.                 $idInfoneige = (explode(",", $prl_id));
  121.                 $idPrl = implode(",", $idInfoneige);
  122.                 // Préparation insertion - ID ETAT
  123.                 $prl_operator = $json_data->rules[$i]->rules[$y]->operator;
  124.                 $etat = $manager_etat->getID($prl_operator)[0];
  125.                 // Préparation insertion - ID AND_OR
  126.                 $and_or = $json_data->rules[$i]->condition;
  127.                 // Préparation insert - ID VALUE
  128.                 $value = $json_data->rules[$i]->rules[$y]->value;
  129.                 // Préparation insertion - ID PRL
  130.                 $prl_id = getPisteID($idInfoneige, $manager_prl, $manager_meteo)[0];
  131.                 $prl_name = getPisteID($idInfoneige, $manager_prl, $manager_meteo)[1];
  132.                 $prl_info = getPisteID($idInfoneige, $manager_prl, $manager_meteo)[2];
  133.  
  134.  
  135.                 if ($prl_info === "zone_meteo") {
  136.                     $manager_conditions->add_zone_meteo($conditions, $prl_id, $etat, $and_or, $value, $id);
  137.                 } elseif ($prl_info === "prl") {
  138.                     $manager_conditions->add_prl_conditions($conditions, $prl_id, $etat, $and_or, $value, $id);
  139.                 }
  140.  
  141.                 // TODO -> Insertion GROUPE 2
  142.  
  143.  
  144.                 $texte_scenario .= getScenario($conditions, $manager_conditions, $prl_info, $id, $manager_prl, $manager_meteo, $idPrl, $etat, $and_or, $prl_name, $value)[0];
  145.                 $texte_a_afficher .= getScenario($conditions, $manager_conditions, $prl_info, $id, $manager_prl, $manager_meteo, $idPrl, $etat, $and_or, $prl_name, $value)[1];
  146.  
  147.             }
  148.  
  149.  
  150.         }
  151.     }
  152.  
  153.  
  154.     /*
  155.      * Mise en forme de la condition SQL
  156.      *  -> Elle apparait dans la table condition.
  157.      */
  158.     $text_afficher = $texte_a_afficher;
  159.     $str_text_afficher = preg_replace("/^(\w+\s)/", "", $text_afficher);
  160.  
  161.     $str_text_afficher = preg_replace('/AND AREMPLACER/', ") AND", $str_text_afficher);
  162.     $str_text_afficher = preg_replace('/OR AREMPLACER/', ") OR", $str_text_afficher);
  163.  
  164.     $str_text_afficher = substr($str_text_afficher, 0, -4);
  165.     $str_text_afficher .= ")";
  166.  
  167.     $texte_a_afficher_final .= $str_text_afficher;
  168.  
  169.  
  170.     /*
  171.      * Mise en forme du message du scénario.
  172.      *  -> Ici, on enlève les 2 derniers caractères pour enlever le "+ ".
  173.      */
  174.     $str_text_scenario = substr($texte_scenario, 0, -1);
  175.     $str_text_scenario = preg_replace("/^(\w+\s)/", "", $str_text_scenario);
  176.  
  177.     $str_text_scenario = preg_replace('/et AREMPLACER/', ") +", $str_text_scenario);
  178.     $str_text_scenario = preg_replace('/ou AREMPLACER/', ") ou", $str_text_scenario);
  179.  
  180.     $str_text_scenario = substr($str_text_scenario, 0, -3);
  181.     $str_text_scenario .= ")";
  182.  
  183.  
  184.     /*
  185.      * // TODO Update la table condition.
  186.      *  */
  187.     $manager_conditions->updateScenario($str_text_scenario, $str_text_afficher, $conditions);
  188.  
  189.  
  190.     /*
  191.      * Function qui permet de récuperer le "nom" et l'"id" de la PRL / Zone météo.
  192.      *  -> On teste donc si c'est une zone météo, ou une PRL, pour envoyer les bonnes valeurs ensuite.
  193.      */
  194.     function getPisteID($prl_id, $manager, $manager_meteo)
  195.     {
  196.         if (count($prl_id) === 2) {
  197.             // Quand c'est une zone météo
  198.             $ent_id = $prl_id[0];
  199.             $obs_id = $prl_id[1];
  200.  
  201.             $zone_meteo = $manager_meteo->getId($ent_id, $obs_id)[0];
  202.             $zone_meteo_name = $manager_meteo->getName($ent_id, $obs_id)[0];
  203.  
  204.             return array($zone_meteo, $zone_meteo_name, "zone_meteo");
  205.  
  206.         } else {
  207.             // Quand c'est une PRL !
  208.             $ent_id = $prl_id[0];
  209.             $sct_id = $prl_id[1];
  210.             $pag_id = $prl_id[2];
  211.             $prl_id2 = $prl_id[3];
  212.  
  213.             $prl = $manager->getId($ent_id, $sct_id, $pag_id, $prl_id2)[0];
  214.             $prl_name = $manager->getName($ent_id, $sct_id, $pag_id, $prl_id2)[0];
  215.  
  216.             return array($prl, $prl_name, "prl");
  217.         }
  218.     }
  219.  
  220.     /*
  221.      * Function qui permet de récuperer dans un tableau, le nom du scénario, et la requête SQL.
  222.      *
  223.      */
  224.     function getScenario($maxId, $manager_condition, $prl_info, $id, $manager_prl, $manager_zone_meteo, $idPrl, $etat, $and_or, $prl_name, $value)
  225.     {
  226.         $array_test = [];
  227.         $message_scenario = "";
  228.         $message_condition = "";
  229.  
  230.  
  231.         if ($prl_info === "zone_meteo") {
  232.             $meteoCond = $manager_condition->getListMeteoInfo($maxId, $id);
  233.             array_push($array_test, $meteoCond);
  234.         } else {
  235.             $prlCond = $manager_condition->getListPrlInfo($maxId, $id);
  236.             array_push($array_test, $prlCond);
  237.         }
  238.  
  239.         //var_dump($array_test);
  240.  
  241.         switch ($etat) {
  242.             case 1:
  243.                 $message_condition .= "dbo.lsk_etat" . "(" . $idPrl . ") = 1 " . $and_or . " ";
  244.                 if ($and_or === "AND") {
  245.                     $message_scenario .= $prl_name . " O et ";
  246.                 } else {
  247.                     $message_scenario .= $prl_name . " O ou ";
  248.                 }
  249.                 break;
  250.             case 2:
  251.                 $message_condition .= "dbo.lsk_etat" . "(" . $idPrl . ") = 2 " . $and_or . " ";
  252.                 if ($and_or === "AND") {
  253.                     $message_scenario .= $prl_name . " P et ";
  254.                 } else {
  255.                     $message_scenario .= $prl_name . " P ou ";
  256.                 }
  257.                 break;
  258.             case 3:
  259.                 $message_condition .= "dbo.lsk_etat" . "(" . $idPrl . ") = 3 " . $and_or . " ";
  260.                 if ($and_or === "AND") {
  261.                     $message_scenario .= $prl_name . " F et ";
  262.                 } else {
  263.                     $message_scenario .= $prl_name . " F ou ";
  264.                 }
  265.                 break;
  266.             case 4:
  267.                 $message_condition .= "dbo.lsk_etat_retarde" . "(" . $idPrl . ") = 1 " . $and_or . " ";
  268.                 if ($and_or === "AND") {
  269.                     $message_scenario .= $prl_name . " retardé et ";
  270.                 } else {
  271.                     $message_scenario .= $prl_name . " retardé ou ";
  272.                 }
  273.                 break;
  274.             case 5:
  275.                 $message_condition .= "dbo.lsk_etat_arret_moment" . "(" . $idPrl . ") = 1 " . $and_or . " ";
  276.                 if ($and_or === "AND") {
  277.                     $message_scenario .= $prl_name . " arrêt momentané et ";
  278.                 } else {
  279.                     $message_scenario .= $prl_name . " arrêt momentané ou ";
  280.                 }
  281.                 break;
  282.             case 6:
  283.                 $message_condition .= "dbo.lsk_etat_P_non_decale" . "(" . $idPrl . ") = 1 " . $and_or . " ";
  284.                 if ($and_or === "AND") {
  285.                     $message_scenario .= $prl_name . " P non décalé et ";
  286.                 } else {
  287.                     $message_scenario .= $prl_name . " P non décalé ou ";
  288.                 }
  289.                 break;
  290.             case 7:
  291.                 $message_condition .= "dbo.lsk_etat_F_P" . "(" . $idPrl . ") = 1 " . $and_or . " ";
  292.                 if ($and_or === "AND") {
  293.                     $message_scenario .= $prl_name . " F/P et ";
  294.                 } else {
  295.                     $message_scenario .= $prl_name . " F/P ou ";
  296.                 }
  297.                 break;
  298.             case 8:
  299.                 $message_condition .= "dbo.lsk_attente" . "(" . $idPrl . ") <  " . $value . " " . $and_or . " ";
  300.                 if ($and_or === "AND") {
  301.                     $message_scenario .= $prl_name . " Attente < " . $value . " et ";
  302.                 } else {
  303.                     $message_scenario .= $prl_name . " Attente < " . $value . " ou ";
  304.                 }
  305.                 break;
  306.             case 9:
  307.                 $message_condition .= "dbo.lsk_attente" . "(" . $idPrl . ") <=  " . $value . " " . $and_or . " ";
  308.                 if ($and_or === "AND") {
  309.                     $message_scenario .= $prl_name . " Attente <= " . $value . " et ";
  310.                 } else {
  311.                     $message_scenario .= $prl_name . " Attente <= " . $value . " ou ";
  312.                 }
  313.                 break;
  314.             case 10:
  315.                 $message_condition .= "dbo.lsk_attente" . "(" . $idPrl . ") >  " . $value . " " . $and_or . " ";
  316.                 if ($and_or === "AND") {
  317.                     $message_scenario .= $prl_name . " Attente > " . $value . " et ";
  318.                 } else {
  319.                     $message_scenario .= $prl_name . " Attente > " . $value . " ou ";
  320.                 }
  321.                 break;
  322.             case 11:
  323.                 $message_condition .= " dbo.lsk_attente" . "(" . $idPrl . ") >=  " . $value . " " . $and_or . " ";
  324.                 if ($and_or === "AND") {
  325.                     $message_scenario .= $prl_name . " Attente >= " . $value . " et ";
  326.                 } else {
  327.                     $message_scenario .= $prl_name . " Attente >= " . $value . " ou ";
  328.                 }
  329.                 break;
  330.             case 12:
  331.                 $message_condition .= "dbo.lsk_attente" . "(" . $idPrl . ") <  " . $value . " " . $and_or . " ";
  332.                 if ($and_or === "AND") {
  333.                     $message_scenario .= $prl_name . " Attente entre " . $value . " & " . $value . " et ";
  334.                 } else {
  335.                     $message_scenario .= $prl_name . " Attente entre " . $value . " & " . $value . " ou ";
  336.                 }
  337.                 break;
  338.             case 13:
  339.                 $message_condition .= "dbo.a_faire " . $and_or . " ";
  340.                 if ($and_or === "AND") {
  341.                     $message_scenario .= $prl_name . " Vent < " . $value . " et ";
  342.                 } else {
  343.                     $message_scenario .= $prl_name . " Vent < " . $value . " ou ";
  344.                 }
  345.                 break;
  346.             case 14:
  347.                 $message_condition .= "dbo._afaire " . $and_or . " ";
  348.                 if ($and_or === "AND") {
  349.                     $message_scenario .= $prl_name . " Vent > " . $value . " et ";
  350.                 } else {
  351.                     $message_scenario .= $prl_name . " Vent > " . $value . " ou ";
  352.                 }
  353.                 break;
  354.             case 15:
  355.                 $message_condition .= "dbo._afaire " . $and_or . " ";
  356.                 if ($and_or === "AND") {
  357.                     $message_scenario .= $prl_name . " Avalanche > " . $value . " et ";
  358.                 } else {
  359.                     $message_scenario .= $prl_name . " Avalanche > " . $value . " ou ";
  360.                 }
  361.                 break;
  362.             case 16:
  363.                 $message_condition .= "dbo._afaire " . $and_or . " ";
  364.                 if ($and_or === "AND") {
  365.                     $message_scenario .= $prl_name . " Température < " . $value . " et ";
  366.                 } else {
  367.                     $message_scenario .= $prl_name . " Température < " . $value . " ou ";
  368.                 }
  369.                 break;
  370.             case 17:
  371.                 $message_condition .= "dbo._afaire " . $and_or . " ";
  372.                 if ($and_or === "AND") {
  373.                     $message_scenario .= $prl_name . " Température > " . $value . " et ";
  374.                 } else {
  375.                     $message_scenario .= $prl_name . " Température > " . $value . " ou ";
  376.                 }
  377.                 break;
  378.             case 18:
  379.                 $message_condition .= "dbo._afaire " . $and_or . " ";
  380.                 if ($and_or === "AND") {
  381.                     $message_scenario .= $prl_name . " Température ressentie < " . $value . " et ";
  382.                 } else {
  383.                     $message_scenario .= $prl_name . " Température ressentie < " . $value . " ou ";
  384.                 }
  385.                 break;
  386.             case 19:
  387.                 $message_condition .= "dbo._afaire " . $and_or . " ";
  388.                 if ($and_or === "AND") {
  389.                     $message_scenario .= $prl_name . " Température ressentie > " . $value . " et ";
  390.                 } else {
  391.                     $message_scenario .= $prl_name . " Température ressentie > " . $value . " ou ";
  392.                 }
  393.                 break;
  394.             case 20:
  395.                 $message_condition .= "dbo.lsk_etat_retarde" . "(" . $idPrl . ") = 0 " . $and_or . " ";
  396.                 if ($and_or === "AND") {
  397.                     $message_scenario .= $prl_name . " non retardé et ";
  398.                 } else {
  399.                     $message_scenario .= $prl_name . " non retardé ";
  400.                 }
  401.                 break;
  402.         }
  403.  
  404.         return array($message_scenario, $message_condition);
  405.  
  406.     }
  407.  
  408.  
  409.     /*
  410.      * Function qui permet de formatter le texte comme on le souhaite.
  411.      *  -> On gère la condition SQL avec les différentes valeurs, et les différentes fonctions SQL.
  412.      *  -> On gère l'affichage du scénario pour la page qui génère tous les messages.
  413.      */
  414.     /*function getScenario($idPrl, $prl_operator, $and_or, $value, $name, $group){
  415.         $texte_a_afficher = "";
  416.         $texte_scenario = "";
  417.  
  418.         $i = 1;
  419.  
  420.         if ($i === $group){
  421.             $texte_a_afficher .= "(";
  422.             switch ($prl_operator) {
  423.                 case "ouvert":
  424.                     $texte_a_afficher .= " dbo.lsk_etat" . "(" . $idPrl . ") = 1 " . $and_or;
  425.                     $texte_scenario .= $name . " O + ";
  426.                     break;
  427.                 case "en_attente_d_ouverture":
  428.                     $texte_a_afficher .= " dbo.lsk_etat" . "(" . $idPrl . ") = 2 " . $and_or;
  429.                     $texte_scenario .= $name . " P + ";
  430.                     break;
  431.                 case "ferme(e)":
  432.                     $texte_a_afficher .= " dbo.lsk_etat" . "(" . $idPrl . ") = 3 " . $and_or;
  433.                     $texte_scenario .= $name . " F + ";
  434.                     break;
  435.                 case "retarde(e)":
  436.                     $texte_a_afficher .= " dbo.lsk_etat_retarde" . "(" . $idPrl . ") = 1 " . $and_or;
  437.                     $texte_scenario .= $name . " Retardé + ";
  438.                     break;
  439.                 case "arret_momentane":
  440.                     $texte_a_afficher .= " dbo.lsk_etat_arret_moment" . "(" . $idPrl . ") = 1 " . $and_or;
  441.                     $texte_scenario .= $name . " Arrêt momentané + ";
  442.                     break;
  443.                 case "prevision_non_decale":
  444.                     $texte_a_afficher .= " dbo.lsk_etat_P_non_decale" . "(" . $idPrl . ") = 1 " . $and_or;
  445.                     $texte_scenario .= $name . " P non décalé + ";
  446.                     break;
  447.                 case "ferme_ou_prevision":
  448.                     $texte_a_afficher .= " dbo.lsk_etat_F_P" . "(" . $idPrl . ") = 1 " . $and_or;
  449.                     $texte_scenario .= $name . " F/P + ";
  450.                     break;
  451.                 case "temps_attente_inferieur":
  452.                     $texte_a_afficher .= " dbo.lsk_attente" . "(" . $idPrl . ") <  " . $value . " " . $and_or;
  453.                     $texte_scenario .= $name . " Attente < " . $value . " + ";
  454.                     break;
  455.                 case "temps_attente_inferieur_ou_egal":
  456.                     $texte_a_afficher .= " dbo.lsk_attente" . "(" . $idPrl . ") <=  " . $value . " " . $and_or;
  457.                     $texte_scenario .= $name . " Attente <= " . $value . " + ";
  458.                     break;
  459.                 case "temps_attente_superieur":
  460.                     $texte_a_afficher .= " dbo.lsk_attente" . "(" . $idPrl . ") >  " . $value . " " . $and_or;
  461.                     $texte_scenario .= $name . " Attente > " . $value . " + ";
  462.                     break;
  463.                 case "temps_attente_superieur_ou_egal":
  464.                     $texte_a_afficher .= " dbo.lsk_attente" . "(" . $idPrl . ") >=  " . $value . " " . $and_or;
  465.                     $texte_scenario .= $name . " Attente > " . $value . " + ";
  466.                     break;
  467.                 case "temps_attente_entre":
  468.                     $texte_a_afficher .= " dbo.lsk_attente" . "(" . $idPrl . ") <  " . $value . " " . $and_or;
  469.                     $texte_scenario .= $name . " Attente entre " . $value . " & " . $value . " + ";
  470.                     break;
  471.                 case "vent_inferieur":
  472.                     $texte_a_afficher .= " dbo.a_faire " . $and_or;
  473.                     $texte_scenario .= $name . " Vent < " . $value . " + ";
  474.                     break;
  475.                 case "vent_superieur":
  476.                     $texte_a_afficher .= " dbo._afaire " . $and_or;
  477.                     $texte_scenario .= $name . " Vent > " . $value . " + ";
  478.                     break;
  479.                 case "risque_avalanche":
  480.                     $texte_a_afficher .= " dbo._afaire " . $and_or;
  481.                     $texte_scenario .= $name . " Avalanche > " . $value . " + ";
  482.                     break;
  483.                 case "temperature_inferieure":
  484.                     $texte_a_afficher .= " dbo._afaire " . $and_or;
  485.                     $texte_scenario .= $name . " A faire " . " + ";
  486.                     break;
  487.                 case "temperature_superieure":
  488.                     $texte_a_afficher .= " dbo._afaire " . $and_or;
  489.                     $texte_scenario .= $name . " A faire " . " + ";
  490.                     break;
  491.                 case "temperature_ressentie_inferieure":
  492.                     $texte_a_afficher .= " dbo._afaire " . $and_or;
  493.                     $texte_scenario .= $name . " A faire " . " + ";
  494.                     break;
  495.                 case "temperature_ressentie_superieure":
  496.                     $texte_a_afficher .= " dbo._afaire " . $and_or;
  497.                     $texte_scenario .= $name . " A faire " . " + ";
  498.                     break;
  499.                 case "non_retarde(e)":
  500.                     $texte_a_afficher .= " dbo.lsk_etat_retarde" . "(" . $idPrl . ") = 0 " . $and_or;
  501.                     $texte_scenario .= $name . " A faire " . " + ";
  502.                     break;
  503.             }
  504.         }
  505.         else{
  506.             $i = $i++;
  507.         }
  508.         return array($texte_a_afficher, $texte_scenario);
  509.     }*/
  510.  
  511.  
  512.     $media = $_POST['media'];
  513.     $medias = (explode(",", $media));
  514.     for ($nb_media = 0; $nb_media < count($medias); $nb_media++) {
  515.         $medias[$nb_media] = explode("$$$", $medias[$nb_media]);
  516.         $nom_media = $medias[$nb_media][0];
  517.         $resolution_media = $medias[$nb_media][1];
  518.  
  519.         $id_media = $manager_media->getId($nom_media, $resolution_media);
  520.         $manager_conditions->add_media_conditions($conditions, $id_media[0]);
  521.     }
  522. }
  523. //var_dump($_GET);
  524.  
  525. /*if ($_GET['id_cond']){
  526.  
  527.     $condition = new conditions([]);
  528.  
  529.     $condition->setId($_GET['id_cond']);
  530.     $condition->setNom('');
  531.     $condition->setNumero_condition($_GET['numCond']);
  532.     $condition->setIdStation(1);
  533.     $condition->setTexte_fr($_GET['textFr']);
  534.     $condition->setTexte_en($_GET['textEn']);
  535.     $condition->setPriorite($_GET['priority']);
  536.     $condition->setCouleur_fond($_GET['background']);
  537.     $condition->setCouleur_texte($_GET['color']);
  538.     $condition->setLogo($_GET['logo']);
  539.     $condition->setVerification(1);
  540.  
  541.     $manager_conditions->update($condition);
  542.  
  543.     $manager_conditions->deleteIdPRL($_GET['id_cond']);
  544.     $manager_conditions->deleteIdZoneMeteo($_GET['id_cond']);
  545.     $manager_conditions->deleteIdMedia($_GET['id_cond']);
  546.  
  547.     $texte_scenario = "";
  548.     $texte_a_afficher = "SELECT count(*) AS valeur FROM leanski WHERE";
  549.  
  550.  
  551.     for ($i = 0; $i < count($_GET); $i++) {
  552.  
  553.         if (isset($_GET['builder_rule_' . $i . '_filter'])) {
  554.             if (isset($_GET['builder_rule_' . $i . '_filter'])) {
  555.                 $prl_id = $_GET['builder_rule_' . $i . '_filter'];
  556.                 $prl_id = str_replace("999", ",", $prl_id);
  557.                 if (isset($_GET['builder_rule_' . $i . '_operator'])) {
  558.                     $prl_operator = $_GET['builder_rule_' . $i . '_operator'];
  559.                 }
  560.  
  561.                 if (isset($_GET['builder_group_' . $i . '_cond'])) {
  562.                     $prl_conjonction = $_GET['builder_group_' . $i . '_cond'];
  563.                 }else{
  564.                     $prl_conjonction = "AND";
  565.                 }
  566.                 if (isset($_GET['builder_rule_' . $i . '_value_0'])) {
  567.                     $prl_value = $_GET['builder_rule_' . $i . '_value_0'];
  568.                 }
  569.  
  570.                 $getIdPRL = explode(',', $prl_id);
  571.  
  572.                 if (count($getIdPRL) === 2) {
  573.                     $ent_id = $getIdPRL[0];
  574.                     $obs_id = $getIdPRL[1];
  575.                     $conditions = $_GET['id_cond'];
  576.                     $zone_meteo = $manager_meteo->getID($ent_id, $obs_id)[0];
  577.                     $etat = $manager_etat->getID($prl_operator)[0];
  578.                     $and_or = $prl_conjonction;
  579.                     $name = $manager_meteo->getName($ent_id, $obs_id);
  580.  
  581.                     $manager_conditions->add_zone_meteo($conditions, $zone_meteo, $etat, $and_or, $prl_value);
  582.                 } else {
  583.                     $ent_id = $getIdPRL[0];
  584.                     $sct_id = $getIdPRL[1];
  585.                     $pag_id = $getIdPRL[2];
  586.                     $prl_id2 = $getIdPRL[3];
  587.                     $conditions = $_GET['id_cond'];
  588.                     $prl = $manager_prl->getID($ent_id, $sct_id, $pag_id, $prl_id2)[0];
  589.                     $etat = $manager_etat->getID($prl_operator)[0];
  590.                     $and_or = $prl_conjonction;
  591.                     $name = $manager_prl->getName($ent_id, $sct_id, $pag_id, $prl_id2);
  592.  
  593.                     $manager_conditions->add_prl_conditions($conditions, $prl, $etat, $and_or, $prl_value);
  594.                 }
  595.  
  596.  
  597.                 switch ($prl_operator) {
  598.                     case "ouvert":
  599.                         $texte_a_afficher .= " dbo.lsk_etat" . "(" . $prl_id . ") = 1 " . $prl_conjonction;
  600.                         $texte_scenario .= $name[0] . " O + ";
  601.                         break;
  602.                     case "en_attente_d_ouverture":
  603.                         $texte_a_afficher .= " dbo.lsk_etat" . "(" . $prl_id . ") = 2 " . $prl_conjonction;
  604.                         $texte_scenario .= $name[0] . " P + ";
  605.                         break;
  606.                     case "ferme(e)":
  607.                         $texte_a_afficher .= " dbo.lsk_etat" . "(" . $prl_id . ") = 3 " . $prl_conjonction;
  608.                         $texte_scenario .= $name[0] . " F + ";
  609.                         break;
  610.                     case "retarde(e)":
  611.                         $texte_a_afficher .= " dbo.lsk_etat_retarde" . "(" . $prl_id . ") = 1 " . $prl_conjonction;
  612.                         $texte_scenario .= $name[0] . " Retardé + ";
  613.                         break;
  614.                     case "arret_momentane":
  615.                         $texte_a_afficher .= " dbo.lsk_etat_arret_moment" . "(" . $prl_id . ") = 1 " . $prl_conjonction;
  616.                         $texte_scenario .= $name[0] . " Arrêt momentané + ";
  617.                         break;
  618.                     case "prevision_non_decale":
  619.                         $texte_a_afficher .= " dbo.lsk_etat_P_non_decale" . "(" . $prl_id . ") = 1 " . $prl_conjonction;
  620.                         $texte_scenario .= $name[0] . " P non décalé + ";
  621.                         break;
  622.                     case "ferme_ou_prevision":
  623.                         $texte_a_afficher .= " dbo.lsk_etat_F_P" . "(" . $prl_id . ") = 1 " . $prl_conjonction;
  624.                         $texte_scenario .= $name[0] . " F/P + ";
  625.                         break;
  626.                     case "temps_attente_inferieur":
  627.                         $texte_a_afficher .= " dbo.lsk_attente" . "(" . $prl_id . ") <  " . $prl_value . " " . $prl_conjonction;
  628.                         $texte_scenario .= $name[0] . " Attente < " . $prl_value . " + ";
  629.                         break;
  630.                     case "temps_attente_inferieur_ou_egal":
  631.                         $texte_a_afficher .= " dbo.lsk_attente" . "(" . $prl_id . ") <=  " . $prl_value . " " . $prl_conjonction;
  632.                         $texte_scenario .= $name[0] . " Attente <= " . $prl_value . " + ";
  633.                         break;
  634.                     case "temps_attente_superieur":
  635.                         $texte_a_afficher .= " dbo.lsk_attente" . "(" . $prl_id . ") >  " . $prl_value . " " . $prl_conjonction;
  636.                         $texte_scenario .= $name[0] . " Attente > " . $prl_value . " + ";
  637.                         break;
  638.                     case "temps_attente_superieur_ou_egal":
  639.                         $texte_a_afficher .= " dbo.lsk_attente" . "(" . $prl_id . ") >=  " . $prl_value . " " . $prl_conjonction;
  640.                         $texte_scenario .= $name[0] . " Attente > " . $prl_value . " + ";
  641.                         break;
  642.                     case "temps_attente_entre":
  643.                         $texte_a_afficher .= " dbo.lsk_attente" . "(" . $prl_id . ") <  " . $prl_value . " " . $prl_conjonction;
  644.                         $texte_scenario .= $name[0] . " Attente entre " . $prl_value . " & " . $prl_value . " + ";
  645.                         break;
  646.                     case "vent_inferieur":
  647.                         $texte_a_afficher .= " dbo.a_faire " . $prl_conjonction;
  648.                         $texte_scenario .= $name[0] . " Vent < " . $prl_value . " + ";
  649.                         break;
  650.                     case "vent_superieur":
  651.                         $texte_a_afficher .= " dbo._afaire " . $prl_conjonction;
  652.                         $texte_scenario .= $name[0] . " Vent > " . $prl_value . " + ";
  653.                         break;
  654.                     case "risque_avalanche":
  655.                         $texte_a_afficher .= " dbo._afaire " . $prl_conjonction;
  656.                         $texte_scenario .= $name[0] . " Avalanche > " . $prl_value . " + ";
  657.                         break;
  658.                     case "temperature_inferieure":
  659.                         $texte_a_afficher .= " dbo._afaire " . $prl_conjonction;
  660.                         $texte_scenario .= $name[0] . " A faire " . " + ";
  661.                         break;
  662.                     case "temperature_superieure":
  663.                         $texte_a_afficher .= " dbo._afaire " . $prl_conjonction;
  664.                         $texte_scenario .= $name[0] . " A faire " . " + ";
  665.                         break;
  666.                     case "temperature_ressentie_inferieure":
  667.                         $texte_a_afficher .= " dbo._afaire " . $prl_conjonction;
  668.                         $texte_scenario .= $name[0] . " A faire " . " + ";
  669.                         break;
  670.                     case "temperature_ressentie_superieure":
  671.                         $texte_a_afficher .= " dbo._afaire " . $prl_conjonction;
  672.                         $texte_scenario .= $name[0] . " A faire " . " + ";
  673.                         break;
  674.                     case "non_retarde(e)":
  675.                         $texte_a_afficher .= " dbo.lsk_etat_retarde" . "(" . $prl_id . ") = 0 " . $prl_conjonction;
  676.                         $texte_scenario .= $name[0] . " A faire " . " + ";
  677.                         break;
  678.                 }
  679.  
  680.             }
  681.  
  682.         }
  683.     }
  684.  
  685.  
  686.     $listMedia = $manager_media->getList();
  687.     for ($liste = 0; $liste < count($listMedia); $liste++) {
  688.         $media = $listMedia[$liste]->nom() . $listMedia[$liste]->resolution();
  689.         $media = str_replace(" ", "_", $media);
  690.         if (isset($_GET[$media])) {
  691.  
  692.             $nom = $listMedia[$liste]->nom();
  693.             $resolution = $listMedia[$liste]->resolution();
  694.             $getId = $manager_media->getId($nom, $resolution);
  695.             $conditions = $manager_conditions->getLastID()['MAX(id)'];
  696.             $id_media = $getId[0];
  697.  
  698.             $manager_conditions->add_media_conditions($conditions, $id_media);
  699.         }
  700.     }
  701.  
  702.     $search = 'AND';
  703.     $replace = '';
  704.  
  705.     $texte_condition = strrev(implode(strrev($replace), explode(strrev($search), strrev($texte_a_afficher), 2)));
  706.  
  707.     $scenario = strrev(implode(strrev(''), explode(strrev('+'), strrev($texte_scenario), 2)));
  708.  
  709.     echo $texte_condition;
  710.     echo $scenario;
  711.  
  712.     $manager_conditions->updateScenario($scenario, $texte_condition, $_GET['id_cond']);
  713.     echo "modifiée";
  714. }
  715. else {
  716.     $condition = new conditions([]);
  717.  
  718.     $condition->setNom('');
  719.     $condition->setNumero_condition($_GET['numCond']);
  720.     $condition->setIdStation(1);
  721.     $condition->setTexte_fr($_GET['textFr']);
  722.     $condition->setTexte_en($_GET['textEn']);
  723.     $condition->setPriorite($_GET['priority']);
  724.     $condition->setCouleur_fond($_GET['background']);
  725.     $condition->setCouleur_texte($_GET['color']);
  726.     $condition->setLogo($_GET['logo']);
  727.  
  728.  
  729.     var_dump($_GET);
  730.  
  731.     // TODO $manager_conditions->add_conditions($condition);
  732.  
  733.  
  734.  
  735.     $array_conditions = $_POST['id'];
  736.  
  737.  
  738.  
  739.     $texte_scenario = "";
  740.     $texte_a_afficher = "SELECT count(*) AS valeur FROM leanski WHERE";
  741.  
  742.  
  743.     for ($i = 0; $i < count($_GET); $i++) {
  744.             if (isset($_GET['builder_rule_' . $i . '_filter'])) {
  745.                 $prl_id = $_GET['builder_rule_' . $i . '_filter'];
  746.                 $prl_id = str_replace("999", ",", $prl_id);
  747.                 if (isset($_GET['builder_rule_' . $i . '_operator'])) {
  748.                     $prl_operator = $_GET['builder_rule_' . $i . '_operator'];
  749.                 }
  750.                 if (isset($_GET['builder_group_' . $i . '_cond'])) {
  751.                     $prl_conjonction = $_GET['builder_group_' . $i . '_cond'];
  752.                 }
  753.                 if (isset($_GET['builder_rule_' . $i . '_value_0'])) {
  754.                     $prl_value = $_GET['builder_rule_' . $i . '_value_0'];
  755.                 }
  756.  
  757.                 $getIdPRL = explode(',', $prl_id);
  758.  
  759.                 if (count($getIdPRL) === 2) {
  760.                     $ent_id = $getIdPRL[0];
  761.                     $obs_id = $getIdPRL[1];
  762.                     $conditions = $manager_conditions->getLastID()['MAX(id)'];
  763.                     $zone_meteo = $manager_meteo->getID($ent_id, $obs_id)[0];
  764.                     $etat = $manager_etat->getID($prl_operator)[0];
  765.                     $and_or = $prl_conjonction;
  766.                     $name = $manager_meteo->getName($ent_id, $obs_id);
  767.  
  768.                     // TODO $manager_conditions->add_zone_meteo($conditions, $zone_meteo, $etat, $and_or, $prl_value);
  769.                 } else {
  770.                     $ent_id = $getIdPRL[0];
  771.                     $sct_id = $getIdPRL[1];
  772.                     $pag_id = $getIdPRL[2];
  773.                     $prl_id2 = $getIdPRL[3];
  774.                     $conditions = $manager_conditions->getLastID()['MAX(id)'];
  775.                     $prl = $manager_prl->getID($ent_id, $sct_id, $pag_id, $prl_id2)[0];
  776.                     $etat = $manager_etat->getID($prl_operator)[0];
  777.                     $and_or = $prl_conjonction;
  778.                     $name = $manager_prl->getName($ent_id, $sct_id, $pag_id, $prl_id2);
  779.  
  780.                     // TODO $manager_conditions->add_prl_conditions($conditions, $prl, $etat, $and_or, $prl_value);
  781.                 }
  782.  
  783.  
  784.                 switch ($prl_operator) {
  785.                     case "ouvert":
  786.                         $texte_a_afficher .= " dbo.lsk_etat" . "(" . $prl_id . ") = 1 " . $prl_conjonction;
  787.                         $texte_scenario .= $name[0] . " O + ";
  788.                         break;
  789.                     case "en_attente_d_ouverture":
  790.                         $texte_a_afficher .= " dbo.lsk_etat" . "(" . $prl_id . ") = 2 " . $prl_conjonction;
  791.                         $texte_scenario .= $name[0] . " P + ";
  792.                         break;
  793.                     case "ferme(e)":
  794.                         $texte_a_afficher .= " dbo.lsk_etat" . "(" . $prl_id . ") = 3 " . $prl_conjonction;
  795.                         $texte_scenario .= $name[0] . " F + ";
  796.                         break;
  797.                     case "retarde(e)":
  798.                         $texte_a_afficher .= " dbo.lsk_etat_retarde" . "(" . $prl_id . ") = 1 " . $prl_conjonction;
  799.                         $texte_scenario .= $name[0] . " Retardé + ";
  800.                         break;
  801.                     case "arret_momentane":
  802.                         $texte_a_afficher .= " dbo.lsk_etat_arret_moment" . "(" . $prl_id . ") = 1 " . $prl_conjonction;
  803.                         $texte_scenario .= $name[0] . " Arrêt momentané + ";
  804.                         break;
  805.                     case "prevision_non_decale":
  806.                         $texte_a_afficher .= " dbo.lsk_etat_P_non_decale" . "(" . $prl_id . ") = 1 " . $prl_conjonction;
  807.                         $texte_scenario .= $name[0] . " P non décalé + ";
  808.                         break;
  809.                     case "ferme_ou_prevision":
  810.                         $texte_a_afficher .= " dbo.lsk_etat_F_P" . "(" . $prl_id . ") = 1 " . $prl_conjonction;
  811.                         $texte_scenario .= $name[0] . " F/P + ";
  812.                         break;
  813.                     case "temps_attente_inferieur":
  814.                         $texte_a_afficher .= " dbo.lsk_attente" . "(" . $prl_id . ") <  " . $prl_value . " " . $prl_conjonction;
  815.                         $texte_scenario .= $name[0] . " Attente < " . $prl_value . " + ";
  816.                         break;
  817.                     case "temps_attente_inferieur_ou_egal":
  818.                         $texte_a_afficher .= " dbo.lsk_attente" . "(" . $prl_id . ") <=  " . $prl_value . " " . $prl_conjonction;
  819.                         $texte_scenario .= $name[0] . " Attente <= " . $prl_value . " + ";
  820.                         break;
  821.                     case "temps_attente_superieur":
  822.                         $texte_a_afficher .= " dbo.lsk_attente" . "(" . $prl_id . ") >  " . $prl_value . " " . $prl_conjonction;
  823.                         $texte_scenario .= $name[0] . " Attente > " . $prl_value . " + ";
  824.                         break;
  825.                     case "temps_attente_superieur_ou_egal":
  826.                         $texte_a_afficher .= " dbo.lsk_attente" . "(" . $prl_id . ") >=  " . $prl_value . " " . $prl_conjonction;
  827.                         $texte_scenario .= $name[0] . " Attente > " . $prl_value . " + ";
  828.                         break;
  829.                     case "temps_attente_entre":
  830.                         $texte_a_afficher .= " dbo.lsk_attente" . "(" . $prl_id . ") <  " . $prl_value . " " . $prl_conjonction;
  831.                         $texte_scenario .= $name[0] . " Attente entre " . $prl_value . " & " . $prl_value . " + ";
  832.                         break;
  833.                     case "vent_inferieur":
  834.                         $texte_a_afficher .= " dbo.a_faire " . $prl_conjonction;
  835.                         $texte_scenario .= $name[0] . " Vent < " . $prl_value . " + ";
  836.                         break;
  837.                     case "vent_superieur":
  838.                         $texte_a_afficher .= " dbo._afaire " . $prl_conjonction;
  839.                         $texte_scenario .= $name[0] . " Vent > " . $prl_value . " + ";
  840.                         break;
  841.                     case "risque_avalanche":
  842.                         $texte_a_afficher .= " dbo._afaire " . $prl_conjonction;
  843.                         $texte_scenario .= $name[0] . " Avalanche > " . $prl_value . " + ";
  844.                         break;
  845.                     case "temperature_inferieure":
  846.                         $texte_a_afficher .= " dbo._afaire " . $prl_conjonction;
  847.                         $texte_scenario .= $name[0] . " A faire " . " + ";
  848.                         break;
  849.                     case "temperature_superieure":
  850.                         $texte_a_afficher .= " dbo._afaire " . $prl_conjonction;
  851.                         $texte_scenario .= $name[0] . " A faire " . " + ";
  852.                         break;
  853.                     case "temperature_ressentie_inferieure":
  854.                         $texte_a_afficher .= " dbo._afaire " . $prl_conjonction;
  855.                         $texte_scenario .= $name[0] . " A faire " . " + ";
  856.                         break;
  857.                     case "temperature_ressentie_superieure":
  858.                         $texte_a_afficher .= " dbo._afaire " . $prl_conjonction;
  859.                         $texte_scenario .= $name[0] . " A faire " . " + ";
  860.                         break;
  861.                     case "non_retarde(e)":
  862.                         $texte_a_afficher .= " dbo.lsk_etat_retarde" . "(" . $prl_id . ") = 0 " . $prl_conjonction;
  863.                         $texte_scenario .= $name[0] . " A faire " . " + ";
  864.                         break;
  865.                 }
  866.  
  867.             }
  868.     }
  869.  
  870.  
  871.     $listMedia = $manager_media->getList();
  872.     for ($liste = 0; $liste < count($listMedia); $liste++) {
  873.         $media = $listMedia[$liste]->nom() . $listMedia[$liste]->resolution();
  874.         $media = str_replace(" ", "_", $media);
  875.         if (isset($_GET[$media])) {
  876.  
  877.             $nom = $listMedia[$liste]->nom();
  878.             $resolution = $listMedia[$liste]->resolution();
  879.             $getId = $manager_media->getId($nom, $resolution);
  880.             $conditions = $manager_conditions->getLastID()['MAX(id)'];
  881.             $id_media = $getId[0];
  882.  
  883.             // TODO $manager_conditions->add_media_conditions($conditions, $id_media);
  884.         }
  885.     }
  886.  
  887.  
  888.     $scenario = strrev(implode(strrev(''), explode(strrev('+'), strrev($texte_scenario), 2)));
  889.  
  890.  
  891.     $TablastId = $manager_conditions->getLastID();
  892.     $lastId = $TablastId["MAX(id)"];
  893.  
  894.  
  895.     if ($scenario != "") {
  896.         // TODO $manager_conditions->updateScenario($scenario, $texte_condition, $lastId);
  897.     } else {
  898.         // TODO $manager_conditions->deleteId($lastId);
  899.         // TODO $manager_conditions->autoIncrement($lastId);
  900.         // TODO header('Location: http://leanski_interface.loc/index.php?addConditionEchec=true');
  901.     }
  902. }
  903. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement