start(); /// TODO try to remove them if possible include_once (GLPI_ROOT . "/inc/db.function.php"); // Standard includes include_once (GLPI_ROOT . "/inc/config.php"); require_once '../functionsophalglpi.php'; Session::checkLoginUser(); //disbled errors =>pour le variable res (Ajax) ini_set('display_errors', 0); global $DB; function ActivePayrollPeriode($date) { global $DB; // Prepare the SQL query to get the latest payroll period $query = $DB->prepare("SELECT start_date, end_date FROM payroll_period where is_deleted = FALSE ORDER BY year DESC, month DESC LIMIT 1"); $query->execute(); $query->bind_result($start_date, $end_date); $query->fetch(); $query->close(); // If no active payroll period, return false if (!$start_date || !$end_date) { return false; } // Convert dates to the same format for comparison $start_date = date("Y-m-d", strtotime($start_date)); $end_date = date("Y-m-d", strtotime($end_date)); $check_date = date("Y-m-d", strtotime($date)); // Check if the given date is within the payroll period return ($check_date >= $start_date && $check_date <= $end_date); } $name = ""; $table = ""; $isWorkOrder = false; $isBLAC = false; $isBCPROD = false; $isBLMP = false; $last_generated_Sequence_bl = last_generated_Sequence('bon de livraison ac')+1 ; $last_generated_Sequence_mp = last_generated_Sequence('bon de livraison mp')+1 ; $last_generated_Sequence_bc = last_generated_Sequence('Bon De Commande Production')+1 ; $last_generated_Sequence_wo = last_generated_Sequence('work order')+1 ; $unite = ""; if( isset($_SESSION['modele'])){ switch ($_SESSION['modele']) { case 0: //BULLETIN DE SORTIE // Get the submitted date $bs_date_sortir = $_POST['bs_date_sortir']; // Get the current date in 'Y-m-d' format $current_date = date('Y-m-d'); if ($bs_date_sortir < $current_date) { $_SESSION["bs_date_sortir"] = $bs_date_sortir; Session::addMessageAfterRedirect(__('VOUS N\'ETES PAS PERMIS'),false, ERROR); echo json_encode([ 'is_valid' => false, 'modele' => $_SESSION['modele'] ]); return ; } unset($_SESSION["bs_date_sortir"]); $name = "Bulletin de sortie"; $table='<table style="height: 136px; width: 100%; border-collapse: collapse;" border="1" cellpadding="5"><tbody><tr style="height: 17px;"><td style="width: 49.1195%; height: 17px;"><strong> Matricule :</strong></td><td style="width: 50.8805%; height: 17px;">'.$_POST['matricule'].'</td></tr><tr style="height: 17px;"><td style="width: 49.1195%; height: 17px;"><strong> Fonction :</strong></td><td style="width: 50.8805%; height: 17px;">'.$_POST['fonction'].'</td></tr><tr class="rowHover" style="height: 17px;"><td style="width: 20%; height: 17px;"><strong> Structure :</strong></td><td style="width: 50.8805%; height: 17px;">'.$_POST['structure'].'</td></tr><tr style="height: 17px;"><td style="width: 49.1195%; height: 17px;"><strong> Est autorisé (e) de sortir le : </strong></td><td style="width: 50.8805%; height: 17px;">'.$_POST['bs_date_sortir'].'</td></tr><tr style="height: 17px;"><td style="width: 49.1195%; height: 17px;"><strong> A : </strong></td><td style="width: 50.8805%; height: 17px;">'.$_POST['bs_heure'].'</td></tr><tr style="height: 17px;"><td style="width: 49.1195%; height: 17px;"><strong> Pour affaire Personnelle :</strong></td><td style="width: 50.8805%; height: 17px;">'.$_POST['bs_affaire_personnelle'].'</td></tr></tbody></table>'; break; case 1://REQUETE ADMINISTRATIVE $name = "Requete Administrative"; $table = '<table style="border-collapse: collapse; width: 100%; height: 85px;" border="1"><tbody><tr style="height: 17px;"><td style="width: 33.187%; height: 17px;"><strong> Matricule :</strong></td><td style="width: 66.813%; height: 17px;">'.$_POST['matricule'].'</td></tr><tr style="height: 17px;"><td style="width: 33.187%; height: 17px;"><strong> Fonction :</strong></td><td style="width: 66.813%; height: 17px;">'.$_POST['fonction'].'</td></tr><tr class="rowHover" style="height: 17px;"><td style="width: 33.187%; height: 17px;"><strong> Structure :</strong></td><td style="width: 66.813%; height: 17px;">'.$_POST['structure'].'</td></tr><tr style="height: 17px;"><td style="width: 33.187%; height: 17px;"><strong> Demande :</strong></td><td style="width: 66.813%; height: 17px;">'.$_POST['ra_demande'].'</td></tr><tr style="height: 17px;"><td style="width: 33.187%; height: 17px;"><strong> Préciser :</strong></td><td style="width: 66.813%; height: 17px;">'.$_POST['ra_autres'].'</td></tr></tbody></table>'; break; case 2://DEMANDE DE CONGE // Get number de jours $dc_nbr_jour = $_POST['dc_nbr_jour']; if ($dc_nbr_jour < 7) { Session::addMessageAfterRedirect(__('VOUS N\'ETES PAS PERMIS'),false, ERROR); echo json_encode([ 'is_valid' => false, 'modele' => $_SESSION['modele'] ]); return ; } $name = "Demande de congé"; $table = '<table style="border-collapse: collapse; width: 100%; height: 136px;" border="1"><tbody><tr style="height: 17px;"><td style="width: 39.376%; height: 17px;"><strong> Matricule :</strong></td><td style="width: 60.624%; height: 17px;"> '.$_POST['matricule'].'</td></tr><tr style="height: 17px;"><td style="width: 39.376%; height: 17px;"><strong> Fonction :</strong></td><td style="width: 60.624%; height: 17px;"> '.$_POST['fonction'].'</td></tr><tr style="height: 17px;"><td style="width: 39.376%; height: 17px;"><strong> Structure :</strong></td><td style="width: 60.624%; height: 17px;"> '.$_POST['structure'].'</td></tr><tr style="height: 17px;"><td style="width: 39.376%; height: 17px;"><strong> Nombre de jours :</strong></td><td style="width: 60.624%; height: 17px;"> '.$_POST['dc_nbr_jour'].'</td></tr><tr class="rowHover" style="height: 17px;"><td style="width: 20%; height: 17px;"><strong> Exercice : </strong></td><td style="width: 60.624%; height: 17px;"> '.$_POST['dc_exercice'].'</td></tr><tr style="height: 17px;"><td style="width: 39.376%; height: 17px;"><strong> Date de Départ : </strong></td><td style="width: 60.624%; height: 17px;"> '.$_POST['dc_date_depart'].'</td></tr><tr style="height: 17px;"><td style="width: 39.376%; height: 17px;"><strong> Intérimaire :</strong></td><td style="width: 60.624%; height: 17px;"> '.$_POST['dc_interimaire'].'</td></tr><tr style="height: 17px;"><td style="width: 39.376%; height: 17px;"><strong> Adresse durant le Congé :</strong></td><td style="width: 60.624%; height: 17px;"> '.$_POST['dc_adresse'].'</td></tr></tbody></table>'; break; case 3://Autorisation d'absence // Get the submitted date $aa_date_absenter = $_POST['aa_date_absenter']; // Get the current date in 'Y-m-d' format $current_date = date('Y-m-d'); if ($aa_date_absenter < $current_date) { $_SESSION["aa_date_absenter"] = $aa_date_absenter; Session::addMessageAfterRedirect(__('VOUS N\'ETES PAS PERMIS'),false, ERROR); echo json_encode([ 'is_valid' => false, 'modele' => $_SESSION['modele'] ]); return ; } unset($_SESSION["aa_date_absenter"]); $name = "Autorisation d'absence"; $table ='Matricule : '.$_POST['matricule'].'
Fonction : '.$_POST['fonction'].'
Structure : '.$_POST['structure'].'
Est autorisé (e) à s'absenter la journée du : '.$_POST['aa_date_absenter'].'
Commentaire : '.$_POST['aa_commentaire'].''; break; case 4://AUTORISATION D'ENTREE // Get the submitted date $ae_date_reprendre = $_POST['ae_date_reprendre']; // Get the current date in 'Y-m-d' format $current_date = date('Y-m-d'); if ($ae_date_reprendre < $current_date) { $_SESSION["ae_date_reprendre"] = $ae_date_reprendre; Session::addMessageAfterRedirect(__('VOUS N\'ETES PAS PERMIS'),false, ERROR); echo json_encode([ 'is_valid' => false, 'modele' => $_SESSION['modele'] ]); return ; } unset($_SESSION["ae_date_reprendre"]); $name = "Autorisation d'entree"; $table ='Matricule : '.$_POST['matricule'].'
Fonction : '.$_POST['fonction'].'
Structure : '.$_POST['structure'].'
Est autorisé (e) de reprendre à : '.$_POST['ae_date_reprendre'].'
Commentaire : '.$_POST['ae_commentaire']; break; case 5://DEMANDE DE RECRUTEMENT $name = "DEMANDE DE RECRUTEMENT"; $table ='matricule : '.$_POST['matricule'].'
fonction : '.$_POST['fonction'].'
structure : '.$_POST['structure'].'

description : '.$_POST['description']; break; case 6://Heures supplémentaires // Get the submitted date $date_req = $_POST['date_req']; $current_date = date('Y-m-d'); // Calculate the date two days ago from today $two_days_ago = date('Y-m-d', strtotime('-2 days', strtotime($current_date))); if ($date_req < $two_days_ago) { $_SESSION["date_req"] = $date_req; $_SESSION["mot_req"] = $_POST['mot_req']; $_SESSION["heure_d"] = $_POST['heure_d']; $_SESSION["heure_f"] = $_POST['heure_f']; $_SESSION["lieu_de_travail"] = $_POST['lieu_de_travail']; Session::addMessageAfterRedirect(__('VOUS N\'ETES PAS PERMIS'),false, ERROR); echo json_encode([ 'is_valid' => false, 'modele' => $_SESSION['modele'] ]); return ; } unset($_SESSION["date_req"]); unset($_SESSION["mot_req"]); unset($_SESSION["heure_d"]); unset($_SESSION["heure_f"]); unset($_SESSION["lieu_de_travail"]); $name = "HEURES SUPPLEMENTAIRES"; $table ='matricule : '.$_POST['matricule'].'
fonction : '.$_POST['fonction'].'
structure : '.$_POST['structure'].'

Date de réquisition : '.$_POST['date_req'].'
Le motif de la réquisition : '.$_POST['mot_req'].'
Heure de début : '.$_POST['heure_d'].'
Heure de fin : '.$_POST['heure_f'].'
Lieu de travail : '.$_POST['lieu_de_travail']; break; case 7://DEMANDE ORDRE DE MISSION $name = "DEMANDE ORDRE DE MISSION"; $table ='matricule : '.$_POST['matricule'].'
fonction : '.$_POST['fonction'].'
structure : '.$_POST['structure'].'

Date de départ : '.$_POST['date_de_depart'].'
date de retour : '.$_POST['date_de_retour'].'
Destination : '.$_POST['destination'].'
Moyens de Transport : '.$_POST['moy_transport'].'
Objet de la mission : '.$_POST['ob_mission']; break; case 8://CONGE DE RECUPERATION $cr_date_debut = $_POST['cr_date_debut']; $cr_date_fin = $_POST['cr_date_fin']; $current_date = date('Y-m-d'); if ($cr_date_debut < $current_date || $cr_date_fin < $cr_date_debut) { $_SESSION["cr_date_debut"] = $cr_date_debut; $_SESSION["cr_date_fin"] = $cr_date_fin; Session::addMessageAfterRedirect(__('VOUS N\'ETES PAS PERMIS'),false, ERROR); echo json_encode([ 'is_valid' => false, 'modele' => $_SESSION['modele'] ]); return ; } unset($_SESSION["cr_date_debut"]); unset($_SESSION["cr_date_fin"]); $name = "CONGE DE RECUPERATION"; $numberOfVariables = count($_POST); $table ='matricule : '.$_POST['matricule'].'
fonction : '.$_POST['fonction'].'
structure : '.$_POST['structure'].'
De : '.$_POST['cr_date_debut'].'
A : '.$_POST['cr_date_fin'].'
commentaire : ' .$_POST['cr_date_1']; if(isset($_POST['cr_date_2']) && $_POST['cr_date_2'] != '') $table = $table.",".$_POST['cr_date_2']; if(isset($_POST['cr_date_3']) && $_POST['cr_date_3'] != '') $table = $table.",".$_POST['cr_date_3']; if(isset($_POST['cr_date_4']) && $_POST['cr_date_4'] != '') $table = $table.",".$_POST['cr_date_4']; if(isset($_POST['cr_date_5']) && $_POST['cr_date_5'] != '') $table = $table.",".$_POST['cr_date_5']; if(isset($_POST['cr_date_6']) && $_POST['cr_date_6'] != '') $table = $table.",".$_POST['cr_date_6']; break; case 9://Work Order $name = "Work Order Form"; $unite = $_POST['wo_unitNum'] ?? ''; $table ='matricule : '.$_POST['matricule'].'
fonction : '.$_POST['fonction'].'
structure : '.$_POST['structure'].'
Work order N° : '.str_pad($last_generated_Sequence_wo , 6, '0', STR_PAD_LEFT).'
Unite N°: '.$_POST['wo_unitNum'].'
From (Dept.): '.$_POST['wo_fromdep'].'
Location: '.$_POST['wo_location'].'
Operator Name: '.$_POST['wo_opname'].'
Work Order Type : '.$_POST['wo_type'].'
Equipment/machine utility Name : '.$_POST['wo_equipment'].'
Code N° : '.$_POST['wo_equipment_num'].'
Problem Type : '.$_POST['wo_prob_type'].'
Date: '.$_POST['wo_date'].'
Time : '.$_POST['wo_heure'].'
Problem Description : '.$_POST['wo_description']; $isWorkOrder = true; break; case 10: $isBLAC = true; $name = "AC : Bon De Livraison"; $table ='matricule : '.$_POST['matricule'].'
fonction : '.$_POST['fonction'].'
structure : '.$_POST['structure'].'
'.'
N° de Piece : BL AC'.str_pad($last_generated_Sequence_bl , 6, '0', STR_PAD_LEFT).'/'.(date("y")).'
Référence : '.$_POST['acbc_reference'].'

'; $nbr = count($_POST["designation"]); for($i=0;$i < $nbr ;$i++){ $table = $table.' '.$_POST['type'][$i].':
    Désignation : '. $_POST['designation'][$i].'
    N° Lot : '. $_POST['lot'][$i].'
    Quantité Livrée : '. $_POST['quantite'][$i].'
    Observations : '. $_POST['obs'][$i].'
   '. '
'; } break; case 11: $name = "Demande de congé statutaire"; $table = '<table style="border-collapse: collapse; width: 100%; height: 136px;" border="1"><tbody><tr style="height: 17px;"><td style="width: 39.376%; height: 17px;"><strong> Matricule :</strong></td><td style="width: 60.624%; height: 17px;"> '.$_POST['matricule'].'</td></tr><tr style="height: 17px;"><td style="width: 39.376%; height: 17px;"><strong> Fonction :</strong></td><td style="width: 60.624%; height: 17px;"> '.$_POST['fonction'].'</td></tr><tr style="height: 17px;"><td style="width: 39.376%; height: 17px;"><strong> Structure :</strong></td><td style="width: 60.624%; height: 17px;"> '.$_POST['structure'].'</td></tr><tr style="height: 17px;"><td style="width: 39.376%; height: 17px;"><strong> Raison : </strong></td><td style="width: 60.624%; height: 17px;"> '.explode("-",$_POST['dcs_raison'])[1].'</td></tr><tr style="height: 17px;"><td style="width: 39.376%; height: 17px;"><strong> Nombre de jours :</strong></td><td style="width: 60.624%; height: 17px;"> '.$_POST['dcs_nbr_jour'].'</td></tr><tr class="rowHover" style="height: 17px;"><td style="width: 20%; height: 17px;"><strong> Date de Départ : </strong></td><td style="width: 60.624%; height: 17px;"> '.$_POST['dcs_date_depart'].'</td></tr><tr style="height: 17px;"><td style="width: 39.376%; height: 17px;"><strong> Intérimaire :</strong></td><td style="width: 60.624%; height: 17px;"> '.$_POST['dcs_interimaire'].'</td></tr><tr style="height: 17px;"><td style="width: 39.376%; height: 17px;"><strong>'; break; case 12: $isBCPROD = true; $name = "Production : Bon De Commande"; $table ='matricule : '.$_POST['matricule'].'
fonction : '.$_POST['fonction'].'
structure : '.$_POST['structure'].'
'.'
N° de Piece : BC PROD'.str_pad($last_generated_Sequence_bc , 6, '0', STR_PAD_LEFT).'/'.(date("y")).'
Hangar : '.$_POST['acbc_reference'].'

'; $nbr = count($_POST["designation"]); for($i=0;$i < $nbr ;$i++){ $table = $table.' '.$_POST['type'][$i].':
    Désignation : '. $_POST['designation'][$i].'
    N° Lot : '. $_POST['lot'][$i].'
    Quantité Livrée : '. $_POST['quantite'][$i].'
    Observations : '. $_POST['obs'][$i].'
   '. '
'; } break; case 13: $isBLMP = true; $name = "MP : Bon De Livraison"; $table ='matricule : '.$_POST['matricule'].'
fonction : '.$_POST['fonction'].'
structure : '.$_POST['structure'].'
'.'
N° de Piece : BL '.str_pad($last_generated_Sequence_mp , 6, '0', STR_PAD_LEFT).'/'.(date("y")).'
Référence : '.$_POST['acbc_reference'].'

'; $nbr = count($_POST["designation"]); for($i=0;$i < $nbr ;$i++){ $table = $table.' '.$_POST['type'][$i].':
    Désignation : '. $_POST['designation'][$i].'
    N° Lot : '. $_POST['lot'][$i].'
    Quantité Livrée : '. $_POST['quantite'][$i].'
    Observations : '. $_POST['obs'][$i].'
   '. '
'; } break; case 14: // Get the submitted data $ap_date = $_POST['ap_date']; $ap_start_time = $_POST['ap_start_time']; $ap_end_time = $_POST['ap_end_time']; // Get the current date in 'Y-m-d' format $current_date = date('Y-m-d'); // Check if the authorization date is within the active payroll period if (!ActivePayrollPeriode($ap_date)) { $_SESSION["ap_date"] = $ap_date; $_SESSION["ap_start_time"] = $ap_start_time; $_SESSION["ap_end_time"] = $ap_end_time; Session::addMessageAfterRedirect(__('La date sp�cifi�e n\'est pas dans la p�riode de paye active.'), false, ERROR); echo json_encode([ 'is_valid' => false, 'modele' => $_SESSION['modele'] ]); return; } if ($ap_date < $current_date) { $_SESSION["ap_date"] = $ap_date; $_SESSION["ap_start_time"] = $ap_start_time; $_SESSION["ap_end_time"] = $ap_end_time; Session::addMessageAfterRedirect(__('VOUS N\'ETES PAS PERMIS'),false, ERROR); echo json_encode([ 'is_valid' => false, 'modele' => $_SESSION['modele'] ]); return ; } if ($ap_end_time < $ap_start_time) { $_SESSION["ap_date"] = $ap_date; $_SESSION["ap_start_time"] = $ap_start_time; $_SESSION["ap_end_time"] = $ap_end_time; Session::addMessageAfterRedirect(__('Heure de d�but est sup�rieur � la date du d�but'),false, ERROR); echo json_encode([ 'is_valid' => false, 'modele' => $_SESSION['modele'] ]); return ; } // Calculate the duration between start and end times $start_time = strtotime($ap_start_time); $end_time = strtotime($ap_end_time); $duration_in_hours = ($end_time - $start_time) / 3600; // Check if the duration exceeds 4 hours if ($duration_in_hours > 4) { $_SESSION["ap_date"] = $ap_date; $_SESSION["ap_start_time"] = $ap_start_time; $_SESSION["ap_end_time"] = $ap_end_time; Session::addMessageAfterRedirect(__('La dur�e de l\'autorisation ne doit pas d�passer 4 heures'), false, ERROR); echo json_encode([ 'is_valid' => false, 'modele' => $_SESSION['modele'] ]); return; } unset($_SESSION["ap_date"]); unset($_SESSION["ap_start_time"]); unset($_SESSION["ap_end_time"]); $name = "Autorisation de paie"; $table ='Matricule : '.$_POST['matricule'].'
Fonction : '.$_POST['fonction'].'
Structure : '.$_POST['structure'].'
Est autorise le : '.$_POST['ap_date'].'
Du : '.$_POST['ap_start_time'].'
a : '.$_POST['ap_end_time']; break; } } //glpi_itilcategories =>itilcategories_id $id_categorie = array("Bulletin de sortie"=>"12" ,"Requete Administrative"=>"13" , "Demande de congé"=>"14", "Autorisation d'absence"=>"15", "Autorisation d'entree"=>"16" , "DEMANDE DE RECRUTEMENT"=>"35" , "HEURES SUPPLEMENTAIRES"=>"36" ,"DEMANDE ORDRE DE MISSION" => "37" , "CONGE DE RECUPERATION" => "38", "Work Order Form" => "40", "AC : Bon De Livraison" => "47","Demande de congé statutaire"=>"14", "Production : Bon De Commande" => "54", "MP : Bon De Livraison" => "55", "Autorisation de paie" => "72"); if($_SESSION['token'] == $_POST['_glpi_csrf_token']){ unset($_SESSION['token']); add_ticket($id_categorie[$name],$name,$table,$_SESSION["glpiID"]); $tickets_id = $DB->insert_id(); add_User_Demandeur($tickets_id , $_SESSION["glpiID"]); if ($isWorkOrder){ if ($unite == "" && $$_POST['wo_prob_type'] == "Climatisation") { add_Group_Observateur($tickets_id , 30); add_Group_Attribue($tickets_id , 30); } else { switch($unite){ case "U1": if($_POST['wo_prob_type'] =="Mechanical"){ add_Group_Observateur($tickets_id , 20 ); add_Group_Attribue($tickets_id , 20) ; } elseif ($_POST['wo_prob_type'] =="Instrumentation"){ add_Group_Observateur($tickets_id , 25 ); add_Group_Attribue($tickets_id , 25) ; } else{ add_Group_Observateur($tickets_id , 26 ); add_Group_Attribue($tickets_id , 26) ; } break; case "U2": if($_POST['wo_prob_type'] =="Mechanical"){ add_Group_Observateur($tickets_id , 21 ); add_Group_Attribue($tickets_id , 21) ; } elseif ($_POST['wo_prob_type'] =="Instrumentation"){ add_Group_Observateur($tickets_id , 25 ); add_Group_Attribue($tickets_id , 25) ; } else{ add_Group_Observateur($tickets_id , 26 ); add_Group_Attribue($tickets_id , 26) ; } break; case "U3": if($_POST['wo_prob_type'] =="Mechanical"){ add_Group_Observateur($tickets_id , 22 ); add_Group_Attribue($tickets_id , 22) ; } elseif ($_POST['wo_prob_type'] =="Instrumentation"){ add_Group_Observateur($tickets_id , 25 ); add_Group_Attribue($tickets_id , 25) ; } else{ add_Group_Observateur($tickets_id , 26 ); add_Group_Attribue($tickets_id , 26) ; } break; case "U4": if($_POST['wo_prob_type'] =="Mechanical"){ add_Group_Observateur($tickets_id , 23 ); add_Group_Attribue($tickets_id , 23) ; } elseif ($_POST['wo_prob_type'] =="Instrumentation"){ add_Group_Observateur($tickets_id , 25 ); add_Group_Attribue($tickets_id , 25) ; } else{ add_Group_Observateur($tickets_id , 26 ); add_Group_Attribue($tickets_id , 26) ; } break; case "U5": if($_POST['wo_prob_type'] =="Mechanical"){ add_Group_Observateur($tickets_id , 24 ); add_Group_Attribue($tickets_id , 24) ; } elseif ($_POST['wo_prob_type'] =="Instrumentation"){ add_Group_Observateur($tickets_id , 25 ); add_Group_Attribue($tickets_id , 25) ; } else{ add_Group_Observateur($tickets_id , 26 ); add_Group_Attribue($tickets_id , 26) ; } break; case "U6": if($_POST['wo_prob_type'] =="Mechanical"){ add_Group_Observateur($tickets_id , 35 ); add_Group_Attribue($tickets_id , 35) ; } elseif ($_POST['wo_prob_type'] =="Instrumentation"){ add_Group_Observateur($tickets_id , 25 ); add_Group_Attribue($tickets_id , 25) ; } else{ add_Group_Observateur($tickets_id , 26 ); add_Group_Attribue($tickets_id , 26) ; } break; default: add_Group_Observateur($tickets_id , 19 ); add_Group_Attribue($tickets_id , 19) ; break; } } update_sequence($last_generated_Sequence_wo ,'work order'); }else if($isBLAC){ update_sequence($last_generated_Sequence_bl ,'bon de livraison ac'); atributeTo($tickets_id,$_SESSION["glpiID"]); changeStatusTo($tickets_id,5); }else if($isBLMP){ update_sequence($last_generated_Sequence_mp ,'bon de livraison mp'); atributeTo($tickets_id,$_SESSION["glpiID"]); changeStatusTo($tickets_id,5); }else if($isBCPROD){ update_sequence($last_generated_Sequence_bc ,'Bon De Commande Production'); if($_POST['acbc_magasin'] == 'AC') atributeTo($tickets_id,647);// responsable Magasin AC // CHANGED TO KRATTAR else atributeTo($tickets_id,292);// responsable Magasin MP // CHANGED TO YAZIDI changeStatusTo($tickets_id,5); }else{ add_Group_Observateur($tickets_id , 10 ); add_Group_Attribue($tickets_id , 10) ; } switch ($name) { case "Requete Administrative": if($_POST['ra_demande'] == 'Attestation de travail'){ add_Attestation_Travail($tickets_id); } break; case "DEMANDE DE RECRUTEMENT": soumis_a_validation($tickets_id); add_validation_percent($tickets_id); add_Validation($tickets_id ,239,$_SESSION["glpiID"]); //validation DRH id=239 add_Validation($tickets_id ,23,$_SESSION["glpiID"]); //validation DGA id=23 break; case "DEMANDE ORDRE DE MISSION": soumis_a_validation($tickets_id); add_Validation($tickets_id ,239,$_SESSION["glpiID"]); break; case "Demande de congé": soumis_a_validation($tickets_id); add_validation_percent($tickets_id); // if(!empty($_SESSION['idResponsable'])){ // add_Validation($tickets_id ,$_SESSION['idResponsable'],$_SESSION["glpiID"]); // } //add validation de directeur //si existe DGA dans la list alor leur index - 1 //si n'existe pas DGA dans la list alor obtenir le dernière $list = getUserHierarchy($_SESSION["glpiID"]); if(($index = array_search(23,$list)) !== false){ unset($list[$index]); } //delete DGA if(($index = array_search(22,$list)) !== false){ unset($list[$index]); } //delete DG for($k = 1 ; $k < count($list) ; $k++){ add_Validation($tickets_id ,$list[$k],$_SESSION["glpiID"]); } // $index = array_search(23,$list); // if($index){ // if($index - 1 > 1){ // add_Validation($tickets_id ,$list[$index - 1],$_SESSION["glpiID"]); // } // }else{ // if(count($list) > 2) { // add_Validation($tickets_id ,end($list),$_SESSION["glpiID"]); // } // } add_Validation($tickets_id ,239,$_SESSION["glpiID"]); add_conge($_POST , $tickets_id); break; case "Work Order Form": soumis_a_validation($tickets_id); add_validation_percent($tickets_id); //validation résponsable // if(!empty($_SESSION['idResponsable'])){ // add_Validation($tickets_id ,$_SESSION['idResponsable'],$_SESSION["glpiID"]); // } //add_Validation($tickets_id ,239,$_SESSION["glpiID"]); if ($unite == "" && $_POST['wo_prob_type'] == "Climatisation") { foreach(get_group_users(30) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } else { switch($unite){ case "U1": if($_POST['wo_prob_type'] =="Mechanical"){ foreach(get_group_users(20) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } elseif ($_POST['wo_prob_type'] =="Instrumentation"){ foreach(get_group_users(25) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } else{ foreach(get_group_users(26) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } break; case "U2": if($_POST['wo_prob_type'] =="Mechanical"){ foreach(get_group_users(21) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } elseif ($_POST['wo_prob_type'] =="Instrumentation"){ foreach(get_group_users(25) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } else{ foreach(get_group_users(26) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } break; case "U3": if($_POST['wo_prob_type'] =="Mechanical"){ foreach(get_group_users(22) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } elseif ($_POST['wo_prob_type'] =="Instrumentation"){ foreach(get_group_users(25) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } else{ foreach(get_group_users(26) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } break; case "U4": if($_POST['wo_prob_type'] =="Mechanical"){ foreach(get_group_users(23) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } elseif ($_POST['wo_prob_type'] =="Instrumentation"){ foreach(get_group_users(25) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } else{ foreach(get_group_users(26) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } break; case "U5": if($_POST['wo_prob_type'] =="Mechanical"){ foreach(get_group_users(24) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } elseif ($_POST['wo_prob_type'] =="Instrumentation"){ foreach(get_group_users(25) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } else{ foreach(get_group_users(26) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } break; case "U6": if($_POST['wo_prob_type'] =="Mechanical"){ foreach(get_group_users(35) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } elseif ($_POST['wo_prob_type'] =="Instrumentation"){ foreach(get_group_users(25) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } else{ foreach(get_group_users(26) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } } break; default: foreach(get_group_users(19) as $usID){ add_Validation($tickets_id,$usID["users_id"],$_SESSION["glpiID"]); } break; } } //add Observateurs $ids = getUserHierarchy($_SESSION["glpiID"]); foreach($ids as $id){ if($id != 23 && $id != 22){ add_User_Observateur($tickets_id ,$id); } } break; case "AC : Bon De Livraison": //soumis_a_validation($tickets_id); //add_validation_percent($tickets_id); //validation résponsable // if(!empty($_SESSION['idResponsable'])){ // add_Validation($tickets_id ,$_SESSION['idResponsable'],$_SESSION["glpiID"]); // } //add Observateurs $ids = getUserHierarchy($_SESSION["glpiID"]); foreach($ids as $id){ if($id != 23 && $id != 22){ add_User_Observateur($tickets_id ,$id); } } break; case "MP : Bon De Livraison": $ids = getUserHierarchy($_SESSION["glpiID"]); foreach($ids as $id){ if($id != 23 && $id != 22){ add_User_Observateur($tickets_id ,$id); } } break; case "Production : Bon De Commande": //add Observateurs $ids = getUserHierarchy($_SESSION["glpiID"]); foreach($ids as $id){ if($id != 23 && $id != 22){ add_User_Observateur($tickets_id ,$id); } } break; case "Demande de congé statutaire": soumis_a_validation($tickets_id); add_validation_percent($tickets_id); //add validation de directeur //si existe DGA dans la list alor leur index - 1 //si n'existe pas DGA dans la list alor obtenir le dernière $list = getUserHierarchy($_SESSION["glpiID"]); if(($index = array_search(23,$list)) !== false){ unset($list[$index]); } //delete DGA if(($index = array_search(22,$list)) !== false){ unset($list[$index]); } //delete DG for($k = 1 ; $k < count($list) ; $k++){ add_Validation($tickets_id ,$list[$k],$_SESSION["glpiID"]); } add_Validation($tickets_id ,239,$_SESSION["glpiID"]); add_conge($_POST , $tickets_id); break; default: soumis_a_validation($tickets_id); add_validation_percent($tickets_id); //validation résponsable if(!empty($_SESSION['idResponsable'])){ add_Validation($tickets_id ,$_SESSION['idResponsable'],$_SESSION["glpiID"]); } //add_Validation($tickets_id ,239,$_SESSION["glpiID"]); //add Observateurs $ids = getUserHierarchy($_SESSION["glpiID"]); foreach($ids as $id){ if($id != 23 && $id != 22){ add_User_Observateur($tickets_id ,$id); } } } }