requete public function beforeAction() { global $ppo; $ppo = new CopixPPO(); showmessages(); _Railroad(); if(!$_SESSION[number]) $_SESSION[number]=0; // Id de la societe de la personne connecte $ppo->societe = unserialize($_SESSION['SOCIETE'])->id_societes; $ppo->id_type_societe = unserialize($_SESSION['SOCIETE'])->id_type_societe; $ppo->liste_champs_dynamiques = array ( 'serrure', 'socle', 'peinture', 'coffret_agent', 'disjoncteur', 'armoire_marque', 'carte_cpu', 'carte_alim', 'carte_entrees', 'serie_carte_entrees', 'carte_sorties', 'serie_carte_sorties', 'carte_puissance', 'nb_lignes_utilisees', 'pre_cablage', 'eprom', 'version_logiciel', 'version_cpu', 'num_serie', 'tel_pc', 'cable_coordination', 'modem', 'nb_cycles', 'tel_ligne', 'coordination_remarques', 'controleur_marque', 'controleur_type', 'serie_carte_puissance', 'horloge', 'cpu', 'nb_lignes_utilisees', 'pre_cablage_max', 'version_logiciel' ); $ppo->liste_radios_dynamiques = array ( 'contact_porte', 'rehausse', 'armoire_relais' ); } // M001 // Impression d'un seul document function processPrintDocUm() { require_once("../utils/html2pdf/fpdf16.php"); require_once("../utils/html2pdf/fpdi/fpdi.php"); require_once("../utils/html2pdf/pdf_autoprint.php"); $pdf =& new PDF_AutoPrint(); $id_um=urldecode(CopixRequest::get('id_um')); $id_documents=CopixRequest::get('id_documents'); $element = _doQuery("SELECT DISTINCT d.id_documents,d.nom,d.lien,items.lib_item as type_document FROM documents d,items, unite_maintenance um WHERE d.id_unite_maintenance=$id_um AND d.id_documents=$id_documents AND um.id_unite_maintenance=d.id_unite_maintenance and items.id_items=d.type_document "); $element=$element[0]; $mon_um = _doQuery("SELECT cd_unite_maintenance,id_etat_unite_maintenance, id_villes FROM unite_maintenance WHERE id_unite_maintenance=$id_um"); $mon_um = $mon_um[0]; $ville_um = _doQuery("SELECT lib_item as nom_ville FROM items WHERE id_items=" . $mon_um->id_villes); $ville_um=$ville_um[0]; try { $completeNameFile="documents/".$ville_um->nom_ville."/".$mon_um->cd_unite_maintenance."/".$element->lien; $pagecount = $pdf->setSourceFile($completeNameFile); $tplidx = $pdf->importpage(1); // True: Impression avec choix de l'imprimante // False: Impression sur l'imprimante par défaut $pdf->AutoPrint(true); $pdf->addPage(); $pdf->useTemplate($tplidx, 10, 10, 90); $pdf->Output($element->lien, 'D'); } catch (Exception $e) { // Si fichier pas trouvé echo 'Document introuvable!'; } } // Impression de tous les documents de même type d'une ville function processprintAllTypeDocUm() { require_once("../utils/html2pdf/fpdf16.php"); require_once("../utils/html2pdf/fpdi/fpdi.php"); require_once("../utils/html2pdf/pdf_autoprint.php"); $pdf =& new PDF_AutoPrint(); $id_um=urldecode(CopixRequest::get('id_um')); $id_documents=CopixRequest::get('id_documents'); // Récupération du type de document $element = _doQuery("SELECT DISTINCT um.id_villes, d.id_documents,d.nom,d.lien,items.id_items as type_document FROM documents d,items, unite_maintenance um WHERE d.id_unite_maintenance=$id_um AND d.id_documents=$id_documents AND um.id_unite_maintenance=d.id_unite_maintenance and items.id_items=d.type_document "); $type_document=$element[0]->type_document; $ville_document=$element[0]->id_villes; $element = _doQuery("SELECT DISTINCT um.cd_unite_maintenance,d.id_documents,d.nom,d.lien,items.lib_item as type_document FROM documents d,items, unite_maintenance um WHERE d.type_document='$type_document' AND um.id_villes = $ville_document AND um.id_unite_maintenance=d.id_unite_maintenance AND items.id_items=d.type_document "); $mon_um = _doQuery("SELECT cd_unite_maintenance,id_etat_unite_maintenance, id_villes FROM unite_maintenance WHERE id_unite_maintenance=$id_um"); $mon_um = $mon_um[0]; $ville_um = _doQuery("SELECT lib_item as nom_ville FROM items WHERE id_items=" . $mon_um->id_villes); $ville_um=$ville_um[0]; // On boucle sur tous les documents foreach($element as $mon_element) { try { // Boucle sur tous les documents du même type $completeNameFile="documents/".$ville_um->nom_ville."/".$mon_element->cd_unite_maintenance."/".$mon_element->lien; if (strtoupper(substr($mon_element->lien,-3,3)) =="PDF") { $pagecount = $pdf->setSourceFile($completeNameFile); // True: Impression avec choix de l'imprimante // False: Impression sur l'imprimante par défaut $pdf->AutoPrint(true); for ($i=1;$i<=$pagecount;$i++) { //on importe la page N°$i dans une variable $tplidx = $pdf->importpage($i); //récupération de la taille du PDF $taille=$pdf->getTemplateSize($tplidx); //ajustement portait ou paysage if ($taille['w'] > $taille['h']) $pdf->addPage('L'); else $pdf->addPage('P'); //on colle le template (page copiée) dans le nouveau PDF $pdf->useTemplate($tplidx,0,0,0,0,true); } } } catch (Exception $e) { // Si fichier pas trouvé echo 'L\'un des Documents introuvable!'; } } $pdf->Output("Impression multi-documents.pdf", 'D'); } function processViewum() { //----------------------------------------------------------------------------------- // ProcessViewum : affiche la liste des unites de maintenance //----------------------------------------------------------------------------------- // L'affichage est fonction du profil de l'utilisateur. // Profil 2 - Client : Affichage des unites de maintenance des marches de la societe cliente // Profil 3, 4 ou 5 : Affichage des unites de maintenance des marches de la societe prestataire // Profil 1 Administrateur : Affichage de toutes les unites de maintenance // Par defaut : affichage des unites en panne et en travaux //----------------------------------------------------------------------------------- global $ppo; if (droitsAcces(17)) { // Recuperation du profil de l'utilisateur courant $ppo->profil = unserialize($_SESSION['SOPAC_USER'])->profil; // Recuperations l'id_societe de l'utilisateur courant $session_societe = unserialize($_SESSION['SOCIETE'])->id_societes; // $ppo->um = CopixRequest :: get('um'); // if (!$ppo->um) // $ppo->um = $ppo->id_um; //--------------------------------------------------------------------------- // ENVOI ET RECUPERATION DES FILTRES EN SESSION //--------------------------------------------------------------------------- if (CopixRequest::get('tri_um')||CopixRequest::get('page_um')) { view_tri(); } if (CopixRequest::get('filtre_um')) { view_filtre(); } $ppo->filtre = view_recup_filtre(); $ppo->tri = view_recup_tri(); if ($ppo->filtre->contrat != -1 && $ppo->filtre->contrat) $contrat_selected = $ppo->filtre->contrat; if ($ppo->filtre->ville != -1 && $ppo->filtre->ville) $ville_selected = $ppo->filtre->ville; if($ppo->filtre->societe!= -1 && $ppo->filtre->societe) $societes_selected = $ppo->filtre->societe; if($ppo->filtre->localisation !=-1 && $ppo->filtre->localisation) $loc_selected = $ppo->filtre->localisation; if($ppo->filtre->um !=-1 && $ppo->filtre->um) $um_selected = $ppo->filtre->um; //Si session_filtre est vide : affichage par defaut des um oranges et rouges if (!isset($ppo->filtre->feux)) // MANTIS191 YG 20081007 Ajout ,8 $ppo->feux = array (4,6,8); //Sinon affichage des statuts selectionnes else $ppo->feux = $ppo->filtre->feux; // Affiche toutes les societes si id = -1 (ville TOUT) $where = array (); $where_travaux=array(); //MANTIS191 YG 20081010 $sql = array (); $sql_etat = array (); define('ID_ETAT', 'unite_maintenance.id_etat_unite_maintenance'); $critere = ""; if ($ppo->feux) { $nb = $ppo->feux . rows . length; $sous_critere = array (); $liste_vide=TRUE; // MANTIS191 YG 20081007 //Etat UM : Rouge if (in_array("4", $ppo->feux)) { $sous_critere[] = "id_etat_unite_maintenance=914"; $ppo->panne = true; $ppo->etat = 4; $liste_vide=FALSE; } //Etat UM : Jaune if (in_array("5", $ppo->feux)) { $sous_critere[] = "id_etat_unite_maintenance=916"; $ppo->normal = true; $ppo->etat = 5; $liste_vide=FALSE; } // MANTIS191 YG 20081007 if (in_array("8", $ppo->feux)) { $ppo->travaux_encours = true; } //Etat UM : Vert if (in_array("6", $ppo->feux)) { $sous_critere[] = "id_etat_unite_maintenance=915"; $ppo->entravaux = true; $ppo->etat = 6; $liste_vide=FALSE; } //Etat UM : Noir if (in_array("7", $ppo->feux)) { $sous_critere[] = "id_etat_unite_maintenance=917"; $ppo->aunoir = true; $ppo->etat = 7; $liste_vide=FALSE; } // MANTIS191 YG 20081007 if ($liste_vide==FALSE) { $critere = "(" . implode(" OR ", $sous_critere) . ")"; } else { unset($sous_critere);unset($nb); } } else{ $critere = "id_etat_unite_maintenance=-1"; $ppo->feux = array (); } if ($critere) $where[] = $critere; if(!$ppo->tri->sens) $ppo->sens = ' ASC '; else { if ($ppo->tri->sens == ' DESC ') $ppo->sens = ' ASC '; else $ppo->sens = ' DESC '; } if ($ppo->tri->order) $orderby = " ORDER BY ".$ppo->tri->order." ".$ppo->sens; else $orderby = " ORDER BY id_etat_unite_maintenance ASC , cd_unite_maintenance"; //Offset pour pagination. $offset = 'OFFSET ' . (isset($ppo->tri->start)?$ppo->tri->start:0) . ' LIMIT 15'; //--------------------------------------------------------- //Constitution de la requete pour l'affichage de la liste des unites de maintenance //--------------------------------------------------------- $from = array (); $select_liste = array (); $select_liste[] = "um.id_unite_maintenance"; $select_liste[] = "um.cd_unite_maintenance"; $select_liste[] = "um.id_etat_unite_maintenance"; $select_liste[] = "um.file_plan1"; $select_liste[] = "um.latitude_google"; $select_liste[] = "um.ts"; $select_liste[] = "ville.id_items as id"; $select_liste[] = "ville.lib_item as nom"; $select_liste[] = "ville.cd_item as code_postal"; $select_liste[] = "type_um.*"; $select_liste[] = "localisation.adresse"; $select_liste[] = "localisation.id_localisation"; //Assemblage de la requete principale des um $select_listes = implode(' , ', array_unique($select_liste)); $from[] = "unite_maintenance um"; $from[] = "localisation"; $from[] = "items ville"; $from[] = "(SELECT id_items as id_type_um,lib_item as nom_type_um FROM items,liste_references lr WHERE items.id_reference=lr.id_reference AND lr.cd_reference='type_UM') type_um"; $where[] = "um.id_localisation=localisation.id_localisation"; $where_travaux[]="um.id_localisation=localisation.id_localisation"; // MANTIS191 YG 20081010 $where[] = "um.id_type_unite_maintenance=type_um.id_type_um"; $where_travaux[]="um.id_type_unite_maintenance=type_um.id_type_um"; // MANTIS191 YG 20081010 $where[] = "um.id_villes=ville.id_items"; $where_travaux[]="um.id_villes=ville.id_items"; // MANTIS191 YG 20081010 //VBO20080901-Selection des unites de maintenance en fonction du profil de l'utilisateur courant if ($ppo->profil != 1) { $from[] = "contrats c"; if ($ppo->profil == 2) { //Profil Client : Selection des unites de maintenance liees aux marches du client //$from[] = "prestations p"; //$from[] = "prestations_unite_maintenance pum"; $where[] = "c.id_societes = $ppo->societe"; $where_travaux[] = "c.id_societes = $ppo->societe"; // MANTIS191 YG 20081010 $where[] = "um.id_contrats = c.id_contrats"; $where_travaux[] = "um.id_contrats = c.id_contrats"; // MANTIS191 YG 20081010 //$where[] = "p.id_prestations = pum.id_prestations"; $where_travaux[] = "p.id_prestations = pum.id_prestations"; // MANTIS191 YG 20081010 //$where[] = "pum.id_unite_maintenance = um.id_unite_maintenance"; $where_travaux[] = "pum.id_unite_maintenance = um.id_unite_maintenance"; // MANTIS191 YG 20081010 } else { //Profil ST, RT ou Technicien : Selection des unites de maintenance liees aux marches ou la societe prestataire //$from[] = "prestations p"; //$from[] = "prestations_unite_maintenance pum"; $from[] = "prestataires"; $from[] = "contrats_prestataires"; $where[] = "prestataires.id_societes = $ppo->societe"; $where_travaux[] = "prestataires.id_societes = $ppo->societe"; $where[] = "prestataires.id_prestataires = contrats_prestataires.id_prestataires"; $where_travaux[] = "prestataires.id_prestataires = contrats_prestataires.id_prestataires"; // MANTIS191 YG 20081010 $where[] = "contrats_prestataires.id_contrats = c.id_contrats"; $where_travaux[] = "contrats_prestataires.id_contrats = c.id_contrats"; // MANTIS191 YG 20081010 $where[] = "um.id_contrats = c.id_contrats"; $where_travaux[] = "um.id_contrats = c.id_contrats"; // MANTIS191 YG 20081010 //$where[] = "p.id_prestations = pum.id_prestations"; $where_travaux[] = "p.id_prestations = pum.id_prestations"; // MANTIS191 YG 20081010 //$where[] = "pum.id_unite_maintenance = um.id_unite_maintenance"; $where_travaux[] = "pum.id_unite_maintenance = um.id_unite_maintenance"; // MANTIS191 YG 20081010 } } //VBO20080909-Selection des unites de maintenance au noir si profil non client et si case a cocher au noir selectionnee if (($ppo->profil != 2) && (in_array("7", $ppo->feux)) ){ $select_liste_noir = array (); $from_liste_noir = array (); $where_liste_noir=array(); $select_liste_noir[] = "um.id_unite_maintenance"; $select_liste_noir[] = "um.cd_unite_maintenance"; $select_liste_noir[] = "um.id_etat_unite_maintenance"; $select_liste_noir[] = "um.file_plan1"; $select_liste_noir[] = "um.latitude_google"; $select_liste_noir[] = "um.ts"; $select_liste_noir[] = "ville.id_items as id"; $select_liste_noir[] = "ville.lib_item as nom"; $select_liste_noir[] = "ville.cd_item as code_postal"; $select_liste_noir[] = "type_um.*"; $select_liste_noir[] = "localisation.adresse"; $select_liste_noir[] = "localisation.id_localisation"; //Assemblage de la requete principale des um $select_liste_noir = implode(' , ', array_unique($select_liste_noir)); $from_liste_noir[] = "unite_maintenance um"; $from_liste_noir[] = "localisation"; $from_liste_noir[] = "items ville"; $from_liste_noir[] = "(SELECT id_items as id_type_um,lib_item as nom_type_um FROM items,liste_references lr WHERE items.id_reference=lr.id_reference AND lr.cd_reference='type_UM') type_um"; $where_liste_noir[] = "um.id_localisation=localisation.id_localisation"; $where_liste_noir[] = "um.id_type_unite_maintenance=type_um.id_type_um"; $where_liste_noir[] = "um.id_villes=ville.id_items"; $where_liste_noir[] = "um.id_etat_unite_maintenance=917"; } //VBO20080909-Fin selection des unites de maintenance au noir //--------------------------------------------------------------------------- // Constitution des requetes pour les elements du filtre //--------------------------------------------------------------------------- // Creation de la requete pour la constitution de la liste des contrats du filtre $select_liste_contrat[] = "c.id_contrats"; $select_liste_contrat[] = "c.nom_marche"; $from_liste_contrat[] = "contrats c"; //$from_liste_contrat[] = "prestations p"; //$from_liste_contrat[] = "prestations_unite_maintenance pum"; $from_liste_contrat[] = "unite_maintenance um"; //$where_liste_contrat[] = "pum.id_unite_maintenance=um.id_unite_maintenance"; //$where_liste_contrat[] = "p.id_prestations=pum.id_prestations"; $where_liste_contrat[] = "um.id_contrats=c.id_contrats"; //Si l'utilisateur est de profil client : affichage uniquement des contrats de sa societe dans le filtre contrat if ($ppo->profil != 1) { if($ppo->profil==2) { $where_liste_contrat[] = "c.id_societes=$ppo->societe"; } else { // Sinon affichage des contrats de la societe prestataire $from_liste_contrat[] = "prestataires"; $from_liste_contrat[] = "contrats_prestataires"; $where_liste_contrat[] = "prestataires.id_societes = $ppo->societe"; $where_liste_contrat[] = "prestataires.id_prestataires = contrats_prestataires.id_prestataires"; $where_liste_contrat[] = "contrats_prestataires.id_contrats = c.id_contrats"; } } // Creation de la requete pour la constitution de la liste des villes du filtre $select_liste_ville[] = "ville.id_items as id"; $select_liste_ville[] = "ville.lib_item as nom"; $select_liste_ville[] = "ville.cd_item as code_postal"; // Creation de la requete pour la constitution de la liste des societes du filtre $select_liste_societe[] = "societes.nom_societe,societes.id_societes"; $from_liste_societe[] = "contrats c"; $from_liste_societe[] = "societes"; //$from_liste_societe[] = "prestations p"; //$from_liste_societe[] = "prestations_unite_maintenance pum"; $from_liste_societe[] = "unite_maintenance um"; //$where_liste_societe[] = "pum.id_unite_maintenance=um.id_unite_maintenance"; //$where_liste_societe[] = "p.id_prestations=pum.id_prestations"; $where_liste_societe[] = "um.id_contrats=c.id_contrats"; $where_liste_societe[] = "societes.id_societes=c.id_societes"; //Filtrage societe en fonction du profil if ($ppo->profil != 1) { //Profil Client : societe cliente de l'utilisateur courant if($ppo->profil==2) { $where_liste_societe[] = "c.id_societes=$ppo->societe"; } else { //Profil RT, ST ou Technicien: societe prestataire de l'utilisateur courant $from_liste_societe[] = "prestataires"; $from_liste_societe[] = "contrats_prestataires"; $where_liste_societe[] = "prestataires.id_societes = $ppo->societe"; $where_liste_societe[] = "prestataires.id_prestataires = contrats_prestataires.id_prestataires"; $where_liste_societe[] = "contrats_prestataires.id_contrats = c.id_contrats"; } } // Creation de la requete pour la constitution de la liste des localisations du filtre $select_liste_localisation[] = "localisation.adresse,localisation.id_localisation"; // Creation de la requete pour la constitution de la liste des um du filtre $select_liste_um[] = "um.id_unite_maintenance,um.cd_unite_maintenance"; // Creation de la requete pour la constitution de la liste des um du filtre : um liees aux marches de la societe de l'utilisateur courant $select_um_contrat[] = "um.id_contrats"; $select_um_contrat[] = "c.nom_marche"; $select_um_contrat[] = "pum.id_unite_maintenance"; $select_um_contrat = implode(' ,', $select_um_contrat); $from_um_contrat[] = "contrats c"; //$from_um_contrat[] = "prestations p"; $from_um_contrat[] = "prestations_unite_maintenance pum"; $from_um_contrat[] = "unite_maintenance um"; $where_um_contrat[] = "pum.id_unite_maintenance=um.id_unite_maintenance"; //$where_um_contrat[] = "p.id_prestations=pum.id_prestations"; $where_um_contrat[] = "um.id_contrats=c.id_contrats"; $where_um_contrat[] = "pum.statut=true"; //Filtrage marche en fonction du profil if ($ppo->profil != 1) { if($ppo->profil==2) { //Profil Client : marche de la societe cliente de l'utilisateur courant $where_um_contrat[] = "c.id_societes=$ppo->societe"; } else { //Profil RT, ST ou Technicien: marche liee a la societe prestataire de l'utilisateur courant $from_um_contrat[] = "prestataires"; $from_um_contrat[] = "contrats_prestataires"; $where_um_contrat[] = "prestataires.id_societes = $ppo->societe"; $where_um_contrat[] = "prestataires.id_prestataires = contrats_prestataires.id_prestataires"; $where_um_contrat[] = "contrats_prestataires.id_contrats = c.id_contrats"; } } $from_um_contrat = implode(' ,', $from_um_contrat); $where_um_contrat = implode(' AND ', $where_um_contrat); //Si un contrat est selectionne dans le filtre : seules les um de ce contrat sont affichees if ($contrat_selected != -1 && $contrat_selected) { //$from_contrat[] = "prestations_unite_maintenance pum"; $from_contrat[] = "unite_maintenance um"; //$from_contrat[] = "prestations p"; $from_contrat[] = "contrats c"; //$where_contrat[] = "pum.id_unite_maintenance=um.id_unite_maintenance"; //$where_contrat[] = "p.id_prestations=pum.id_prestations"; $where_contrat[] = "um.id_contrats=c.id_contrats"; $where_contrat[] = "um.id_contrats= $contrat_selected"; $from = array_unique(array_merge($from, $from_contrat)); //VBO20080909-Liste au noir if ($select_liste_noir) $from_liste_noir = array_unique(array_merge($from_liste_noir, $from_contrat)); $requete_from = implode(', ', $from); $tables_contrat = implode(', ', array_unique(array_merge($from_liste_contrat, $from_contrat))); $tables_societe = implode(' , ', array_unique(array_merge($from_liste_societe, $from_contrat))); $where_liste_societes = implode(' AND ', array_unique(array_merge($where_liste_societe, $where_contrat))); $where = array_unique(array_merge($where, $where_contrat)); $where_travaux = array_unique(array_merge($where_travaux, $where_contrat)); //MANTIS191 YG 20081010 //VBO20080909-Liste au noir if ($select_liste_noir) $where_liste_noir = array_unique(array_merge($where_liste_noir, $where_contrat)); $requete_where = implode(' AND ', $where); $requete_where_travaux=implode(' AND ', $where_travaux); //MANTIS191 YG 20081010 $where_liste_contrats = implode(' AND ', array_unique(array_merge($where_liste_contrat, $where_contrat))); $ppo->filtre_contrats = "contrats=$contrats_selected&"; } //Si une ville est selectionnee dans le filtre : seules les um de cette ville sont affichees if ($ville_selected != -1 && $ville_selected) { $from_ville[] = "items ville"; $from_ville[] = "unite_maintenance um"; $where_ville[] = "um.id_villes=ville.id_items"; $where_ville[] = "ville.id_items=$ville_selected"; $tables_contrat = implode(', ', array_unique(array_merge($from_liste_contrat, $from_ville))); $tables_societe = implode(' , ', array_unique(array_merge($from_liste_societe, $from_ville))); $from = array_unique(array_merge($from, $from_ville)); //VBO20080909-Liste au noir if ($select_liste_noir) $from_liste_noir = array_unique(array_merge($from_liste_noir, $from_ville)); $requete_from = implode(', ', $from); $where_liste_societes = implode(' AND ', array_unique(array_merge($where_liste_societe, $where_ville))); $where = array_unique(array_merge($where, $where_ville)); $where_travaux = array_unique(array_merge($where_travaux, $where_ville)); //MANTIS191 YG 20081010 //VBO20080909-Liste au noir if ($select_liste_noir) $where_liste_noir = array_unique(array_merge($where_liste_noir, $where_ville)); $requete_where = implode(' AND ', $where); $requete_where_travaux = implode(' AND ', $where_travaux); //MANTIS191 YG 20081010 $where_liste_contrats = implode(' AND ', array_unique(array_merge($where_liste_contrat, $where_ville))); $ppo->filtre_villes = "city=$ville_selected&"; } //Si une societe est selectionnee dans le filtre : seules les um de cette ville sont affichees if ($societes_selected != -1 && $societes_selected) { //$from_societe[] = "prestations_unite_maintenance pum"; //$from_societe[] = "prestations p"; $from_societe[] = "contrats c"; $from_societe[] = "societes"; //$where_societe[] = "pum.id_unite_maintenance=um.id_unite_maintenance"; //$where_societe[] = "p.id_prestations=pum.id_prestations"; $where_societe[] = "um.id_contrats=c.id_contrats"; $where_societe[] = "societes.id_societes=c.id_societes"; $where_societe[] = "societes.id_type_societe=77"; $where_societe[] = "societes.id_societes=$societes_selected"; $from = array_unique(array_merge($from, $from_societe)); $requete_from = implode(', ', $from); $tables_contrat = implode(', ', array_unique(array_merge($from_liste_contrat, $from_societe))); $tables_societe = implode(' , ', array_unique(array_merge($from_liste_societe, $from_societe))); $where_liste_societes = implode(' AND ', array_unique(array_merge($where_liste_societe, $where_societe))); $where = array_unique(array_merge($where, $where_societe)); $where_travaux = array_unique(array_merge($where_travaux, $where_societe)); //MANTIS191 YG 20081010 $requete_where = implode(' AND ', $where); $requete_where_travaux = implode(' AND ', $where_travaux); //MANTIS191 YG 20081010 $where_liste_contrats = implode(' AND ', array_unique(array_merge($where_liste_societe, $where_societe))); $ppo->filtre_societes = "societe=$societes_selected&"; } //Si une localisation est selectionnee dans le filtre : seules les um de cette localisation sont affichees if ($loc_selected != -1 && $loc_selected) { $from_loc[] = "localisation"; $where_loc[] = "localisation.id_localisation=$loc_selected"; $from = array_unique(array_merge($from, $from_loc)); //VBO20080909-Liste au noir if ($select_liste_noir) $from_liste_noir = array_unique(array_merge($from_liste_noir, $from_loc)); $requete_from = implode(', ', $from); $tables_contrat = implode(', ', array_unique(array_merge($from_liste_contrat, $from_loc))); $tables_societe = implode(' , ', array_unique(array_merge($from_liste_societe, $from_loc))); $where_liste_societes = implode(' AND ', array_unique(array_merge($where_liste_societe, $where_loc))); $where = array_unique(array_merge($where, $where_loc)); $where_travaux = array_unique(array_merge($where_travaux, $where_loc)); //MANTIS191 YG 20081010 //VBO20080909-Liste au noir if ($select_liste_noir) $where_liste_noir = array_unique(array_merge($where_liste_noir, $where_loc)); $requete_where = implode(' AND ', $where); $requete_where_travaux=implode(' AND ', $where_travaux); //MANTIS191 YG 20081010 $where_liste_contrats = implode(' AND ', array_unique(array_merge($where_liste_contrat, $where_loc))); $ppo->filtre_locs = "loc=$loc_selected&"; } //Si une um est selectionnee dans le filtre : seule cette um est affichee if ($um_selected != -1 && $um_selected) { $from_um[] = "localisation"; $where_um[] = "um.cd_unite_maintenance='$um_selected'"; $from = array_unique(array_merge($from, $from_um)); //VBO20080909-Liste au noir if ($select_liste_noir) $from_liste_noir = array_unique(array_merge($from_liste_noir, $from_um)); $requete_from = implode(', ', $from); $tables_contrat = implode(', ', array_unique(array_merge($from_liste_contrat, $from_um))); $tables_societe = implode(' , ', array_unique(array_merge($from_liste_societe, $from_um))); $where_liste_societes = implode(' AND ', array_unique(array_merge($where_liste_societe, $where_um))); $where = array_unique(array_merge($where, $where_um)); $where_travaux = array_unique(array_merge($where_travaux, $where_um)); //MANTIS191 YG 20081010 //VBO20080909-Liste au noir if ($select_liste_noir) $where_liste_noir = array_unique(array_merge($where_liste_noir, $where_um)); $requete_where = implode(' AND ', $where); $requete_where_travaux = implode(' AND ', $where_travaux); //MANTIS191 YG 20081010 $where_liste_contrats = implode(' AND ', array_unique(array_merge($where_liste_contrat, $where_um))); $ppo->filtre_ums = "um='$um_selected'&"; } //Si une selection est faite sur chaque element du filtre => ???? if (($um_selected == -1 || !$um_selected) && ($contrats_selected == -1 || !$contrats_selected) && ($ville_selected == -1 || !$ville_selected) && ($societes_selected == -1 || !$societes_selected) && ($loc_selected == -1 || !$loc_selected)) { $requete_from = implode(' , ', array_unique($from)); $requete_where = implode(' AND ', array_unique($where)); $requete_where_travaux = implode(' AND ', array_unique($where_travaux)); //MANTIS191 YG 20081010 $tables_contrat = implode(' , ', array_unique($from_liste_contrat)); $where_liste_contrats = implode(' AND ', array_unique($where_liste_contrat)); $tables_societe = implode(' , ', array_unique($from_liste_societe)); $where_liste_societes = implode(' AND ', array_unique($where_liste_societe)); } //Execution de la requete filtre liste des marches $select_liste_contrats = implode(' , ', array_unique($select_liste_contrat)); $ppo->requete_contrat = "SELECT DISTINCT $select_liste_contrats ". "FROM $tables_contrat ". "WHERE $where_liste_contrats "; $ppo->_contrats = _doQuery($ppo->requete_contrat); //Execution de la requete filtre liste des villes $select_liste_villes = implode(' , ', array_unique($select_liste_ville)); $ppo->requete_ville = "SELECT DISTINCT $select_liste_villes FROM $requete_from WHERE $requete_where "; //VBO20090311-MANTIS0001225 : correction filtre si selection au noir if ($select_liste_noir) $ppo->requete_ville .= " UNION SELECT DISTINCT $select_liste_villes FROM " . implode(' , ', array_unique($from_liste_noir)) . " WHERE " .implode(" AND ", array_unique($where_liste_noir)); //VBO20090311-MANTIS0001225 : correction filtre si selection au noir $ppo->_ville = _doQuery($ppo->requete_ville); //Execution de la requete filtre liste des societes $select_liste_societes = implode(' , ', array_unique($select_liste_societe)); $ppo->requete_societe = "SELECT DISTINCT $select_liste_societes FROM $tables_societe WHERE $where_liste_societes "; $ppo->_societes = _doQuery($ppo->requete_societe); //Execution de la requete filtre liste des localisations $select_liste_localisations = implode(' , ', array_unique($select_liste_localisation)); $ppo->requete_loc = "SELECT DISTINCT $select_liste_localisations FROM $requete_from WHERE $requete_where "; //VBO20090311-MANTIS0001225 : correction filtre si selection au noir if ($select_liste_noir) $ppo->requete_loc .= " UNION SELECT DISTINCT $select_liste_localisations FROM " . implode(' , ', array_unique($from_liste_noir)) . " WHERE " .implode(" AND ", array_unique($where_liste_noir)); //VBO20090311-MANTIS0001225 : correction filtre si selection au noir $ppo->_loc = _doQuery($ppo->requete_loc); // //Execution de la requete filtre liste des um // $select_liste_ums = implode(' , ', array_unique($select_liste_um)); $ppo->requete_um = "SELECT DISTINCT $select_liste_ums FROM $requete_from WHERE $requete_where "; //VBO20090311-MANTIS0001225 : correction filtre si selection au noir if ($select_liste_noir) $ppo->requete_um .= " UNION SELECT DISTINCT $select_liste_ums FROM " . implode(' , ', array_unique($from_liste_noir)) . " WHERE " .implode(" AND ", array_unique($where_liste_noir)); $ppo->requete_um .= " ORDER BY cd_unite_maintenance ASC"; //VBO20090311-MANTIS0001225 : correction filtre si selection au noir $ppo->_um = _doQuery($ppo->requete_um); //MANTIS291 YG 20081009 if (in_array("8", $ppo->feux)) { $from_travaux[]="demandes d"; $from_travaux_123[]="demandes d"; $from_travaux[]="demandes_natures dn"; $from_travaux_123[]="demandes_natures dn"; $from_travaux[]="interventions i"; $from_travaux[]="items ville_2"; $from_travaux_123[]="items ville_3"; // $cond_travaux=array(); $cond_travaux[]="d.id_unite_maintenance=um.id_unite_maintenance"; $cond_travaux[]="ville_2.id_reference=82"; $cond_travaux[]="d.id_demandes=dn.id_demandes"; $cond_travaux[]="dn.id_natures=ville_2.id_items"; $cond_travaux[]="um.id_localisation=localisation.id_localisation"; $cond_travaux[]="um.id_type_unite_maintenance=type_um.id_type_um"; $cond_travaux[]="i.id_demandes=d.id_demandes"; $cond_travaux[]="((d.etat=124 AND i.etat_intervention in (94,107,108,109,114)))"; $cond_travaux_123=array(); // $cond_travaux_123[]="d.id_unite_maintenance=um.id_unite_maintenance"; $cond_travaux_123[]="ville_3.id_reference=82"; $cond_travaux_123[]="d.id_demandes=dn.id_demandes"; $cond_travaux_123[]="dn.id_natures=ville_3.id_items"; $cond_travaux_123[]="(d.etat=123)"; } //MANTIS YG 20081009 // //Execution de la requete liste des unites de maintenance //VBO20080909-Affichage de toutes les um au noir si necessaire : profil ST, RT ou Technicien if (!$select_liste_noir){ if ($liste_vide==TRUE) { // YG il n'y que la case en travaux qui est cochee! if (in_array("8", $ppo->feux)) { // 123 YG MANTIS191 20081106 $requete_from_123 = $requete_from.', '.implode(', ', $from_travaux_123); $requete_where_travaux_123=$requete_where_travaux." AND ".implode(' AND ', $cond_travaux_123); //CORRECTION BUG MANTIS191 20081106 // 124 $requete_from = $requete_from.', '.implode(', ', $from_travaux); $requete_where_travaux=$requete_where_travaux." AND ".implode(' AND ', $cond_travaux); $ppo->requete = "SELECT DISTINCT $select_listes FROM $requete_from WHERE $requete_where_travaux"; $ppo->requete = $ppo->requete." UNION SELECT DISTINCT $select_listes FROM $requete_from_123 WHERE $requete_where_travaux_123 $orderby"; } } else { if (in_array("8", $ppo->feux)) { // 123 YG MANTIS191 20081106 $requete_from_123 = $requete_from.', '.implode(', ', $from_travaux_123); $requete_where_travaux_123=$requete_where_travaux." AND ".implode(' AND ', $cond_travaux_123); //CORRECTION BUG MANTIS 191 20081106 // $ppo->requete = "SELECT DISTINCT $select_listes FROM $requete_from WHERE $requete_where UNION "; $requete_from = $requete_from.', '.implode(', ', $from_travaux); $requete_where_travaux=$requete_where_travaux." AND ".implode(' AND ', $cond_travaux); $ppo->requete = $ppo->requete. "SELECT DISTINCT $select_listes FROM $requete_from WHERE $requete_where_travaux"; $ppo->requete = $ppo->requete." UNION SELECT DISTINCT $select_listes FROM $requete_from_123 WHERE $requete_where_travaux_123 $orderby"; } else { $ppo->requete = "SELECT DISTINCT $select_listes FROM $requete_from WHERE $requete_where $orderby"; } } } else { $from_liste_noir = implode(' , ', array_unique($from_liste_noir)); $where_liste_noir = implode(' AND ', array_unique($where_liste_noir)); // aalexandre : coherence dans la selection, on ne fait pas un union avec tous les um noirs, on l'ajoute simplement au where /* $ppo->requete = "SELECT DISTINCT $select_liste_noir FROM $from_liste_noir WHERE $where_liste_noir UNION SELECT DISTINCT $select_listes FROM $requete_from WHERE $requete_where "; */ $ppo->requete = "SELECT DISTINCT $select_listes FROM $requete_from WHERE $requete_where "; //MANTIS191 YG 20081010 if (in_array("8", $ppo->feux)) { // 123 $requete_from_123 = $requete_from.', '.implode(', ', $from_travaux_123); $requete_where_travaux_123=$requete_where_travaux." AND ".implode(' AND ', $cond_travaux_123); //CORRECTION BUG MANTIS 191 20081106 // $requete_from = $requete_from.', '.implode(', ', $from_travaux); $requete_where_travaux=$requete_where_travaux." AND ".implode(' AND ', $cond_travaux); $ppo->requete = $ppo->requete. " UNION SELECT DISTINCT $select_listes FROM $requete_from WHERE $requete_where_travaux "; // 123 $ppo->requete = $ppo->requete." UNION SELECT DISTINCT $select_listes FROM $requete_from_123 WHERE $requete_where_travaux_123 $orderby"; } //MANTIS191 YG 20081010 } $ppo->unite_maintenance_table = _doQuery($ppo->requete . ' ' . $offset); //Recherche des um en travaux pour affichage de l'affichage de l'icone travaux ? foreach($ppo->unite_maintenance_table as $um) { // MANTIS191 YG 20081008 (Le d.etat !=122 devient (d.etat=123 or d.etat=124)) Etat 123= Ouvert, Etat 124= En traitement // MANTIS191 YG 20081008 Ajout de la condition AND i.etat_intervention in (94,107,108,109,114) // MANTIS191 YG 20081106 CORRECTION (Distinction entre les etat "ouvert" et etat "en traitement") if(_doQuery("SELECT DISTINCT d.id_demandes FROM demandes d, demandes_natures dn, items t, interventions i WHERE d.id_unite_maintenance=$um->id_unite_maintenance AND (d.etat=124) AND d.id_demandes=dn.id_demandes AND dn.id_natures=t.id_items AND i.etat_intervention in (94,107,108,109,114) AND t.id_reference=82 AND d.id_demandes=i.id_demandes UNION SELECT DISTINCT d.id_demandes FROM demandes d, demandes_natures dn, items t WHERE d.id_unite_maintenance=$um->id_unite_maintenance AND (d.etat=123) AND d.id_demandes=dn.id_demandes AND dn.id_natures=t.id_items AND t.id_reference=82")) $um->travaux=true; } //Suppression des '/' dans les localisations foreach ( $ppo->_loc as $element ) $element->adresse = nl2br(stripslashes( trim($element->adresse))); //Traitement des um selectionnees pour recherche des informations complementaires foreach ($ppo->unite_maintenance_table as $um) { //Troncature des adresses a l'affichage if (strlen($um->adresse) > 40) $um->adresse_pour_tableau = substr(stripslashes($um->adresse), 0, 37) . '...'; else $um->adresse_pour_tableau = stripslashes($um->adresse); // Suppression des '/' dans les adresses affichees $um->adresse_pour_tableau = nl2br(stripslashes( trim($um->adresse_pour_tableau))); //Recherche si l'um est associee a un contrat $um_c = "SELECT DISTINCT $select_um_contrat FROM $from_um_contrat WHERE $where_um_contrat AND pum.id_unite_maintenance=$um->id_unite_maintenance "; $um_contrat = _doQuery($um_c); if($um_contrat) $um->a_contrat = 'OK'; //Recherche si l'um est associee a une demande pour l'affichage de l'icone $ppo->um_demande = _doquery("SELECT DISTINCT id_unite_maintenance FROM demandes"); $um->a_demande = 'NON'; foreach ($ppo->um_demande as $um_demande) { if ($um->id_unite_maintenance == $um_demande->id_unite_maintenance) $um->a_demande = 'OK'; } } if (droitsAcces(27)) { $ppo->demande = TRUE; } $ppo->limit=15; //FCA - 21/10/2010 - GMAO 2010 - Gestion des liste déroulantes de choix à droite du site // Liste déroulante - Contrats $ppo->requete_contrat_filtre = "SELECT DISTINCT $select_liste_contrats FROM contrats c"; if ($ppo->profil != 1){ if($ppo->profil==2) { $ppo->requete_contrat_filtre .= " WHERE c.id_societes=$ppo->societe"; } else { $ppo->requete_contrat_filtre .= " INNER JOIN contrats_prestataires cp on cp.id_contrats = c.id_contrats"; $ppo->requete_contrat_filtre .= " INNER JOIN prestataires presta on presta.id_prestataires = cp.id_prestataires AND presta.id_societes = $ppo->societe"; } } $ppo->requete_contrat_filtre .= " ORDER BY c.nom_marche"; $ppo->_contrats_filtre = _doQuery($ppo->requete_contrat_filtre); // Liste déroulante - Villes $ppo->requete_ville_filtre="SELECT DISTINCT $select_liste_villes FROM unite_maintenance um INNER JOIN items ville ON um.id_villes = ville.id_items AND ville.id_reference=54"; if ($ppo->profil != 1) { if($ppo->profil==2) { $ppo->requete_ville_filtre.=" INNER JOIN contrats c on um.id_contrats = c.id_contrats"; $ppo->requete_ville_filtre.=" AND c.id_societes=$ppo->societe"; } else { $ppo->requete_ville_filtre.=" INNER JOIN contrats c on um.id_contrats = c.id_contrats"; $ppo->requete_ville_filtre.=" INNER JOIN contrats_prestataires cp on cp.id_contrats = c.id_contrats"; $ppo->requete_ville_filtre.=" INNER JOIN prestataires presta on presta.id_prestataires = cp.id_prestataires AND presta.id_societes = $ppo->societe"; } } $ppo->requete_ville_filtre.=" ORDER BY ville.lib_item"; $ppo->_ville_filtre = _doQuery($ppo->requete_ville_filtre); // Liste déroulante - Client $ppo->requete_societe_filtre="SELECT DISTINCT $select_liste_societes FROM unite_maintenance um INNER JOIN contrats c on um.id_contrats = c.id_contrats INNER JOIN societes on c.id_societes = societes.id_societes"; if ($ppo->profil != 1){ if($ppo->profil==2) { $ppo->requete_societe_filtre.=" WHERE c.id_societes=$ppo->societe"; } else { $ppo->requete_societe_filtre.=" INNER JOIN contrats_prestataires cp on cp.id_contrats = c.id_contrats"; $ppo->requete_societe_filtre.=" INNER JOIN prestataires presta on presta.id_prestataires = cp.id_prestataires AND presta.id_societes = $ppo->societe"; } } $ppo->requete_societe_filtre.=" ORDER BY societes.nom_societe"; $ppo->_societe_filtre = _doQuery($ppo->requete_societe_filtre); // Liste déroulante - Localisation $ppo->requete_loc_filtre="SELECT DISTINCT $select_liste_localisations,localisation.cd_localisation FROM unite_maintenance um INNER JOIN localisation on localisation.id_localisation = um.id_localisation"; if ($ppo->profil != 1){ if($ppo->profil==2) { $ppo->requete_loc_filtre.=" INNER JOIN contrats c on um.id_contrats = c.id_contrats"; $ppo->requete_loc_filtre.=" WHERE c.id_societes=$ppo->societe"; } else { $ppo->requete_loc_filtre.=" INNER JOIN contrats c on um.id_contrats = c.id_contrats"; $ppo->requete_loc_filtre.=" INNER JOIN contrats_prestataires cp on cp.id_contrats = c.id_contrats"; $ppo->requete_loc_filtre.=" INNER JOIN prestataires presta on presta.id_prestataires = cp.id_prestataires AND presta.id_societes = $ppo->societe"; } } $ppo->requete_loc_filtre.=" ORDER BY localisation.cd_localisation"; $ppo->_loc_filtre = _doQuery($ppo->requete_loc_filtre); // Liste déroulante - UM $ppo->requete_um_filtre="SELECT DISTINCT cd_unite_maintenance FROM unite_maintenance um"; if ($ppo->profil != 1){ if($ppo->profil==2) { $ppo->requete_um_filtre.=" INNER JOIN contrats c on um.id_contrats = c.id_contrats"; $ppo->requete_um_filtre.=" WHERE c.id_societes=$ppo->societe"; } else { $ppo->requete_um_filtre.=" INNER JOIN contrats c on um.id_contrats = c.id_contrats"; $ppo->requete_um_filtre.=" INNER JOIN contrats_prestataires cp on cp.id_contrats = c.id_contrats"; $ppo->requete_um_filtre.=" INNER JOIN prestataires presta on presta.id_prestataires = cp.id_prestataires AND presta.id_societes = $ppo->societe"; } } $ppo->requete_um_filtre.=" ORDER BY cd_unite_maintenance"; $ppo->_um_filtre = _doQuery($ppo->requete_um_filtre); //print_rh($ppo); $ppo->pagination = pagination_bis(CopixUrl :: get('contrats|unite_maintenance|viewum')."?page_um=1" , count(_doQuery($ppo->requete)), $ppo->tri->start,15); //--------------------------------------------------------------------------- // AFFICHAGE DE LA PARTIE DETAIL //--------------------------------------------------------------------------- //Si une um est selectionnee pour l'affichage du detail $ppo->id_um = copixrequest :: get('unite'); // YG 20090205 if (isset($ppo->id_um)) { if ($ppo->profil==4 || $ppo->profil==5 || $ppo->profil==3) { // Appel de la procedure nature(um) $this->nature($ppo->id_um); } else { $ppo->nature_dynstat==true; } } if ($ppo->id_um) { //Recherche des informations de l'um selectionnee $ppo->unites = _doQuery("SELECT * FROM unite_maintenance LEFT OUTER JOIN items ON unite_maintenance.id_villes = items.id_items LEFT OUTER JOIN localisation ON unite_maintenance.id_localisation = localisation.id_localisation WHERE id_unite_maintenance = $ppo->id_um"); //Suppression des '/' dans l'adresse $ppo->unites[0]->adresse = nl2br(stripslashes( trim($ppo->unites[0]->adresse))); $ppo->unite = $ppo->unites[0]; //Recherche des informations du contrat de l'um $ppo->contrat = _doQuery("SELECT * FROM contrats,prestations_unite_maintenance p_um,prestations p, unite_maintenance um WHERE p_um.id_unite_maintenance= $ppo->id_um AND p_um.id_prestations=p.id_prestations AND p_um.id_unite_maintenance = um.id_unite_maintenance AND contrats.id_contrats=um.id_contrats"); $ppo->contrat = $ppo->contrat[0]; if ($ppo->contrat) { //Recherche de l'affaire principale associee au contrat : non utile $ppo->affaire = _doQuery("SELECT numero_affaire FROM affaires,contrats_affaires ca WHERE ca.id_contrats=" . $ppo->contrat->id_contrats . " AND ca.est_principale = 't'"); $ppo->affaire = $ppo->affaire[0]; // Recherche de la societe cliente associee au contrat $ppo->client = _doQuery("SELECT societes.nom_societe FROM societes,contrats WHERE contrats.id_contrats = " . $ppo->contrat->id_contrats . " AND contrats.id_societes = societes.id_societes"); $ppo->client = $ppo->client[0]; } //Recherche de la ville associee a l'um $ppo->villes = _doQuery("SELECT lib_item as nom, cd_item as code_postal FROM items WHERE id_items=" . $ppo->unite->id_villes); $ppo->villes = $ppo->villes[0]; $ppo->ville_um = _doQuery("SELECT lib_item as nom_ville FROM items WHERE id_items=" . $ppo->unite->id_villes); $ppo->ville_um = strtoupper($ppo->ville_um[0]->nom_ville); //Stockage des dates associees a l'um pour mise en forme $date_maj = $ppo->unites[0]->date_maj; $date_revision = $ppo->unites[0]->date_revision; $date_mise_service = $ppo->unites[0]->date_mise_service; // Formatages des dates $ppo->date_maj = $this->format_date($date_maj); $ppo->date_revision = $this->format_date($date_revision); $ppo->date_mise_service = $this->format_date($date_mise_service); } //--------------------------------------------------------------------------- // FIN AFFICHAGE DE LA PARTIE DETAIL //--------------------------------------------------------------------------- return _arPPO($ppo, 'unite_maintenance/unite_maintenance_table.tpl'); } //Si l'utilisateur courant n'a pas les droits d'acces. return addMessage('erreur', 101, '', 'main|accueil|main'); } //////////////////////////////////////////////////////////////////////############################################################### // FONCTIONS function format_date($bd_date) { if ($bd_date == '') return ''; $exp = explode("-", $bd_date); $exp2 = explode(" ", $exp[2]); $date = $exp2[0] . '/' . $exp[1] . '/' . $exp[0]; return $date; } function all_societes_prestataires($session) { $societes = _doQuery("SELECT distinct societes.id_societes,societes.nom_societe FROM societes,unite_maintenance,prestataires,contrats,contrats_prestataires,societes WHERE contrats.id_contrats = contrats_prestataires.id_contrats AND contrats_prestataires.id_prestataires= prestataires.id_prestataires AND societes.id_societes=prestataires.id_societes AND societes.id_type_societe = 1 AND societes.id_societes = $session"); return $societes; } function All_ville() { $ville = _doQuery("SELECT lib_item,id_items FROM items WHERE id_reference=54"); return $ville; } //~ id_type_unite_maintenance.lib_type_um function all_type() { $type = _doQuery("SELECT lib_item,id_items FROM items WHERE id_reference=49"); return $type; } function all_um($session) { $um = _doQuery("SELECT DISTINCT cd_unite_maintenance FROM societes,unite_maintenance,prestataires,contrats,contrats_prestataires, WHERE contrats.id_contrats = contrats_prestataires.id_contrats AND contrats_prestataires.id_prestataires= prestataires.id_prestataires AND societes.id_societes=prestataires.id_societes AND societes.id_type_societe = 1 AND societes.id_societes = $session"); return $um; } function all_contrats($session) { global $ppo; print_rh($ppo->profil); switch ($ppo->profil) { case 1 : return _doQuery("SELECT DISTINCT contrats.id_contrats, numero_marche, nom_marche FROM contrats WHERE etat = true"); break; case 2 : return _doQuery("SELECT DISTINCT contrats.id_contrats, numero_marche, nom_marche FROM contrats WHERE etat = true AND id_societes = $session"); break; default : return _doQuery("SELECT DISTINCT contrats.id_contrats, numero_marche, nom_marche FROM contrats, contrats_prestataires, prestataires WHERE etat = true AND contrats.id_contrats= prestataires.id_contrats AND contrats_prestataires.id_prestataires= prestataires.id_prestataires AND prestataires.id_societes = $session"); } } function all_localisation($session) { $localisation = _doQuery("SELECT DISTINCT localisation.id_localisation,localisation.adresse FROM societes,unite_maintenance,prestataires,contrats,contrats_prestataires,localisation WHERE unite_maintenance.id_localisation = localisation.id_localisation AND contrats_prestataires.id_prestataires = prestataires.id_prestataires AND societes.id_societes = prestataires.id_societes AND societes.id_type_societe = 1 AND societes.id_societes = $session"); } // Elements dynamiques function all_armoire() { $contrats = _doQuery("SELECT * FROM armoire "); return $contrats; } function all_controleur() { $contrats = _doQuery("SELECT * FROM controleur "); return $contrats; } function liste_dynamique($list) { $liste = _doQuery("SELECT items.lib_item,items.id_items FROM items LEFT OUTER JOIN liste_references ON items.id_reference = liste_references.id_reference WHERE items.id_reference = $list; "); return $liste; } //////////////////////////////////////////////////////////////////////############################################################### function processCreate() { global $ppo; $session_societe = unserialize($_SESSION['SOCIETE'])->id_societes; $ppo->um_type = $this->All_type(); //$ppo->um_villes = $this->All_ville(); //$ppo->um_contrats = $this->all_contrats($session_societe); $ppo->ajout = true; if (droitsAcces(15)) { //** ARMOIRE ---------------------------------------------*/ $this->getAppareils('marques_armoire', 'armoire'); $this->getAppareils('marques_serrures', 'serrure'); $this->getAppareils('marques_coffret', 'coffret_ag'); $this->getAppareils('marques_socle', 'socle'); $this->getAppareils('peinture', 'peinture'); //** CONTROLEUR ----------------------------------------*/ $this->getAppareils('liste_vers_log', 'vers_log'); $this->getAppareils('liste_vers_cpu', 'vers_cpu'); $this->getAppareils('liste_type_controleur', 'controleur'); $this->getAppareils('liste_ligne', 'nb_lignes'); $this->getAppareils('liste_cablage_max', 'cablage'); $this->getAppareils('liste_marque_controleur', 'marq_contr'); $this->getAppareils('liste_equipement', 'equip_cpu'); $this->getAppareils('liste_horloge', 'horloge'); $this->getAppareils('marques_cpu', 'carte_cpu'); $this->getAppareils('marques_alim', 'carte_alim'); $this->getAppareils('liste_eprom', 'eprom'); $this->getAppareils('liste_marque_cpu', 'carte_cpu'); //** COORDINATION ----------------------------------------*/ $this->getAppareils('marques_coordination', 'coord_tls'); //** TELESURVEILLANCE ----------------------------------------*/ $this->getAppareils('telesurveillance', 'tls'); $this->getAppareils('type_communication', 'type_com'); $this->getAppareils('model_telesurveillance', 'modl_ts'); //~ print_rh($ppo->type_communication); return _arPPO($ppo, 'unite_maintenance/unite_maintenance_fiche.tpl'); } } function processForm() { global $ppo; $ppo->update = CopixRequest :: getAlphaNum('recup'); if ($ppo->update == 'add') return _arRedirect(CopixUrl :: get('contrats|unite_maintenance|create')); CopixRequest :: getAlphaNum('contrats_selected'); $session_societe = unserialize($_SESSION['SOCIETE'])->id_societes; $valeur = CopixRequest :: asArray(); //print_rh($valeur); // L'ID UM pour modification. $um = CopixRequest :: getAlphaNum('box'); if (!$um) $um = CopixRequest::getAlphaNum ('um'); if (!$um) $um = CopixRequest :: getAlphaNum('id_um'); $_SESSION['um'] = $um; $ppo->id_um = (is_array($um) ? $um[0] : $um); $ppo->um_type = $this->All_type(); //$ppo->um_villes = $this->All_ville(); //$ppo->um_contrats = $this->all_contrats($session_societe); // Elements dynamiques //$ppo->um_armoire = $this->all_armoire(); //$ppo->um_controleur = $this->all_controleur(); $ppo->um_detecteur_omni_passage = $this->liste_dynamique(61); $ppo->um_liste_systeme_gestion = $this->liste_dynamique(62); $ppo->um_liste_systeme_prioritaire = $this->liste_dynamique(56); $ppo->um_type_doc = $this->liste_dynamique(50); try { $ppo->liste_documents = _doQuery("SELECT DISTINCT d.id_documents,d.nom,d.lien,items.lib_item as type_document FROM documents d,items WHERE d.id_unite_maintenance=$ppo->id_um AND items.id_items=d.type_document "); } catch (Exception $e) { } // Ajout des champs input pour l'insertion des docs. //~ D�but if ($ppo->get_add_doc = CopixRequest :: getAlphaNum('add_doc')) { $ppo->get_add_doc = $ppo->get_add_doc + 1; } $ppo->add_doc = array (); for ($i = 1; $i < $ppo->get_add_doc + 1; $i++) { $tab_doc = array ( 'type_doc' . $i, 'doc' . $i ); array_push($ppo->add_doc, $tab_doc); } //~ Deuxieme element if ($ppo->get_add_doc = CopixRequest :: getAlphaNum('add_doc')) { $ppo->get_add_doc = $ppo->get_add_doc + 1; } $ppo->add_doc = array (); for ($i = 1; $i < $ppo->get_add_doc + 1; $i++) { $tab_doc = array ( 'type_doc' . $i, 'doc' . $i ); array_push($ppo->add_doc, $tab_doc); } //~ Fin switch ($ppo->update) { /*////////////////////// On supprime une unite de maintenance ///////////////////////////////*/ case 'del' : if (droitsAcces(16)) { /* $recup = CopixRequest :: asArray(); if ($id = $recup["box"]) { foreach ($id as $value) { */ // AAL : ajout bouton "supprimer" => une suppression à la fois $value = CopixRequest::getAlphaNum ('um'); $ppo->um = _doQuery("SELECT cd_unite_maintenance,id_etat_unite_maintenance FROM unite_maintenance WHERE id_unite_maintenance=$value"); $ppo->um = $ppo->um[0]; $cd = $ppo->um->cd_unite_maintenance; $verif_contrat = $ppo->um->id_etat_unite_maintenance; // Si les demandes liees a l'UM sont ouvert ou en traitement ==> suppression impossible. $verif_demande_open = _doQuery("SELECT COUNT(id_demandes) FROM demandes WHERE id_unite_maintenance=$value AND (etat=123 or etat=124)"); $verif_demande_open = $verif_demande_open[0]->count; $verif_prestation_open = _doQuery("SELECT COUNT(DISTINCT id_prestations_unite_maintenance) FROM prestations_unite_maintenance WHERE id_unite_maintenance=$value"); $verif_prestation_open = $verif_prestation_open[0]->count; if (($verif_demande_open + $verif_prestation_open) > 0) { addMessage('erreur', 322, array ( "$cd: $verif_demande_open+$verif_prestation_open" )); } else { if (droitsAcces(18) && ($verif_contrat == 917)) { try{ //print_rh($value); //_dao('unite_maintenance')->delete($value); _doQuery("delete from unite_maintenance where id_unite_maintenance=$value"); addMessage('info', 324, array ( $cd )); } catch (Exception $e) { print_rh($e); } } if ($verif_contrat != 917) { addMessage('info', 323, array ( $cd )); _doQuery("UPDATE unite_maintenance SET id_etat_unite_maintenance=917 WHERE id_unite_maintenance=$value"); } } /* } } */ } return _arRedirect(CopixUrl :: get('contrats|unite_maintenance|viewum')); break; /*////////////////////// On modifie une nouvelle unite de maintenance ///////////////////////////////*/ case 'modif' : if (droitsAcces(15) || CopixRequest :: getAlphaNum('print')=='yes') { // $index correspond � l'ID de l'unite de mainetenance /* $index = CopixRequest :: getAlphaNum('box'); if(!$index) $index = CopixRequest :: getAlphaNum('id_um'); if (!CopixRequest :: getAlphaNum('redirect')) $index = $index[0]; */ // AAL : ajout bouton "modifier" => une modif à la fois $index = CopixRequest::getAlphaNum('um'); if(!$index){ $index=CopixRequest::getAlphaNum('box'); if(!$index) $index = CopixRequest::getAlphaNum('id_um'); //$index = $index[0]; } //print_rh($index); // donnees de l'utilisateur $criteres = _daoSp()->addCondition('id_unite_maintenance', '=', $index); // On recupere les donnees de l'utilsateur selectionnees lors du process View $ppo->um = _dao('unite_maintenance')->findBy($criteres); //Comme le resultat est un tableau a� un element, on ne prend que cet element... $ppo->um = $ppo->um[0]; $ppo->um->vignette = trim($ppo->um->vignette); $ppo->um->date_mise_service = dateUsToFr($ppo->um->date_mise_service); $ppo->um->date_revision = dateUsToFr($ppo->um->date_revision); $ppo->um->date_maj = dateUsToFr($ppo->um->date_maj); $villeQuery = _doQuery("SELECT (lib_item||'('||cd_item||')')as nom_ville, lib_item FROM items WHERE id_items=". $ppo->um->id_villes); $ppo->ville = $villeQuery[0]->nom_ville; $ppo->ville_court = strtoupper($villeQuery[0]->lib_item); $ville_um = _doQuery("SELECT lib_item as nom_ville FROM items WHERE id_items=" . $ppo->um->id_villes); $ppo->ville_um = $ville_um[0]->nom_ville; $criteres = _daoSp()->addCondition('id_localisation', '=', $ppo->um->id_localisation); $ppo->localisation = _dao('localisation')->FindBy($criteres); $ppo->localisation= $ppo->localisation[0]; $ppo->localisation->adresse= stripslashes($ppo->localisation->adresse); //$ppo->um_etat=_dao('etat_unite_maintenance')->FindAll(); $ppo->um_etat = _doQuery("SELECT id_items, lib_item FROM items WHERE id_reference=127"); // Armoire // On recupre l'ID de l'armoire dans la table d'association "armoire_unite_maintenance" $ppo->id_armoire = _doQuery("SELECT id_armoire FROM armoire_unite_maintenance WHERE id_unite_maintenance = $index"); $ppo->id_armoire = $ppo->id_armoire[0]->id_armoire; if ($ppo->id_armoire) { $ppo->armoire = _doQuery("SELECT * FROM armoire WHERE id_armoire = $ppo->id_armoire"); $ppo->armoire = $ppo->armoire[0]; $ppo->armoire_unite_maintenance = _doQuery("SELECT um.id_unite_maintenance,um.cd_unite_maintenance,lib_item FROM armoire_unite_maintenance a_um,unite_maintenance um ,items WHERE id_armoire = $ppo->id_armoire AND a_um.id_unite_maintenance=um.id_unite_maintenance AND um.id_villes=items.id_items"); } //************************************************************************ //**** reccuperation du contenu des filtres pour affiner les requetes **** //************************************************************************ $contrats_selected = CopixRequest :: get('contrats'); $ppo->contrats_selected = $contrats_selected; $ville_selected = CopixRequest :: get('city'); $ppo->ville_selected = $ville_selected; $societes_selected = CopixRequest :: get('societe'); $ppo->societes_selected = $societes_selected; $loc_selected = CopixRequest :: get('loc'); $ppo->loc_selected = $loc_selected; $um_selected = CopixRequest :: get('um'); $ppo->um_selected = $um_selected; $um_selected_filter = CopixRequest :: get('um_selected'); if($um_selected_filter == ''){ $um_selected_filter = -1; } $ppo->um_selected_filter = $um_selected_filter; //Si session_filtre est vide : affichage par defaut des um oranges et rouges if (!CopixRequest :: get('session_filtre')) // MANTIS191 YG 20081007 Ajout ,8 $ppo->feux = array (4,6,8); //Sinon affichage des statuts selectionnes else $ppo->feux = CopixRequest :: get('feux'); if ($ppo->feux) { //Etat UM : Rouge if (in_array("4", $ppo->feux)) { $ppo->panne = true; $ppo->etat = 4; } //Etat UM : Jaune if (in_array("5", $ppo->feux)) { $ppo->normal = true; $ppo->etat = 5; } // MANTIS191 YG 20081007 if (in_array("8", $ppo->feux)) { $ppo->travaux_encours = true; } //Etat UM : Vert if (in_array("6", $ppo->feux)) { $ppo->entravaux = true; $ppo->etat = 6; } //Etat UM : Noir if (in_array("7", $ppo->feux)) { $ppo->aunoir = true; $ppo->etat = 7; } } else{ $ppo->feux = array (); } $ppo->_session_filtre = CopixRequest :: getAlphaNum('session_filtre'); $ppo->sens = CopixRequest :: get('sens'); //insertion du document de longlet document $this->getAppareils('marques_armoire', 'armoire'); $this->getAppareils('marques_serrures', 'serrure'); $this->getAppareils('marques_coffret', 'coffret_ag'); $this->getAppareils('marques_disjoncteur', 'typ_disj'); $this->getAppareils('marques_socle', 'socle'); $this->getAppareils('peinture', 'peinture'); //Fin armoire // Controleur //////////////////////////////////////// $this->getAppareils('liste_vers_log', 'vers_log'); $this->getAppareils('liste_vers_cpu', 'vers_cpu'); $this->getAppareils('liste_type_controleur', 'controleur'); $this->getAppareils('liste_ligne', 'nb_lignes'); $this->getAppareils('liste_cablage_max', 'cablage'); $this->getAppareils('liste_marque_controleur', 'marq_contr'); $this->getAppareils('liste_equipement', 'equip_cpu'); $this->getAppareils('liste_horloge', 'horloge'); $this->getAppareils('marques_cpu', 'carte_cpu'); $this->getAppareils('marques_alim', 'carte_alim'); $this->getAppareils('liste_marque_es', 'carte_es'); $this->getAppareils('liste_eprom', 'eprom'); $ppo->controleur = _doQuery("SELECT DISTINCT * FROM controleur WHERE controleur.id_unite_maintenance = ".$ppo->um->id_unite_maintenance); if ($ppo->controleur) { $ppo->controleur = $ppo->controleur[0]; $ppo->valeur_horloge = $ppo->controleur->horloge; $ppo->valeur_equipement_cpu = $ppo->controleur->equipement_cpu; $ppo->valeur_marq_controleur = $ppo->controleur->modele; $ppo->valeur_precablage = $ppo->controleur->pre_cablage_max; $ppo->valeur_nbr_lign = $ppo->controleur->nb_ligne_utilisee; $ppo->valeur_type_controleur = $ppo->controleur->type; $ppo->valeur_version_cpu = $ppo->controleur->version_cpu; $ppo->valeur_version_log = $ppo->controleur->version_logiciel; $serie_carte_puissance = _doQuery("SELECT DISTINCT serie_carte_puissance FROM controleur_serie_carte_puissance WHERE serie_carte_puissance !='' AND controleur_serie_carte_puissance.id_controleur =" . $ppo->controleur->id_controleur); foreach ($serie_carte_puissance as $scp) $ppo->controleur->serie_carte_puissance[] = $scp->serie_carte_puissance; $serie_carte_entrees = _doQuery("SELECT DISTINCT serie_carte_entrees FROM controleur_serie_carte_entrees WHERE serie_carte_entrees !='' AND controleur_serie_carte_entrees.id_controleur =" . $ppo->controleur->id_controleur); foreach ($serie_carte_entrees as $sce) $ppo->controleur->serie_carte_entrees[] = $sce->serie_carte_entrees; $serie_carte_sorties = _doQuery("SELECT DISTINCT serie_carte_sorties FROM controleur_serie_carte_sorties WHERE serie_carte_sorties !='' AND controleur_serie_carte_sorties.id_controleur =" . $ppo->controleur->id_controleur); foreach ($serie_carte_sorties as $scs) $ppo->controleur->serie_carte_sorties[] = $scs->serie_carte_sorties; } //Fin controleur // Donnees techniques. $um_dt = _doquery("SELECT * FROM donnees_techniques WHERE donnees_techniques.id_unite_maintenance =" . $ppo->um->id_unite_maintenance); if ($um_dt) { $ppo->um_dt = $um_dt[0]; $omni_passage = _doquery("SELECT donnees_techniques_omni_passage as lib, count(*) as nb FROM donnees_techniques_omni_passage WHERE donnees_techniques_omni_passage.id_donnees_techniques =" . $ppo->um_dt->id_donnees_techniques. " group by donnees_techniques_omni_passage" ); $omni_presence = _doquery("SELECT donnees_techniques_omni as lib, count(*) as nb FROM donnees_techniques_omni WHERE donnees_techniques_omni.id_donnees_techniques =" . $ppo->um_dt->id_donnees_techniques. " group by donnees_techniques_omni" ); $uni = _doquery("SELECT donnees_techniques_uni as lib, count(*) as nb FROM donnees_techniques_uni WHERE donnees_techniques_uni.id_donnees_techniques =" . $ppo->um_dt->id_donnees_techniques. " group by donnees_techniques_uni" ); foreach ($omni_passage as $omni) { $tab_omni_passage[] = $omni; } foreach ($omni_presence as $omni) { $tab_omni[] = $omni; } foreach ($uni as $omni) { $tab_uni[] = $omni; } } $ppo->um_dt->detecteur_omni_passage = $tab_omni_passage; $ppo->um_dt->detecteur_omni = $tab_omni; $ppo->um_dt->detecteur_uni = $tab_uni; $this->getAppareils('liste_fusible_bornier', 'fusibl'); $this->getAppareils('liste_fournisseur_electricite', 'frn_elec'); $this->getAppareils('tension_secteur', 'tension'); $this->getAppareils('liste_omni', 'omni'); $this->getAppareils('liste_uni', 'uni'); //Fin donnees techniques. $ppo->um_doc = _doQuery("SELECT * FROM documents,element_doc_item WHERE element_doc_item.id_element_doc = documents.cd_doc AND element_doc_item.id_unite_maintenance = $index"); $ppo->size = sizeof($ppo->um_doc); // Coordination. $ppo->coordination = _doquery("SELECT * FROM coordination_telesurveillance WHERE coordination_telesurveillance.id_unite_maintenance =" . $ppo->um->id_unite_maintenance); $ppo->coordination = $ppo->coordination[0]; $this->getAppareils('liste_type_support', 'typ_sup'); $this->getAppareils('marques_coordination', 'coord_tls'); // Telesurveillance. $ppo->telesurveillance = _doquery("SELECT * FROM telesurveillance WHERE telesurveillance.id_unite_maintenance =" . $ppo->um->id_unite_maintenance); if ($ppo->telesurveillance) { $ppo->telesurveillance = $ppo->telesurveillance[0]; $telephone_pc = _doquery("SELECT DISTINCT tel_pc FROM telesurveillance_tel_pc WHERE tel_pc !='' AND telesurveillance_tel_pc.id_telesurveillance =" . $ppo->telesurveillance->id_telesurveillance); foreach ($telephone_pc as $tel_pc) $ppo->telesurveillance->tel_pc[] = $tel_pc->tel_pc; } $this->getAppareils('liste_telesurveillance', 'tls'); $this->getAppareils('liste_type_communication', 'type_com'); //Support require_once("../utils/sylis/AjaxFileUploader.inc.php"); try{ $ajaxFileUploader = new AjaxFileuploader("documents/$ppo->ville_court/".$ppo->um->cd_unite_maintenance); } catch(Exception $e){} $ppo->traitement_poteau = array (); $ppo->traitement_poteau[0] = 'Oui'; $ppo->traitement_poteau[1] = 'Non'; $ppo->annee_actuelle=date('Y'); $intervalle=$ppo->annee_actuelle-1990 + 10; $ppo->liste_annees = array(); for($i=0;$i<$intervalle;$i++) { $ppo->liste_annees[$i]->id_items=(1990+$i); $ppo->liste_annees[$i]->lib_item=(1990+$i); } $this->getAppareils('liste_type_support', 'typ_sup'); $this->getAppareils('liste_forme_support', 'form_sup'); $this->getAppareils('liste_matiere_support', 'mat_sup'); $this->getAppareils('liste_hauteur_support', 'haut_sup'); $this->getAppareils('liste_etat_support', 'etat_sup'); $this->getAppareils('liste_deport_support', 'dep_sup'); $this->getAppareils('liste_marque_support', 'marq_d_sup'); $this->getAppareils('liste_fixation_support', 'fix_d_sup'); $this->getAppareils('liste_signal_support', 'sign_d_sup'); $this->getAppareils('liste_source_support', 'src_d_sup'); $this->getAppareils('liste_specification_support', 'spec_d_sup'); $this->getAppareils('liste_diametre_support', 'diam_sup'); //remplissage des combobox $this->getAppareils('liste_raccord_installation', 'typracinst'); $this->getAppareils('liste_etat_supp', 'etat_d_sup'); $this->getAppareils('liste_conducteur', 'nb_cdteur'); $this->getAppareils('liste_type_cable', 'type_cable'); //print_rh($this->getAppareils);exit; $this->getAppareils('liste_fourreau', 'fourreau'); $ppo->index = $index; $req2 = "SELECT DISTINCT * from supports WHERE supports.id_unite_maintenance =" . $ppo->um->id_unite_maintenance; $ppo->liste_supports = _doQuery($req2); $req = "SELECT ie.id_installation_electrique,nomconducteur, fourreau, type_cable,type_raccordement,etat_general,id_support,coffret_classe2 FROM installation_electrique ie ,supports s WHERE ie.id_support=s.id_supports AND id_unite_maintenance=$index"; $ppo->liste_installations = _doQuery($req); $ppo->codes_supports = _doQuery("SELECT code_support,id_supports FROM supports WHERE supports.id_unite_maintenance =" . $ppo->id_um); $ppo->conducteurs = _doQuery("SELECT lib_item,lf.id_reference FROM liste_references lf,items i WHERE lf.id_reference=i.id_reference and lf.id_reference=122"); $ppo->type_raccordement = _doQuery("SELECT lib_item,lf.id_reference FROM liste_references lf,items i WHERE lf.id_reference=i.id_reference and lf.id_reference=118"); $i = 0; foreach ($ppo->liste_supports as $support) { $support->photo_file=$ajaxFileUploader->showFileUploader('photo_file',$_SESSION[number]++); $support->details = _doQuery("SELECT DISTINCT * from detail_support WHERE detail_support.id_support =" . $support->id_supports); $support->nb_details = count($support->details); $support->trait_pied_poteau = ($support->trait_pied_poteau ? 't' : 'f'); foreach ($support->details as $detail) { $detail->dissocie = ($detail->dissocie ? 't' : 'f'); $detail->plaque_contraste = ($detail->plaque_contraste ? 't' : 'f'); } } $ppo->ville_um=strtoupper($ppo->ville_um); if(!$ppo->liste_supports) try{ $ppo->photo_file=$ajaxFileUploader->showFileUploader('photo_file',$_SESSION[number]++); } catch(Exception $e){} $ppo->question[0]->id_items = 't'; $ppo->question[0]->lib_item = 'Oui'; $ppo->question[1]->id_items = 'f'; $ppo->question[1]->lib_item = 'Non'; //Impression de l'unite de maintenant if(CopixRequest::get('print')){ $ppo->print=true; $ppo->popup = 'popup'; $ppo->nb_pages=1; // Recherche de la NATURE YG 20081219 // R鳵ltat $ppo->nature_dynamique, $ppo->nature_statique, $ppo->nature_dynstat if ($ppo->profil==4 || $ppo->profil==5 || $ppo->profil==3) { $this->nature($ppo->id_um); } else $ppo->nature_dynstat=true; //Recherche du logo du client : Acces a la table des prestations pour l $info_societe = _doQuery("SELECT DISTINCT societes.logo_file FROM societes, contrats, prestations, prestations_unite_maintenance pum, unite_maintenance um WHERE societes.id_societes = contrats.id_societes AND contrats.id_contrats = um.id_contrats AND prestations.id_prestations = pum.id_prestations AND pum.statut = 't' AND um.id_unite_maintenance = $ppo->id_um" ); $info_societe = $info_societe[0]; if ($info_societe->logo_file) { $ppo->logo_centre = ''; $ppo->logo_centre_PDF = '../www/logo/'.$info_societe->logo_file; } // Calcul de la taille d'un bloc $hauteur=148+230+10;//titre + bloc "info" + marge //Donnees techniques //la hauteur du bloc depend de trois champs: // la colonne de gauche depend du nb de detecteurs omni-presence // la colonne de droite depend du nb de detecteurs UNI et omni-passage $hauteur+=191+max(max(0,count($ppo->um_dt->detecteur_omni_presence)-1)*14, max(0,(count($ppo->um_dt->detecteur_omni)-1+count($ppo->um_dt->detecteur_omni_passage)-1)*14)-7); //VBO-200808 Modification hauteur de page 1040 a 1500 et 1088 a 1548 //Enveloppe (armoire) if(!$ppo->page2 && $hauteur>1500) {$ppo->page2='donnees_techniques'; $ppo->saut_de_page=1548-$hauteur; $ppo->nb_pages++; } $hauteur+=10+225; //Controleur if(!$ppo->page2 && $hauteur>1500) {$ppo->page2='enveloppe'; $ppo->saut_de_page=1548-$hauteur+200; $ppo->nb_pages++; } $hauteur+=10+255; //Coordination if(!$ppo->page2 && $hauteur>1500) {$ppo->page2='controleur'; $ppo->saut_de_page=1548-$hauteur+210; $ppo->nb_pages++; } $hauteur+=10+87; //Telesurveillance if(!$ppo->page2 && $hauteur>1500) {$ppo->page2='coord'; $ppo->saut_de_page=1548-$hauteur+97; $ppo->nb_pages++; } //VBO-200808 Modification hauteur de page 1040 a 1540 et 1088 a 1588 if(CopixRequest::get('support')){ _LoadData('impression_supports'); $hauteur=0; $ajout_hauteur=0; $ppo->nb_pages_support=1; foreach($ppo->liste_supports as $support){ $ajout_hauteur=41+($support->nb_details?44:0)+count($support->nb_details)*16+($support->installation?44:0)+count($support->installation)*16; //print_r("$ajout_hauteur>$hauteur\n"); if($hauteur+$ajout_hauteur>640){ $hauteur=$ajout_hauteur; $support->new_page=$ppo->nb_pages_support+1; $ppo->nb_pages_support++; } else $hauteur+=$ajout_hauteur; } // MODIF YG 20081219 if ($ppo->nature_statique==true || $ppo->nature_dynstat==true) { return _arPPO($ppo, array ( 'template' => 'unite_maintenance/print_support.tpl', 'mainTemplate' => null )); } } else if ($ppo->nature_dynamique==true || $ppo->nature_dynstat==true) { _LoadData('impression_supports'); $hauteur=0; $ajout_hauteur=0; $ppo->nb_pages_support=1; foreach($ppo->liste_supports as $support){ $ajout_hauteur=41+($support->nb_details?44:0)+count($support->nb_details)*16+($support->installation?44:0)+count($support->installation)*16; //print_r("$ajout_hauteur>$hauteur\n"); if($hauteur+$ajout_hauteur>640){ $hauteur=$ajout_hauteur; $support->new_page=$ppo->nb_pages_support+1; $ppo->nb_pages_support++; } else $hauteur+=$ajout_hauteur; } header('Content-type: application/pdf; charset=iso-8859-1'); header('Content-Disposition: inline; filename=rapport.pdf'); header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: pre-check=0, post-check=0, max-age=0'); header('Pragma: anytextexeptno-cache', true); header('Cache-control: private'); header('Expires: 0'); require_once('../utils/pdf-php/class.ezpdf.php'); $pdf = & new Cezpdf(); FicheTechniqueUMPDF($pdf, $ppo,1); $pdf->ezStream(); return _arNone(); /* return _arPPO($ppo, array ( 'template' => 'unite_maintenance/print.tpl', 'mainTemplate' => null )); */ } else { return _arRedirect(CopixUrl :: get('contrats|unite_maintenance|form') . '?redirect=yes&recup=modif&print=yes&support=yes&id_um=' . $ppo->um->id_unite_maintenance . ''); } } else { // Nature // YG 20081218 // Recuperation du profil de la personne connectee $ppo->id_information=0; $ppo->profil = unserialize($_SESSION['SOPAC_USER'])->profil; // Test si profil Responsable technique(5) ou Secretaire technique(4) if ($ppo->profil==4 || $ppo->profil==5 || $ppo->profil==3) { // Recherche de la nature $this->nature($index); // // Affichage des differents onglets // if ($ppo->nature_dynstat==true) { // On affiche tous les onglets $ppo->id_donnees_t=1; $ppo->id_enveloppe=2; $ppo->id_controleur=3; $ppo->id_coordination=4; $ppo->dossier_technique=5; $ppo->id_support=6; $ppo->id_inst_electrique=7; } else { if ($ppo->nature_dynamique==true) { // On affiche seulement les onglets dynamique $ppo->id_donnees_t=1; $ppo->id_enveloppe=2; $ppo->id_controleur=3; $ppo->id_coordination=4; $ppo->dossier_technique=5; } else { if ($ppo->nature_statique==true) { $ppo->id_support=1; $ppo->id_inst_electrique=2; } } } } else { // Par defaut on voit tout! $ppo->id_donnees_t=1; $ppo->id_enveloppe=2; $ppo->id_controleur=3; $ppo->id_coordination=4; $ppo->dossier_technique=5; $ppo->id_support=6; $ppo->id_inst_electrique=7; $ppo->nature_dynstat=true; } return _arPPO($ppo, 'unite_maintenance/unite_maintenance_fiche.tpl'); } } break; } //Si l'utilisateur courant n'a pas les droits d'acces. return addMessage('erreur', 101, '', 'main|accueil|main'); } /* **************************************************************************************************** */ function processFormPDF() { global $ppo; $ppo->update = CopixRequest :: getAlphaNum('recup'); $session_societe = unserialize($_SESSION['SOCIETE'])->id_societes; $valeur = CopixRequest :: asArray(); //print_rh($valeur); // L'ID UM pour modification. $um = CopixRequest :: getAlphaNum('box'); $_SESSION['um'] = $um; if (!$um) $um = CopixRequest :: getAlphaNum('id_um'); $ppo->id_um = (is_array($um) ? $um[0] : $um); $ppo->um_type = $this->All_type(); $ppo->um_detecteur_omni_passage = $this->liste_dynamique(61); $ppo->um_liste_systeme_gestion = $this->liste_dynamique(62); $ppo->um_liste_systeme_prioritaire = $this->liste_dynamique(56); $ppo->um_type_doc = $this->liste_dynamique(50); try { $ppo->liste_documents = _doQuery("SELECT DISTINCT d.id_documents,d.nom,d.lien,items.lib_item as type_document FROM documents d,items WHERE d.id_unite_maintenance=$ppo->id_um AND items.id_items=d.type_document "); } catch (Exception $e) { } // Ajout des champs input pour l'insertion des docs. //~ D�but if ($ppo->get_add_doc = CopixRequest :: getAlphaNum('add_doc')) { $ppo->get_add_doc = $ppo->get_add_doc + 1; } $ppo->add_doc = array (); for ($i = 1; $i < $ppo->get_add_doc + 1; $i++) { $tab_doc = array ( 'type_doc' . $i, 'doc' . $i ); array_push($ppo->add_doc, $tab_doc); } //~ Deuxieme element if ($ppo->get_add_doc = CopixRequest :: getAlphaNum('add_doc')) { $ppo->get_add_doc = $ppo->get_add_doc + 1; } $ppo->add_doc = array (); for ($i = 1; $i < $ppo->get_add_doc + 1; $i++) { $tab_doc = array ( 'type_doc' . $i, 'doc' . $i ); array_push($ppo->add_doc, $tab_doc); } //~ Fin switch ($ppo->update) { /*////////////////////// On modifie une nouvelle unite de maintenance ///////////////////////////////*/ case 'modif' : if (droitsAcces(15) || CopixRequest :: getAlphaNum('print')=='yes') { // $index correspond � l'ID de l'unite de mainetenance $index = CopixRequest :: getAlphaNum('box'); if(!$index) $index = CopixRequest :: getAlphaNum('id_um'); if (!CopixRequest :: getAlphaNum('redirect')) $index = $index[0]; //print_rh($index); if(!$index) $index = CopixRequest :: getAlphaNum('um'); // on recupère toutes les UM du client $liste_um = _doQuery(" select id_unite_maintenance as id_um from unite_maintenance where id_contrats in ( select um.id_contrats from unite_maintenance um inner join contrats c on c.id_contrats = um.id_contrats where id_unite_maintenance=" . $index. ")"); require_once('../utils/pdf-php/class.ezpdf.php'); $pdf = & new Cezpdf(); header('Content-type: application/pdf'); header('Content-Disposition: inline; filename=Extraction_liste_um_GMAO.pdf'); header('Last-Modified: '.gmdate('D, d M Y H:i:s') . ' GMT'); header('Cache-Control: no-store, no-cache, must-revalidate'); header('Cache-Control: pre-check=0, post-check=0, max-age=0'); header('Pragma: anytextexeptno-cache', true); header('Cache-control: private'); header('Expires: 0'); $nbUm =0; foreach($liste_um as $um){ $index = $um->id_um; $ppo->id_um = $um->id_um; $nbUm ++; // donnees de l'utilisateur $criteres = _daoSp()->addCondition('id_unite_maintenance', '=', $index); // On recupee les donnees de l'utilsateur selectionnees lors du process View $ppo->um = _dao('unite_maintenance')->findBy($criteres); //Comme le resultat est un tableau a� un element, on ne prend que cet element... $ppo->um = $ppo->um[0]; $ppo->um->vignette = trim($ppo->um->vignette); $ppo->um->date_mise_service = dateUsToFr($ppo->um->date_mise_service); $ppo->um->date_revision = dateUsToFr($ppo->um->date_revision); $ppo->um->date_maj = dateUsToFr($ppo->um->date_maj); $villeQuery = _doQuery("SELECT (lib_item||'('||cd_item||')')as nom_ville, lib_item FROM items WHERE id_items=" . $ppo->um->id_villes); $ppo->ville = $villeQuery[0]->nom_ville; $ppo->ville_court = strtoupper($villeQuery[0]->lib_item); $ville_um = _doQuery("SELECT lib_item as nom_ville FROM items WHERE id_items=" . $ppo->um->id_villes); $ppo->ville_um = $ville_um[0]->nom_ville; $criteres = _daoSp()->addCondition('id_localisation', '=', $ppo->um->id_localisation); $ppo->localisation = _dao('localisation')->FindBy($criteres); $ppo->localisation= $ppo->localisation[0]; $ppo->localisation->adresse= stripslashes($ppo->localisation->adresse); //$ppo->um_etat=_dao('etat_unite_maintenance')->FindAll(); $ppo->um_etat = _doQuery("SELECT id_items, lib_item FROM items WHERE id_reference=127"); // Armoire // On recupre l'ID de l'armoire dans la table d'association "armoire_unite_maintenance" $ppo->id_armoire = _doQuery("SELECT id_armoire FROM armoire_unite_maintenance WHERE id_unite_maintenance = $index"); $ppo->id_armoire = $ppo->id_armoire[0]->id_armoire; if ($ppo->id_armoire) { $ppo->armoire = _doQuery("SELECT * FROM armoire WHERE id_armoire = $ppo->id_armoire"); $ppo->armoire = $ppo->armoire[0]; $ppo->armoire_unite_maintenance = _doQuery("SELECT um.id_unite_maintenance,um.cd_unite_maintenance,lib_item FROM armoire_unite_maintenance a_um,unite_maintenance um ,items WHERE id_armoire = $ppo->id_armoire AND a_um.id_unite_maintenance=um.id_unite_maintenance AND um.id_villes=items.id_items"); } //************************************************************************ //**** reccuperation du contenu des filtres pour affiner les requetes **** //************************************************************************ $contrats_selected = CopixRequest :: get('contrats'); $ppo->contrats_selected = $contrats_selected; $ville_selected = CopixRequest :: get('city'); $ppo->ville_selected = $ville_selected; $societes_selected = CopixRequest :: get('societe'); $ppo->societes_selected = $societes_selected; $loc_selected = CopixRequest :: get('loc'); $ppo->loc_selected = $loc_selected; $um_selected = CopixRequest :: get('um'); $ppo->um_selected = $um_selected; //Si session_filtre est vide : affichage par defaut des um oranges et rouges if (!CopixRequest :: get('session_filtre')) // MANTIS191 YG 20081007 Ajout ,8 $ppo->feux = array (4,6,8); //Sinon affichage des statuts selectionnes else $ppo->feux = CopixRequest :: get('feux'); if ($ppo->feux) { //Etat UM : Rouge if (in_array("4", $ppo->feux)) { $ppo->panne = true; $ppo->etat = 4; } //Etat UM : Jaune if (in_array("5", $ppo->feux)) { $ppo->normal = true; $ppo->etat = 5; } // MANTIS191 YG 20081007 if (in_array("8", $ppo->feux)) { $ppo->travaux_encours = true; } //Etat UM : Vert if (in_array("6", $ppo->feux)) { $ppo->entravaux = true; $ppo->etat = 6; } //Etat UM : Noir if (in_array("7", $ppo->feux)) { $ppo->aunoir = true; $ppo->etat = 7; } } else{ $ppo->feux = array (); } $ppo->_session_filtre = CopixRequest :: getAlphaNum('session_filtre'); $ppo->sens = CopixRequest :: get('sens'); //insertion du document de longlet document $this->getAppareils('marques_armoire', 'armoire'); $this->getAppareils('marques_serrures', 'serrure'); $this->getAppareils('marques_coffret', 'coffret_ag'); $this->getAppareils('marques_disjoncteur', 'typ_disj'); $this->getAppareils('marques_socle', 'socle'); $this->getAppareils('peinture', 'peinture'); //Fin armoire // Controleur //////////////////////////////////////// $this->getAppareils('liste_vers_log', 'vers_log'); $this->getAppareils('liste_vers_cpu', 'vers_cpu'); $this->getAppareils('liste_type_controleur', 'controleur'); $this->getAppareils('liste_ligne', 'nb_lignes'); $this->getAppareils('liste_cablage_max', 'cablage'); $this->getAppareils('liste_marque_controleur', 'marq_contr'); $this->getAppareils('liste_equipement', 'equip_cpu'); $this->getAppareils('liste_horloge', 'horloge'); $this->getAppareils('marques_cpu', 'carte_cpu'); $this->getAppareils('marques_alim', 'carte_alim'); $this->getAppareils('liste_marque_es', 'carte_es'); $this->getAppareils('liste_eprom', 'eprom'); $ppo->controleur = _doQuery("SELECT DISTINCT * FROM controleur WHERE controleur.id_unite_maintenance = $ppo->id_um"); if ($ppo->controleur) { $ppo->controleur = $ppo->controleur[0]; $ppo->valeur_horloge = $ppo->controleur->horloge; $ppo->valeur_equipement_cpu = $ppo->controleur->equipement_cpu; $ppo->valeur_marq_controleur = $ppo->controleur->modele; $ppo->valeur_precablage = $ppo->controleur->pre_cablage_max; $ppo->valeur_nbr_lign = $ppo->controleur->nb_ligne_utilisee; $ppo->valeur_type_controleur = $ppo->controleur->type; $ppo->valeur_version_cpu = $ppo->controleur->version_cpu; $ppo->valeur_version_log = $ppo->controleur->version_logiciel; $serie_carte_puissance = _doQuery("SELECT DISTINCT serie_carte_puissance FROM controleur_serie_carte_puissance WHERE serie_carte_puissance !='' AND controleur_serie_carte_puissance.id_controleur =" . $ppo->controleur->id_controleur); foreach ($serie_carte_puissance as $scp) $ppo->controleur->serie_carte_puissance[] = $scp->serie_carte_puissance; $serie_carte_entrees = _doQuery("SELECT DISTINCT serie_carte_entrees FROM controleur_serie_carte_entrees WHERE serie_carte_entrees !='' AND controleur_serie_carte_entrees.id_controleur =" . $ppo->controleur->id_controleur); foreach ($serie_carte_entrees as $sce) $ppo->controleur->serie_carte_entrees[] = $sce->serie_carte_entrees; $serie_carte_sorties = _doQuery("SELECT DISTINCT serie_carte_sorties FROM controleur_serie_carte_sorties WHERE serie_carte_sorties !='' AND controleur_serie_carte_sorties.id_controleur =" . $ppo->controleur->id_controleur); foreach ($serie_carte_sorties as $scs) $ppo->controleur->serie_carte_sorties[] = $scs->serie_carte_sorties; } //Fin controleur // Donnees techniques. $um_dt = _doquery("SELECT * FROM donnees_techniques WHERE donnees_techniques.id_unite_maintenance =" . $ppo->um->id_unite_maintenance); if ($um_dt) { $ppo->um_dt = $um_dt[0]; $omni_passage = _doquery("SELECT donnees_techniques_omni_passage as lib ,count(*) as nb FROM donnees_techniques_omni_passage WHERE donnees_techniques_omni_passage.id_donnees_techniques =" . $ppo->um_dt->id_donnees_techniques ." group by donnees_techniques_omni_passage"); $omni_presence = _doquery("SELECT donnees_techniques_omni as lib ,count(*) as nb FROM donnees_techniques_omni WHERE donnees_techniques_omni.id_donnees_techniques =" . $ppo->um_dt->id_donnees_techniques ." group by donnees_techniques_omni"); $uni = _doquery("SELECT donnees_techniques_uni as lib ,count(*) as nb FROM donnees_techniques_uni WHERE donnees_techniques_uni.id_donnees_techniques =" . $ppo->um_dt->id_donnees_techniques ." group by donnees_techniques_uni"); $tab_omni_passage = array(); $tab_omni = array(); $tab_uni = array(); foreach ($omni_passage as $omni) { $tab_omni_passage[] = $omni; } foreach ($omni_presence as $omni) { $tab_omni[] = $omni; } foreach ($uni as $omni) { $tab_uni[] = $omni; } } $ppo->um_dt->detecteur_omni_passage = $tab_omni_passage; $ppo->um_dt->detecteur_omni = $tab_omni; $ppo->um_dt->detecteur_uni = $tab_uni; $this->getAppareils('liste_fusible_bornier', 'fusibl'); $this->getAppareils('liste_fournisseur_electricite', 'frn_elec'); $this->getAppareils('tension_secteur', 'tension'); $this->getAppareils('liste_omni', 'omni'); $this->getAppareils('liste_uni', 'uni'); //Fin donnees techniques. $ppo->um_doc = _doQuery("SELECT * FROM documents,element_doc_item WHERE element_doc_item.id_element_doc = documents.cd_doc AND element_doc_item.id_unite_maintenance = $index"); $ppo->size = sizeof($ppo->um_doc); // Coordination. $ppo->coordination = _doquery("SELECT * FROM coordination_telesurveillance WHERE coordination_telesurveillance.id_unite_maintenance =" . $ppo->um->id_unite_maintenance); $ppo->coordination = $ppo->coordination[0]; $this->getAppareils('liste_type_support', 'typ_sup'); $this->getAppareils('marques_coordination', 'coord_tls'); // Telesurveillance. $ppo->telesurveillance = _doquery("SELECT * FROM telesurveillance WHERE telesurveillance.id_unite_maintenance =" . $ppo->um->id_unite_maintenance); if ($ppo->telesurveillance) { $ppo->telesurveillance = $ppo->telesurveillance[0]; $telephone_pc = _doquery("SELECT DISTINCT tel_pc FROM telesurveillance_tel_pc WHERE tel_pc !='' AND telesurveillance_tel_pc.id_telesurveillance =" . $ppo->telesurveillance->id_telesurveillance); foreach ($telephone_pc as $tel_pc) $ppo->telesurveillance->tel_pc[] = $tel_pc->tel_pc; } $this->getAppareils('liste_telesurveillance', 'tls'); $this->getAppareils('liste_type_communication', 'type_com'); //Support require_once("../utils/sylis/AjaxFileUploader.inc.php"); try{ $ajaxFileUploader = new AjaxFileuploader("documents/$ppo->ville_court/".$ppo->um->cd_unite_maintenance); } catch(Exception $e){} $ppo->traitement_poteau = array (); $ppo->traitement_poteau[0] = 'Oui'; $ppo->traitement_poteau[1] = 'Non'; $ppo->annee_actuelle=date('Y'); $intervalle=$ppo->annee_actuelle-1990 + 10; $ppo->liste_annees = array(); for($i=0;$i<$intervalle;$i++) { $ppo->liste_annees[$i]->id_items=(1990+$i); $ppo->liste_annees[$i]->lib_item=(1990+$i); } $this->getAppareils('liste_type_support', 'typ_sup'); $this->getAppareils('liste_forme_support', 'form_sup'); $this->getAppareils('liste_matiere_support', 'mat_sup'); $this->getAppareils('liste_hauteur_support', 'haut_sup'); $this->getAppareils('liste_etat_support', 'etat_sup'); $this->getAppareils('liste_deport_support', 'dep_sup'); $this->getAppareils('liste_marque_support', 'marq_d_sup'); $this->getAppareils('liste_fixation_support', 'fix_d_sup'); $this->getAppareils('liste_signal_support', 'sign_d_sup'); $this->getAppareils('liste_source_support', 'src_d_sup'); $this->getAppareils('liste_specification_support', 'spec_d_sup'); $this->getAppareils('liste_diametre_support', 'diam_sup'); //remplissage des combobox $this->getAppareils('liste_raccord_installation', 'typracinst'); $this->getAppareils('liste_etat_supp', 'etat_d_sup'); $this->getAppareils('liste_conducteur', 'nb_cdteur'); $this->getAppareils('liste_type_cable', 'type_cable'); //print_rh($this->getAppareils);exit; $this->getAppareils('liste_fourreau', 'fourreau'); $ppo->index = $index; $req2 = "SELECT DISTINCT * from supports WHERE supports.id_unite_maintenance =" . $ppo->um->id_unite_maintenance; $ppo->liste_supports = _doQuery($req2); $req = "SELECT ie.id_installation_electrique,nomconducteur, fourreau, type_cable,type_raccordement,etat_general,id_support,coffret_classe2 FROM installation_electrique ie ,supports s WHERE ie.id_support=s.id_supports AND id_unite_maintenance=$index"; $ppo->liste_installations = _doQuery($req); $ppo->codes_supports = _doQuery("SELECT code_support,id_supports FROM supports WHERE supports.id_unite_maintenance =" . $ppo->id_um); $ppo->conducteurs = _doQuery("SELECT lib_item,lf.id_reference FROM liste_references lf,items i WHERE lf.id_reference=i.id_reference and lf.id_reference=122"); $ppo->type_raccordement = _doQuery("SELECT lib_item,lf.id_reference FROM liste_references lf,items i WHERE lf.id_reference=i.id_reference and lf.id_reference=118"); $i = 0; foreach ($ppo->liste_supports as $support) { $support->photo_file=$ajaxFileUploader->showFileUploader('photo_file',$_SESSION[number]++); $support->details = _doQuery("SELECT DISTINCT * from detail_support WHERE detail_support.id_support =" . $support->id_supports); $support->nb_details = count($support->details); $support->trait_pied_poteau = ($support->trait_pied_poteau ? 't' : 'f'); foreach ($support->details as $detail) { $detail->dissocie = ($detail->dissocie ? 't' : 'f'); $detail->plaque_contraste = ($detail->plaque_contraste ? 't' : 'f'); } } $ppo->ville_um=strtoupper($ppo->ville_um); if(!$ppo->liste_supports) try{ $ppo->photo_file=$ajaxFileUploader->showFileUploader('photo_file',$_SESSION[number]++); } catch(Exception $e){} $ppo->question[0]->id_items = 't'; $ppo->question[0]->lib_item = 'Oui'; $ppo->question[1]->id_items = 'f'; $ppo->question[1]->lib_item = 'Non'; //Impression de l'unite de maintenant if(CopixRequest::get('print')){ $ppo->print=true; $ppo->popup = 'popup'; $ppo->nb_pages=1; // Recherche de la NATURE YG 20081219 // R鳵ltat $ppo->nature_dynamique, $ppo->nature_statique, $ppo->nature_dynstat if ($ppo->profil==4 || $ppo->profil==5 || $ppo->profil==3) { $this->nature($ppo->id_um); } else $ppo->nature_dynstat=true; //Recherche du logo du client : Acces a la table des prestations pour l $info_societe = _doQuery("SELECT DISTINCT societes.logo_file FROM societes, contrats, prestations, prestations_unite_maintenance pum, unite_maintenance um WHERE societes.id_societes = contrats.id_societes AND contrats.id_contrats = um.id_contrats AND um.id_unite_maintenance = pum.id_unite_maintenance AND prestations.id_prestations = pum.id_prestations AND pum.statut = 't' AND um.id_unite_maintenance = $ppo->id_um" ); $info_societe = $info_societe[0]; if ($info_societe->logo_file) { $ppo->logo_centre = ''; $ppo->logo_centre_PDF = '../www/logo/'.$info_societe->logo_file; } // Calcul de la taille d'un bloc $hauteur=148+230+10;//titre + bloc "info" + marge //Donnees techniques //la hauteur du bloc depend de trois champs: // la colonne de gauche depend du nb de detecteurs omni-presence // la colonne de droite depend du nb de detecteurs UNI et omni-passage $hauteur+=191+max(max(0,count($ppo->um_dt->detecteur_omni_presence)-1)*14, max(0,(count($ppo->um_dt->detecteur_omni)-1+count($ppo->um_dt->detecteur_omni_passage)-1)*14)-7); //VBO-200808 Modification hauteur de page 1040 a 1500 et 1088 a 1548 //Enveloppe (armoire) if(!$ppo->page2 && $hauteur>1500) {$ppo->page2='donnees_techniques'; $ppo->saut_de_page=1548-$hauteur; $ppo->nb_pages++; } $hauteur+=10+225; //Controleur if(!$ppo->page2 && $hauteur>1500) {$ppo->page2='enveloppe'; $ppo->saut_de_page=1548-$hauteur+200; $ppo->nb_pages++; } $hauteur+=10+255; //Coordination if(!$ppo->page2 && $hauteur>1500) {$ppo->page2='controleur'; $ppo->saut_de_page=1548-$hauteur+210; $ppo->nb_pages++; } $hauteur+=10+87; //Telesurveillance if(!$ppo->page2 && $hauteur>1500) {$ppo->page2='coord'; $ppo->saut_de_page=1548-$hauteur+97; $ppo->nb_pages++; } if ($ppo->nature_dynamique==true || $ppo->nature_dynstat==true) { _LoadData('impression_supports'); $hauteur=0; $ajout_hauteur=0; $ppo->nb_pages_support=1; foreach($ppo->liste_supports as $support){ $ajout_hauteur=41+($support->nb_details?44:0)+count($support->nb_details)*16+($support->installation?44:0)+count($support->installation)*16; //print_r("$ajout_hauteur>$hauteur\n"); if($hauteur+$ajout_hauteur>640){ $hauteur=$ajout_hauteur; $support->new_page=$ppo->nb_pages_support+1; $ppo->nb_pages_support++; } else $hauteur+=$ajout_hauteur; } FicheTechniqueUMPDF($pdf, $ppo,$nbUm); } } } $pdf->ezStream(); return _arNone(); } break; } //Si l'utilisateur courant n'a pas les droits d'acces. return addMessage('erreur', 101, '', 'main|accueil|main'); } /* **************************************************************************************************** */ function processShowSupport() { global $ppo; $data = CopixRequest :: asArray(); $ppo->id_um = $data[um]; $this->getAppareils('liste_type_support', 'typ_sup'); $this->getAppareils('liste_forme_support', 'form_sup'); $this->getAppareils('liste_matiere_support', 'mat_sup'); $this->getAppareils('liste_hauteur_support', 'haut_sup'); $this->getAppareils('liste_etat_support', 'etat_sup'); $this->getAppareils('liste_deport_support', 'dep_sup'); //Support $req=_doQuery("SELECT items.lib_item,um.cd_unite_maintenance FROM unite_maintenance um,items WHERE um.id_villes=items.id_items and um.id_unite_maintenance=$ppo->id_um"); $req=$req[0]; require_once("../utils/sylis/AjaxFileUploader.inc.php"); $repertoire="documents/$req->lib_item/$req->cd_unite_maintenance"; if(!is_dir($repertoire)){ mkdir("documents/$req->lib_item"); mkdir($repertoire); } $ajaxFileUploader = new AjaxFileuploader($repertoire); $ppo->photo_file=$ajaxFileUploader->showFileUploader('photo_file',$_SESSION[number]++); $ppo->photo_file_afterdel=str_replace('"','\"',$ppo->photo_file); $ppo->photo_file_afterdel=str_replace("'","\'",$ppo->photo_file_afterdel); $ppo->question[0]->id_items = 't'; $ppo->question[0]->lib_item = 'Oui'; $ppo->question[1]->id_items = 'f'; $ppo->question[1]->lib_item = 'Non'; $this->getAppareils('peinture', 'peinture'); $this->getAppareils('liste_marque_support', 'marq_d_sup'); $this->getAppareils('liste_fixation_support', 'fix_d_sup'); $this->getAppareils('liste_signal_support', 'sign_d_sup'); $this->getAppareils('liste_source_support', 'src_d_sup'); $this->getAppareils('liste_specification_support', 'spec_d_sup'); $this->getAppareils('liste_diametre_support', 'diam_sup'); $ppo->annee_actuelle=date('Y'); $intervalle=$ppo->annee_actuelle-1990 + 10; $ppo->liste_annees = array(); for($i=0;$i<$intervalle;$i++) { $ppo->liste_annees[$i]->id_items=(1990+$i); $ppo->liste_annees[$i]->lib_item=(1990+$i); } return _arPPO($ppo, array ( 'template' => 'unite_maintenance/elem_stat/support_bloc.tpl', 'mainTemplate' => null )); } function processDeleteInstallation() { $requete = "delete from installation_electrique where id_installation_electrique=" . CopixRequest :: get('num'); _doQuery($requete); } function processShowInstallation() { global $ppo; $this->getAppareils('liste_raccord_installation', 'typracinst'); $this->getAppareils('liste_etat_supp', 'etat_d_sup'); $this->getAppareils('liste_conducteur', 'nb_cdteur'); $this->getAppareils('liste_type_cable', 'type_cable'); $this->getAppareils('liste_fourreau', 'fourreau'); $ppo->id_um = _request('um'); $ppo->codes_supports = _doQuery("SELECT code_support,id_supports FROM supports WHERE id_unite_maintenance=" . $ppo->id_um); //var_dump("SELECT code_support FROM supports WHERE id_unite_maintenance=". $ppo->id_um);exit; //$ppo->codes_supports = _doQuery("SELECT code_support FROM supports WHERE id_supports=".; $ppo->conducteurs = _doQuery("SELECT lib_item,lf.id_reference FROM liste_references lf,items i WHERE lf.id_reference=i.id_reference and lf.id_reference=122"); $ppo->type_raccordement = _doQuery("SELECT lib_item,lf.id_reference FROM liste_references lf,items i WHERE lf.id_reference=i.id_reference and lf.id_reference=118"); $ppo->liste_etat_support = _doQuery("SELECT lib_item,lf.id_reference FROM liste_references lf,items i WHERE lf.id_reference=i.id_reference and lf.id_reference=116"); $ppo->question[0]->id_items = 't'; $ppo->question[0]->lib_item = 'Oui'; $ppo->question[1]->id_items = 'f'; $ppo->question[1]->lib_item = 'Non'; return _arPPO($ppo, array ( 'template' => 'unite_maintenance/elem_stat/installations_electriques_bloc.tpl', 'mainTemplate' => null )); } function processShowSupportDetail() { global $ppo; $ppo->id_um = CopixRequest :: getAlphaNum('um'); $ppo->question[0]->id_items = 't'; $ppo->question[0]->lib_item = 'Oui'; $ppo->question[1]->id_items = 'f'; $ppo->question[1]->lib_item = 'Non'; $this->getAppareils('liste_marque_support', 'marq_d_sup'); $this->getAppareils('liste_fixation_support', 'fix_d_sup'); $this->getAppareils('liste_signal_support', 'sign_d_sup'); $this->getAppareils('liste_source_support', 'src_d_sup'); $this->getAppareils('liste_specification_support', 'spec_d_sup'); $this->getAppareils('liste_diametre_support', 'diam_sup'); return _arPPO($ppo, array ( 'template' => 'unite_maintenance/elem_stat/detail_elements.tpl', 'mainTemplate' => null )); } function processAddSupport() { global $ppo; // On recupere les donnees du formulaire dans la table $element $element = CopixRequest :: asArray(); $ppo->id_um = $element['id']; $ppo->id_support = $element['ids']; $table = array ( array ( 'nom' => 'id', 'type' => 'int', 'champ' => 'id_unite_maintenance' ), array ( 'nom' => 'typ', 'type' => 'int', 'champ' => 'type_support' ), array ( 'nom' => 'for', 'type' => 'int', 'champ' => 'forme' ), array ( 'nom' => 'mat', 'type' => 'int', 'champ' => 'matiere' ), array ( 'nom' => 'hau', 'type' => 'int', 'champ' => 'hauteur' ), array ( 'nom' => 'eta', 'type' => 'int', 'champ' => 'etat' ), array ( 'nom' => 'dep', 'type' => 'int', 'champ' => 'deport' ), array ( 'nom' => 'ann', 'type' => 'texte', 'champ' => 'annee' ), array ( 'nom' => 'pei', 'type' => 'int', 'champ' => 'peinture' ), array ( 'nom' => 'tra', 'type' => 'bool', 'champ' => 'trait_pied_poteau' ), ); if ($ppo->id_support) $this->Equipement('supports', $ppo->id_support, $table, $element); else { $this->newEquipement('supports', $table, $element); } $ppo->liste_supports = _doQuery("SELECT DISTINCT * from supports WHERE supports.id_unite_maintenance = $ppo->id_um"); $this->getAppareils('liste_type_support', 'typ_sup'); $this->getAppareils('liste_forme_support', 'form_sup'); $this->getAppareils('liste_matiere_support', 'mat_sup'); $this->getAppareils('liste_hauteur_support', 'haut_sup'); $this->getAppareils('liste_etat_support', 'etat_sup'); $this->getAppareils('liste_deport_support', 'dep_sup'); $this->getAppareils('peinture', 'peinture'); $this->getAppareils('liste_marque_support', 'marq_d_sup'); $this->getAppareils('liste_fixation_support', 'fix_d_sup'); $this->getAppareils('liste_signal_support', 'sign_d_sup'); $this->getAppareils('liste_source_support', 'src_d_sup'); $this->getAppareils('liste_specification_support', 'spec_d_sup'); $this->getAppareils('liste_diametre_support', 'diam_sup'); foreach ($ppo->liste_supports as $support) { $support->nom_type = $ppo->bis[$support->type_support]; $support->nom_forme = $ppo->bis[$support->forme]; $support->nom_matiere = $ppo->bis[$support->matiere]; $support->nom_hauteur = $ppo->bis[$support->hauteur]; $support->nom_etat = $ppo->bis[$support->etat]; $support->nom_deport = $ppo->bis[$support->deport]; } return _arPPO($ppo, array ( 'template' => 'unite_maintenance/elem_stat/support_table.tpl', 'mainTemplate' => null )); } function processSaveSupport() { global $ppo; $data = CopixRequest :: get('param'); $id_support = CopixRequest :: get('support'); $id_um = CopixRequest :: get('um'); $requete_ok=null; /*for ($i = 0; $i < $cnt; $i++) $liste_param[$i] = ($param[$i] ? '\'' . $param[$i] . '\'' : 'null');*/ $champs = array ( 'code_support', 'type_support', 'forme', 'matiere', 'hauteur', 'etat', 'deport', 'annee', 'peinture', 'trait_pied_poteau', 'photo' ); if ($id_support) { $cnt = count($champs); for ($i = 0; $i < $cnt; $i++) { switch($champs[$i]){ case 'trait_pied_poteau': case 'photo' : if ($champs[$i] == '') $champs[$i] = $champs[$i] . "=" . CopixRequest :: get($champs[$i]); else $champs[$i] = $champs[$i] . "='" . CopixRequest :: get($champs[$i]) . "'"; break; case 'code_support' : $champs[$i] = $champs[$i] ."='" . CopixRequest :: get($champs[$i]) . "'"; break; default : $champs[$i] = $champs[$i] .'=' . CopixRequest :: get($champs[$i]); break; } } $ppo->requete = "UPDATE supports SET " . implode(',', $champs)." WHERE id_supports=$id_support"; $requete_ok = _doQuery($ppo->requete); } else { if (CopixRequest :: get('trait_pied_poteau') != 'null') { $traitement = "'" . CopixRequest :: get('trait_pied_poteau') . "'"; } else $traitement = CopixRequest :: get('trait_pied_poteau'); $ppo->requete = "INSERT into supports(id_unite_maintenance," . implode(',', $champs) . ") VALUES($id_um,'" . CopixRequest :: get('code_support') . "'," . CopixRequest :: get('type_support') . "," . CopixRequest :: get('forme') . "," . CopixRequest :: get('matiere') . "," . CopixRequest :: get('hauteur') . "," . CopixRequest :: get('etat') . "," . CopixRequest :: get('deport') . "," . CopixRequest :: get('annee') . "," . CopixRequest :: get('peinture') . "," . $traitement . ",'" . CopixRequest :: get('photo') . "')"; $requete_ok=_doQuery($ppo->requete); } //var_dump("requete ok ".$requete_ok); if (!$id_support) { $id_support = _doQuery("SELECT id_supports FROM supports WHERE code_support='" . CopixRequest :: get('code_support')."'"); $id_support = $id_support[0]->id_supports; } if($requete_ok){ /*upload fichier*/ $requete="SELECT DISTINCT ville.lib_item as ville,um.cd_unite_maintenance FROM unite_maintenance um,items ville WHERE um.id_villes=ville.id_items and um.id_unite_maintenance=$id_um"; $info=_doQuery($requete); $nom_um = $info[0]->cd_unite_maintenance; $ville = $info[0]->ville; if (!is_dir("./documents/$ville")) mkdir("./documents/$ville"); if (!is_dir("./documents/$ville/$nom_um")) mkdir("./documents/$ville/$nom_um"); if (($fichier = CopixUploadedFile :: get('photo')) !== false) { $fichier->move("./documents/$ville/$nom_um"); } /*upload fichier*/ } echo $id_support; } function processDuplicateSupport() { global $ppo; $data = CopixRequest :: get('param'); $id_support = CopixRequest :: get('support'); $id_um = CopixRequest :: get('um'); $requete_ok=null; /*for ($i = 0; $i < $cnt; $i++) $liste_param[$i] = ($param[$i] ? '\'' . $param[$i] . '\'' : 'null');*/ $champs = array ( 'code_support', 'type_support', 'forme', 'matiere', 'hauteur', 'etat', 'deport', 'annee', 'peinture', 'trait_pied_poteau', 'photo' ); if ($id_support) { $cnt = count($champs); for ($i = 0; $i < $cnt; $i++) { if ($champs[$i] != 'trait_pied_poteau') { if (($champs[$i] == 'code_support') || ($champs[$i] == 'photo')) $champs[$i] = $champs[$i] . "='" . CopixRequest :: get($champs[$i]) . "'"; else $champs[$i] = $champs[$i] . '=' . CopixRequest :: get($champs[$i]); } else { if ($champs[$i] == '') { $champs[$i] = $champs[$i] . "=" . CopixRequest :: get($champs[$i]); } else { $champs[$i] = $champs[$i] . "='" . CopixRequest :: get($champs[$i]) . "'"; } } } $ppo->requete = "UPDATE supports SET " . implode(',', $champs)." WHERE id_supports=$id_support"; //print_rh($ppo->requete); $requete_ok = _doQuery($ppo->requete); } else { if (CopixRequest :: get('trait_pied_poteau') != 'null') { $traitement = "'" . CopixRequest :: get('trait_pied_poteau') . "'"; } else $traitement = CopixRequest :: get('trait_pied_poteau'); $ppo->requete = "INSERT into supports(id_unite_maintenance," . implode(',', $champs) . ") VALUES($id_um,'" . CopixRequest :: get('code_support') . "'," . CopixRequest :: get('type_support') . "," . CopixRequest :: get('forme') . "," . CopixRequest :: get('matiere') . "," . CopixRequest :: get('hauteur') . "," . CopixRequest :: get('etat') . "," . CopixRequest :: get('deport') . "," . CopixRequest :: get('annee') . "," . CopixRequest :: get('peinture') . "," . $traitement . ",'" . CopixRequest :: get('photo') . "')"; $requete_ok=_doQuery($ppo->requete); } $champs = array ( 'code_support', 'type_support', 'forme', 'matiere', 'hauteur', 'etat', 'deport', 'annee', 'peinture', 'trait_pied_poteau', 'photo' ); //var_dump("requete ok ".$requete_ok); if (!$id_support) { $id_support = _doQuery("SELECT id_supports FROM supports WHERE code_support='" . CopixRequest :: get('code_support')."'"); $id_support = $id_support[0]->id_supports; } if($requete_ok){ /*upload fichier*/ $requete="SELECT DISTINCT ville.lib_item as ville,um.cd_unite_maintenance FROM unite_maintenance um,items ville WHERE um.id_villes=ville.id_items and um.id_unite_maintenance=$id_um"; $info=_doQuery($requete); $nom_um = $info[0]->cd_unite_maintenance; $ville = $info[0]->ville; if (!is_dir("./documents/$ville")) mkdir("./documents/$ville"); if (!is_dir("./documents/$ville/$nom_um")) mkdir("./documents/$ville/$nom_um"); if (($fichier = CopixUploadedFile :: get('photo')) !== false) { $fichier->move("./documents/$ville/$nom_um"); } /*upload fichier*/ } /* DUPLICATION DU SUPPORT A */ // Code support du nouveau support B $code_support=explode('_',CopixRequest :: get('code_support')); $new_code_support=null; $indice_support=0; $last_support=_doQuery("SELECT code_support FROM supports WHERE code_support LIKE '$code_support[0]_%' ORDER BY code_support DESC"); foreach($last_support as $code){ $element=explode('_',$code->code_support); if(is_numeric($element[1]) && $element[1]>$indice_support ) $indice_support=$element[1]; } $new_code_support=$code_support[0].'_'.($indice_support+1); //Insertion du nouveau support B if (CopixRequest :: get('trait_pied_poteau') != 'null') { $traitement = "'" . CopixRequest :: get('trait_pied_poteau') . "'"; } else $traitement = CopixRequest :: get('trait_pied_poteau'); $requete = "INSERT into supports(id_unite_maintenance," . implode(',', $champs) . ") VALUES($id_um,'" . $new_code_support . "'," . CopixRequest :: get('type_support') . "," . CopixRequest :: get('forme') . "," . CopixRequest :: get('matiere') . "," . CopixRequest :: get('hauteur') . "," . CopixRequest :: get('etat') . "," . CopixRequest :: get('deport') . "," . CopixRequest :: get('annee') . "," . CopixRequest :: get('peinture') . "," . $traitement . ",'" . CopixRequest :: get('photo') . "')"; $info=_doQuery($requete); //Recuperation de l id du support B $id_support_B = _doQuery("SELECT id_supports FROM supports WHERE code_support='" . $new_code_support."'"); $id_support_B =$id_support_B[0]->id_supports; //Print_rh("$id_support $id_support_B"); //Recuperation des details du support A $requete = "SELECT DISTINCT * from detail_support WHERE id_support=$id_support"; $liste_supports = _doQuery($requete); //Pour chaque ligne, sauvegarder en remplacant l id support de A par celui de B foreach($liste_supports as $support){ $liste=array(); foreach($support as $param=>$valeur) if($param!="id_detail_support"){ if($valeur=='') $liste[$param]="null"; else $liste[$param]="'$valeur'"; } $liste[id_support]=$id_support_B; try{_doQuery("INSERT into detail_support(".implode(',',array_keys($liste)).") VALUES (".implode(",",array_values($liste)).")");} catch(exception $e){print_rh($e);} } //Recuperation des installations electriques du support A $requete = "SELECT DISTINCT * from installation_electrique WHERE id_support=$id_support"; $liste_installs = _doQuery($requete); //Pour chaque ligne, sauvegarder en remplacant l id support de A par celui de B foreach($liste_installs as $install){ $liste=array(); foreach($install as $param=>$valeur) // MODIF YANNICK 20081107 if($param!="id_installation_electrique"){ if($valeur=='') $liste[$param]="null"; else $liste[$param]="'$valeur'"; } $liste[id_support]=$id_support_B; try { //_doQuery("INSERT into installation_electrique(".implode(',',array_keys($liste)).") VALUES (".implode(",",array_values($liste)).")"); _doQuery("INSERT into installation_electrique(".implode(',',array_keys($liste)).") VALUES (".implode(",",array_values($liste)).")"); } catch(exception $e) { print_rh($e); } } echo $id_support; } function processDeleteSupport() { $requete = "delete from supports where id_supports=" . CopixRequest :: get('num'); _doQuery($requete); } function processDeleteDetail() { $requete = "delete from detail_support where id_detail_support=" . CopixRequest :: get('num'); _doQuery($requete); } function processSaveInstallation() { global $ppo; $id_support = CopixRequest :: get('id_support'); $data = CopixRequest :: get('argument'); $arg = CopixRequest :: get('argument'); $id_support = CopixRequest :: get('support'); $installation = CopixRequest :: get('installation'); $id_um = CopixRequest :: get('um'); $param = explode('|', $data); $cnt = count($param); for ($i = 0; $i < $cnt; $i++) $liste_param[$i] = ($param[$i] ? '\'' . $param[$i] . '\'' : 'null'); $champs = array ( 'nomconducteur', 'fourreau', 'type_cable', 'coffret_classe2', 'type_raccordement', 'etat_general', 'id_support' ); if ($installation) { $cnt = count($champs); for ($i = 0; $i < $cnt; $i++) { if ($champs[$i] != 'coffret_classe2') { $champs[$i] = $champs[$i] . "=" . CopixRequest :: get($champs[$i]) . ""; } else { $champs[$i] = $champs[$i] . "='" . CopixRequest :: get($champs[$i]) . "'"; } } $requete = "UPDATE installation_electrique SET " . implode(',', $champs); //$champs[$i] = $champs[$i] . "='" . CopixRequest :: get($champs[$i]) . "'"; $requete .= " WHERE id_installation_electrique=$installation"; _doQuery($requete); } else { //On selectionne l idsupport correspondant au code saisi dans le formulaire //$req_recherche_id_support = "SELECT id_supports FROM supports WHERE code_support='" . CopixRequest :: get('code') . "'"; //$ppo->_id_support = _doQuery($req_recherche_id_support); //var_dump($ppo->_id_support);exit; //on insre la nouvelle installation electrique $req_insert_installation = "INSERT into installation_electrique(" . implode(',', $champs) . ") VALUES(" . CopixRequest :: get('nomconducteur') . "," . CopixRequest :: get('fourreau') . "," . CopixRequest :: get('type_cable') . ",'" . CopixRequest :: get('coffret_classe2') . "'," . CopixRequest :: get('type_raccordement') . "," . CopixRequest :: get('etat_general') . "," . CopixRequest :: get('id_support') . ")"; _doQuery($req_insert_installation); //je reccupere l id autoincremente... $req_id_install = "SELECT id_installation_electrique FROM installation_electrique ORDER BY id_installation_electrique DESC LIMIT 1"; $installation = _doQuery($req_id_install); $installation = $installation[0]->id_installation_electrique; //...Pour l inserer dans l element statique $requete2 = "INSERT INTO elements_statiques(id_unite_maintenance, id_installation_electrique)VALUES (" . $id_um . "," . $installation.")"; _doQuery($requete2); } echo $installation; //return $installation; } function processSaveDetail() { global $ppo; //var_dump("savedetails !!"); $data = CopixRequest :: get('param'); $id_support = CopixRequest :: get('support'); $id_detail_support = CopixRequest :: get('detail'); $param = explode('|', $data); $cnt = count($param); for ($i = 0; $i < $cnt; $i++) $liste_param[$i] = ($param[$i] ? '\'' . $param[$i] . '\'' : 'null'); /* MANTIS371 Echange entre modele et signal */ $champs = array ( 'signal', 'fixation', 'modele', 'source', 'specification', 'diametre', 'dissocie', 'plaque_contraste' ); //var_dump("detail_support".$id_detail_support); if ($id_detail_support) { $requete = "UPDATE detail_support SET "; for ($i = 0; $i < $cnt; $i++) $requete .= $champs[$i] . "=" . $liste_param[$i] . ","; $requete = substr($requete, 0, -1) . " WHERE id_detail_support=$id_detail_support"; } else $requete = "INSERT into detail_support(id_support," . implode(',', $champs) . ") VALUES($id_support," . implode(',', $liste_param) . ")"; _doQuery($requete); if (!$id_detail_support) $id_detail_support = _doQuery("SELECT id_detail_support FROM detail_support ORDER BY id_detail_support DESC LIMIT 1"); return $requete; } function processAddSupportDetail() { global $ppo; // On recupee les donnees du formulaire dans la table $element $element = CopixRequest :: asArray(); $id = $element['id']; $ppo->id_support = $element['ids']; $ppo->id_detail_support = $element['ids_detail']; $table = array ( array ( 'nom' => 'ids', 'type' => 'int', 'champ' => 'id_support' ), array ( 'nom' => 'mar', 'type' => 'int', 'champ' => 'marque' ), array ( 'nom' => 'mod', 'type' => 'int', 'champ' => 'modele' ), array ( 'nom' => 'fix', 'type' => 'int', 'champ' => 'fixation' ), array ( 'nom' => 'sig', 'type' => 'int', 'champ' => 'signal' ), array ( 'nom' => 'sou', 'type' => 'int', 'champ' => 'source' ), array ( 'nom' => 'spe', 'type' => 'int', 'champ' => 'specification' ), array ( 'nom' => 'dia', 'type' => 'int', 'champ' => 'diametre' ), array ( 'nom' => 'dis', 'type' => 'bool', 'champ' => 'dissocie' ), array ( 'nom' => 'pla', 'type' => 'bool', 'champ' => 'plaque_contraste' ), ); if ($ppo->id_detail_support) $this->saveEquipement('detail_support', $ppo->id_detail_support, $table, $element); else { $this->newEquipement('detail_support', $table, $element); } $ppo->liste_support_details = _doQuery("SELECT DISTINCT * from detail_support WHERE id_support = $ppo->id_support"); $this->getAppareils('liste_marque_support', 'marq_d_sup'); $this->getAppareils('liste_fixation_support', 'fix_d_sup'); $this->getAppareils('liste_signal_support', 'sign_d_sup'); $this->getAppareils('liste_source_support', 'src_d_sup'); $this->getAppareils('liste_specification_support', 'spec_d_sup'); $this->getAppareils('liste_diametre_support', 'diam_sup'); foreach ($ppo->liste_support_details as $support_detail) { $support_detail->nom_marque = $ppo->bis[$support_detail->marque]; $support_detail->nom_modele = $ppo->sous_bis[$support_detail->modele]; $support_detail->nom_fixation = $ppo->bis[$support_detail->fixation]; $support_detail->nom_signal = $ppo->bis[$support_detail->signal]; $support_detail->nom_source = $ppo->bis[$support_detail->source]; $support_detail->nom_specification = $ppo->bis[$support_detail->specification]; $support_detail->nom_diametre = $ppo->bis[$support_detail->diametre]; } return _arPPO($ppo, array ( 'template' => 'unite_maintenance/elem_stat/support_detail_table.tpl', 'mainTemplate' => null )); } function processUpdate_dt() { global $ppo; $element = CopixRequest :: asArray(); $id = $element['id']; //~ print_rh($element); $donnees_techniques = _doQuery("SELECT DISTINCT id_donnees_techniques FROM donnees_techniques,unite_maintenance um WHERE donnees_techniques.id_unite_maintenance = $id"); $table = array ( array ( 'nom' => 'id', 'type' => 'int', 'champ' => 'id_unite_maintenance' ), array ( 'nom' => 'position_de_repos', 'type' => 'bool', 'champ' => 'position_de_repos' ), array ( 'nom' => 'adaptatif', 'type' => 'bool', 'champ' => 'adaptatif' ), array ( 'nom' => 'escamotage', 'type' => 'bool', 'champ' => 'escamotage' ), array ( 'nom' => 'systeme_prioritaire', 'type' => 'int', 'champ' => 'systeme_prioritaire' ), array ( 'nom' => 'systeme_gestion', 'type' => 'int', 'champ' => 'systeme_gestion' ), array ( 'nom' => 'systeme_gestion_bool', 'type' => 'bool', 'champ' => 'systeme_gestion_bool' ), array ( 'nom' => 'systeme_prioritaire_bool', 'type' => 'bool', 'champ' => 'systeme_prioritaire_bool' ), array ( 'nom' => 'diaser', 'type' => 'bool', 'champ' => 'diaser' ), array ( 'nom' => 'radar', 'type' => 'bool', 'champ' => 'radar' ), array ( 'nom' => 'pieton_controle', 'type' => 'bool', 'champ' => 'pietons_controle' ), array ( 'nom' => 'securite_intensite', 'type' => 'bool', 'champ' => 'securite_intensite' ), array ( 'nom' => 'tension_secteur', 'type' => 'int', 'champ' => 'tension_secteur' ), array ( 'nom' => 'tension_utilisation', 'type' => 'int', 'champ' => 'tension_utilisation' ), array ( 'nom' => 'fournisseur_electricite', 'type' => 'int', 'champ' => 'fournisseur_electricite' ), array ( 'nom' => 'observations', 'type' => 'texte', 'champ' => 'observations' ), array ( 'nom' => 'situation_compteur', 'type' => 'texte', 'champ' => 'situation_compteur' ), array ( 'nom' => 'num_contrat_elec', 'type' => 'texte', 'champ' => 'num_contrat_elec' ) ); $donnees_techniques = $donnees_techniques[0]->id_donnees_techniques; if ($donnees_techniques) $this->saveEquipement('donnees_techniques', $donnees_techniques, $table, $element); else { $this->newEquipement('donnees_techniques', $table, $element); $donnees_techniques = $ppo->donnees_techniques->id_donnees_techniques; } foreach (array ( 'donnees_techniques_omni_passage', 'donnees_techniques_omni', 'donnees_techniques_uni' ) as $champ) { _doQuery("DELETE FROM $champ WHERE id_donnees_techniques=$donnees_techniques"); $nb= "nb_".$champ; if (is_array($element[$champ])) { foreach ($element[$champ] as $id_omni => $dt_omni ) { if ($dt_omni) { for ($i=0;$i<$element[$nb][$id_omni];$i++) { $requete = "INSERT INTO $champ(id_donnees_techniques,$champ) VALUES ($donnees_techniques,'$dt_omni')"; _doQuery($requete); } } } } } //~ print_rh($requete); return _arRedirect(CopixUrl :: get('contrats|unite_maintenance|form') . '?onglet=1&redirect=yes&recup=modif&box=' . $id . ''); } function processUpdate_enveloppe() { global $ppo; $element = CopixRequest :: asArray(); $id = $element['id']; //print_rh(co); // // Sauvegarde des donn饳 electrique YG 20081107 // _doQuery("update donnees_techniques set situation_compteur='".$element['situation_compteur']."', num_contrat_elec='".$element['num_contrat_elec']."' where id_unite_maintenance=$id"); // Update des armoires. //On recupee l'identifiant $table = array ( array ( 'nom' => 'armoire_marque', 'type' => 'int', 'champ' => 'modele' ), array ( 'nom' => 'serrure', 'type' => 'int', 'champ' => 'serrure' ), array ( 'nom' => 'socle', 'type' => 'int', 'champ' => 'socle' ), array ( 'nom' => 'peinture', 'type' => 'int', 'champ' => 'peinture' ), array ( 'nom' => 'coffret_agent', 'type' => 'int', 'champ' => 'coffret_agent' ), array ( 'nom' => 'disjoncteur', 'type' => 'int', 'champ' => 'disjoncteur' ), array ( 'nom' => 'contact_porte', 'type' => 'bool', 'champ' => 'contact_porte' ), array ( 'nom' => 'rehausse', 'type' => 'bool', 'champ' => 'rehausse' ), array ( 'nom' => 'armoire_relais', 'type' => 'bool', 'champ' => 'armoire_relais' ), array ( 'nom' => 'observations', 'type' => 'texte', 'champ' => 'observations' ) ); $armoire = _doQuery("SELECT a_um.id_armoire FROM armoire_unite_maintenance a_um WHERE a_um.id_unite_maintenance = $id"); $armoire = $armoire[0]->id_armoire; if ($armoire) $this->saveEquipement('armoire', $armoire, $table, $element); else { $this->newEquipement('armoire', $table, $element); $armoire = _doQuery("SELECT armoire.id_armoire FROM armoire ORDER BY id_armoire DESC LIMIT 1"); $armoire = $armoire[0]->id_armoire; _doQuery("INSERT into armoire_unite_maintenance(id_unite_maintenance,id_armoire) VALUES($id,$armoire)"); } /* if($_FILES[photo][name]) _doQuery("UPDATE armoire SET photo='".$_FILES[photo][name]."' WHERE id_armoire=$armoire"); if($_FILES[vignette][name]) _doQuery("UPDATE armoire SET vignette='".$_FILES[vignette][name]."' WHERE id_armoire=$armoire"); */ if($_FILES[photo_armoire][name]){ $extension=explode('.', $_FILES[photo_armoire][name]); $extension=$extension[count($extension) - 1]; if ($photo_valable=_fileAuthExt($_FILES[photo_armoire][name])){ _doQuery("UPDATE armoire SET photo='".$_FILES[photo_armoire][name]."' WHERE id_armoire=$armoire");} else{ addMessage('erreur',104,array($extension));} } if($_FILES[vignette_armoire][name]){ $extension=explode('.', $_FILES[vignette_armoire][name]); $extension=$extension[count($extension) - 1]; if ($vignette_valable = _fileAuthExt($_FILES[vignette_armoire][name])){ _doQuery("UPDATE armoire SET vignette='".$_FILES[vignette_armoire][name]."' WHERE id_armoire=$armoire");} else{ addMessage('erreur',104,array($extension));} } /*upload fichier*/ $requete="SELECT DISTINCT ville.lib_item as ville,um.cd_unite_maintenance FROM unite_maintenance um,items ville WHERE um.id_villes=ville.id_items and um.id_unite_maintenance=$id"; $info=_doQuery($requete); $nom_um = $info[0]->cd_unite_maintenance; $ville = $info[0]->ville; if (!is_dir("./documents/$ville")) mkdir("./documents/$ville"); /* if (($fichier = CopixUploadedFile :: get('photo')) !== false) $fichier->move("./documents/$ville/$nom_um"); if (($fichier = CopixUploadedFile :: get('vignette')) !== false) $fichier->move("./documents/$ville/$nom_um"); */ if (!is_dir("./documents/$ville/$nom_um")) mkdir("./documents/$ville/$nom_um"); if ($photo_valable && $fichier=$_FILES[photo_armoire][tmp_name]) copy($fichier,"./documents/$ville/$nom_um/".$_FILES[photo_armoire][name]); if ($vignette_valable && $fichier=$_FILES[vignette_armoire][tmp_name]) copy($fichier,"./documents/$ville/$nom_um/".$_FILES[vignette_armoire][name]); /*upload fichier*/ if (is_array($element['um_commandes'])) { foreach ($element['um_commandes'] as $um_commande) { if ($um_commande) { $existe = _doQuery("SELECT DISTINCT id_unite_maintenance FROM armoire_unite_maintenance WHERE id_unite_maintenance=$um_commande AND id_armoire=$armoire "); if (!$existe) { $requete = "INSERT into armoire_unite_maintenance(id_unite_maintenance,id_armoire) VALUES($um_commande,$armoire)"; //echo "$requete
"; _doQuery($requete); } } } } return _arRedirect(CopixUrl :: get('contrats|unite_maintenance|form') . '?onglet=2&redirect=yes&recup=modif&box=' . $id . ''); } function processUpdate_documents() { global $ppo; $data = (CopixRequest :: asArray()); $repertoire = $_SERVER['DOCUMENT_ROOT']; $id = $data['id']; // $ppo->action_bouton = $data['recup']; if ($data['suppr'] == "Supprimer") { if ($data['indice_documents']) foreach ($data['indice_documents'] as $document) try { _doQuery("DELETE FROM documents WHERE id_documents=$document"); addMessage('info', 303); } catch (Exception $e) { addMessage('erreur', 321); return _arRedirect(CopixUrl :: get('contrats|unite_maintenance|form') . '?redirect=yes&recup=modif&box=' . $id . ''); } return _arRedirect(CopixUrl :: get('contrats|unite_maintenance|form') . '?redirect=yes&recup=modif&box=' . $id . ''); break; } //$test = array (); $create = true; $lien = $_FILES['doc1']['name']; $extension=explode('.', $lien); $extension=$extension[count($extension) - 1]; $nom = explode('.', $lien); $nom = ucfirst($nom[0]); //array_push($test, $lien); $document = _record('documents'); $document->type_document = $data['type_document']; $document->nom = $nom; $document->lien = $lien; $document->id_unite_maintenance = $id; //print_rh($document); try { if (_fileAuthExt($lien)){ $requete_ok = _dao('documents')->insert($document); addMessage('info', 301, array ($nom)); } else{ $lien=""; addMessage('erreur',104,array($extension));} } catch (Exception $e) { addMessage('erreur', 111); return _arRedirect(CopixUrl :: get('contrats|unite_maintenance|form') . '?redirect=yes&recup=modif&box=' . $id . ''); } $requete="SELECT DISTINCT ville.lib_item as ville,um.cd_unite_maintenance FROM unite_maintenance um,items ville WHERE um.id_villes=ville.id_items and um.id_unite_maintenance=$id"; $info=_doQuery($requete); $nom_um = $info[0]->cd_unite_maintenance; $ville = $info[0]->ville; if (!is_dir("./documents/$ville")) mkdir("./documents/$ville"); if (!is_dir("./documents/$ville/$nom_um")) mkdir("./documents/$ville/$nom_um"); if ($lien && $_FILES[doc1][tmp_name]) { copy($_FILES[doc1][tmp_name],"./documents/$ville/$nom_um/$lien"); } //--------------------------------- $id_doc_actuel = $document->id_documents; return _arRedirect(CopixUrl :: get('contrats|unite_maintenance|form') . '?onglet=5&redirect=yes&recup=modif&box=' . $id . ''); } function processUpdate_controleur() { global $ppo; $element = CopixRequest :: asArray(); $id = $element['id']; //print_rh($element); $controleur = _doQuery("SELECT id_controleur FROM controleur ,unite_maintenance um WHERE controleur.id_unite_maintenance = $id"); $table = array ( array ( 'nom' => 'id', 'type' => 'int', 'champ' => 'id_unite_maintenance' ), array ( 'nom' => 'type_controleur', 'type' => 'int', 'champ' => 'modele' ), array ( 'nom' => 'type_cpu', 'type' => 'texte', 'champ' => 'type_cpu' ), array ( 'nom' => 'carte_cpu', 'type' => 'texte', 'champ' => 'carte_cpu' ), array ( 'nom' => 'type_alim', 'type' => 'int', 'champ' => 'type_carte_alim' ), array ( 'nom' => 'carte_alim', 'type' => 'texte', 'champ' => 'carte_alim' ), array ( 'nom' => 'carte_es', 'type' => 'int', 'champ' => 'type_carte_es' ), array ( 'nom' => 'nb_carte_entrees', 'type' => 'int', 'champ' => 'nb_carte_entrees' ), array ( 'nom' => 'nb_carte_sorties', 'type' => 'int', 'champ' => 'nb_carte_sorties' ), array ( 'nom' => 'carte_puissance', 'type' => 'int', 'champ' => 'carte_puissance' ), array ( 'nom' => 'type_carte_puissance', 'type' => 'int', 'champ' => 'type_carte_puissance' ), array ( 'nom' => 'horloge', 'type' => 'int', 'champ' => 'horloge' ), array ( 'nom' => 'nb_ligne_utilisee', 'type' => 'int', 'champ' => 'nb_ligne_utilisee' ), array ( 'nom' => 'pre_cablage_max', 'type' => 'int', 'champ' => 'pre_cablage_max' ), array ( 'nom' => 'eprom', 'type' => 'int', 'champ' => 'eprom' ), array ( 'nom' => 'version_logiciel', 'type' => 'int', 'champ' => 'version_logiciel' ), array ( 'nom' => 'version_cpu', 'type' => 'int', 'champ' => 'version_cpu' ), array ( 'nom' => 'fusible_bornier', 'type' => 'int', 'champ' => 'fusible_bornier' ), array ( 'nom' => 'observations', 'type' => 'texte', 'champ' => 'observations' ) ); $controleur = $controleur[0]->id_controleur; if ($controleur) $this->saveEquipement('controleur', $controleur, $table, $element); else { $this->newEquipement('controleur', $table, $element); $controleur = _doQuery("SELECT id_controleur FROM controleur ,unite_maintenance um WHERE controleur.id_unite_maintenance = $id"); $controleur = $controleur[0]->id_controleur; } //print_rh($element); if($lien_photo=$_FILES[photo_controleur][name]){ $extension=explode('.', $_FILES[photo_controleur][name]); $extension=$extension[count($extension) - 1]; if (_fileAuthExt($_FILES[photo_controleur][name])){ _doQuery("UPDATE controleur SET photo_controleur='".$_FILES[photo_controleur][name]."' WHERE id_controleur=$controleur");} else{ $lien_photo=""; addMessage('erreur',104,array($extension));} } if($lien_vignette=$_FILES[vignette_controleur][name]){ $extension=explode('.', $_FILES[vignette_controleur][name]); $extension=$extension[count($extension) - 1]; if (_fileAuthExt($_FILES[vignette_controleur][name])){ _doQuery("UPDATE controleur SET vignette='".$_FILES[vignette_controleur][name]."' WHERE id_controleur=$controleur");} else{ $lien_vignette=""; addMessage('erreur',104,array($extension));} } /*upload fichier*/ $requete="SELECT DISTINCT ville.lib_item as ville,um.cd_unite_maintenance FROM unite_maintenance um,items ville WHERE um.id_villes=ville.id_items and um.id_unite_maintenance=$id"; $info=_doQuery($requete); $nom_um = $info[0]->cd_unite_maintenance; $ville = $info[0]->ville; if (!is_dir("./documents/$ville")) mkdir("./documents/$ville"); if (!is_dir("./documents/$ville/$nom_um")) mkdir("./documents/$ville/$nom_um"); if ($lien_photo && $fichier=$_FILES[photo_controleur][tmp_name]) copy($fichier,"./documents/$ville/$nom_um/".$_FILES[photo_controleur][name]); if ($lien_vignette && $fichier=$_FILES[vignette_controleur][tmp_name]) copy($fichier,"./documents/$ville/$nom_um/".$_FILES[vignette_controleur][name]); /*upload fichier*/ foreach (array ( 'serie_carte_puissance', 'serie_carte_entrees', 'serie_carte_sorties' ) as $champ) { _doQuery("DELETE FROM controleur_$champ WHERE id_controleur=$controleur"); if (is_array($element[$champ])) { foreach ($element[$champ] as $valeur) { if ($valeur) { $requete = "INSERT INTO controleur_$champ(id_controleur,$champ) VALUES ($controleur,'$valeur')"; _doQuery($requete); } } } } return _arRedirect(CopixUrl :: get('contrats|unite_maintenance|form') . '?onglet=3&redirect=yes&recup=modif&box=' . $id . ''); } function processUpdate_coordination_ts() { global $ppo; $element = CopixRequest :: asArray(); //~ print_rh($element); $id = $element['id']; $coordination = _doQuery("SELECT id_coordination_telesurveillance FROM coordination_telesurveillance cts,unite_maintenance um WHERE cts.id_unite_maintenance = $id"); $table = array ( array ( 'nom' => 'id', 'type' => 'int', 'champ' => 'id_unite_maintenance' ), array ( 'nom' => 'marques_coordination', 'type' => 'int', 'champ' => 'modele' ), array ( 'nom' => 'num_serie_coordination', 'type' => 'texte', 'champ' => 'num_serie' ), array ( 'nom' => 'cable_coordination', 'type' => 'texte', 'champ' => 'cable_coordination' ), array ( 'nom' => 'nombre_cycle_coordination', 'type' => 'texte', 'champ' => 'nombre_cycle' ), array ( 'nom' => 'coordination_remarques', 'type' => 'texte', 'champ' => 'remarques' ), array ( 'nom' => 'observations', 'type' => 'texte', 'champ' => 'observations' ) ); $coordination = $coordination[0]->id_coordination_telesurveillance; if ($coordination) $this->saveEquipement('coordination_telesurveillance', $coordination, $table, $element); else $this->newEquipement('coordination_telesurveillance', $table, $element); // Update de la telesurveillance. //On recupere l'identifiant $telesurveillance = _doQuery("SELECT tls.id_telesurveillance FROM telesurveillance tls,unite_maintenance um WHERE tls.id_unite_maintenance = $id"); $table = array ( array ( 'nom' => 'id', 'type' => 'int', 'champ' => 'id_unite_maintenance' ), array ( 'nom' => 'marque_telesurveillance', 'type' => 'texte', 'champ' => 'modele' ), array ( 'nom' => 'modem', 'type' => 'texte', 'champ' => 'modem' ), array ( 'nom' => 'num_serie_modem', 'type' => 'texte', 'champ' => 'num_serie' ), array ( 'nom' => 'tel_ligne_telesurveillance', 'type' => 'texte', 'champ' => 'tel_ligne' ), array ( 'nom' => 'type_communication', 'type' => 'int', 'champ' => 'communication' ), array ( 'nom' => 'fournisseur_acces', 'type' => 'texte', 'champ' => 'fournisseur_acces' ), array ( 'nom' => 'client_communication', 'type' => 'texte', 'champ' => 'client_communication' ), array ( 'nom' => 'reference_abonnement_communication', 'type' => 'texte', 'champ' => 'reference_abonnement' ), ); $telesurveillance = $telesurveillance[0]->id_telesurveillance; if ($telesurveillance) $this->saveEquipement('telesurveillance', $telesurveillance, $table, $element); else { $this->newEquipement('telesurveillance', $table, $element); $telesurveillance = _doQuery("SELECT id_telesurveillance FROM telesurveillance tls,unite_maintenance um WHERE tls.id_unite_maintenance = $id"); $telesurveillance = $telesurveillance[0]->id_telesurveillance; } _doQuery("DELETE FROM telesurveillance_tel_pc WHERE id_telesurveillance=$telesurveillance"); if (is_array($element['tel_pc_telesurveillance'])) { foreach ($element['tel_pc_telesurveillance'] as $tel_pc) { if ($tel_pc) { $requete = "INSERT INTO telesurveillance_tel_pc(id_telesurveillance,tel_pc) VALUES ($telesurveillance,'$tel_pc')"; _doQuery($requete); } } } return _arRedirect(CopixUrl :: get('contrats|unite_maintenance|form') . '?onglet=4&redirect=yes&recup=modif&box=' . $id . ''); } function processUpdate_um() { global $ppo; $element = CopixRequest :: asArray(); $id = $element['id']; // On recupere les donnees du formulaire dans la table $element //Update de la localisation $code = trim($element['code']); $city = $element['name_idcity']; //VBO20090228-MANTIS0000972 : Correction sauvegarde du plan a vide $old_um=_doQuery("SELECT * FROM unite_maintenance WHERE id_unite_maintenance =$id"); $old_um=$old_um[0]; $element[id_etat_um] = $old_um->id_etat_unite_maintenance; //VBO20090228-MANTIS0000972 : Correction sauvegarde du plan a vide $record=_doQuery("SELECT * FROM unite_maintenance WHERE id_villes=$city AND cd_unite_maintenance ='$code'"); if ($record && (trim($old_um->cd_unite_maintenance)!=$code || $old_um->id_villes!=$city )){ addMessage('erreur', 108,array($code,$element[name_city])); return _arRedirect(CopixUrl :: get('contrats|unite_maintenance|form')."?recup=modif&box[]=$id"); } //On verifie si l'adresse de localisation est nouvelle.Si c'est le cas, on cree une nouvelle localisation $criteres = _daoSp()->addCondition('adresse', '=', $element['adresse']); $resultat = _dao('localisation')->FindBy($criteres); $localisation = $this->Add_localisation(trim($element['adresse']), $resultat); $element['id_localisation'] = $localisation->id_localisation; // Bug Suppression des photos 24/11/2009 if ($_FILES[photo][name]<>'') $element[photo] = $_FILES[photo][name]; else $element[photo] = $old_um->photo; if ($_FILES[vignette][name]<>'') $element[vignette] = $_FILES[vignette][name]; else $element[vignette] = $old_um->vignette; // Control si l'extension de la photo et de la vignette sont correctes $extension=explode('.', $element[photo] ); $extension=$extension[count($extension) - 1]; if (!_fileAuthExt($element[photo])) { $element['photo'] = $old_um->photo; addMessage('erreur',104,array($extension)); return _arRedirect(CopixUrl :: get('contrats|unite_maintenance|form') . '?redirect=yes&recup=modif&box=' . $id . ''); } $extension=explode('.', $element[vignette] ); $extension=$extension[count($extension) - 1]; if (!_fileAuthExt($element['vignette'])) { $element['vignette'] = $old_um->vignette; addMessage('erreur',104,array($extension)); return _arRedirect(CopixUrl :: get('contrats|unite_maintenance|form') . '?redirect=yes&recup=modif&box=' . $id . ''); } //Update de la table unite_maintenance $table = array ( array ( 'nom' => 'code', 'type' => 'texte', 'champ' => 'cd_unite_maintenance' ), array ( 'nom' => 'libelle', 'type' => 'texte', 'champ' => 'lib_unite_maintenance' ), array ( 'nom' => 'name_idcity', 'type' => 'int', 'champ' => 'id_villes' ), array ( 'nom' => 'type', 'type' => 'int', 'champ' => 'id_type_unite_maintenance' ), array ( 'nom' => 'id_localisation', 'type' => 'int', 'champ' => 'id_localisation' ), array ( 'nom' => 'id_etat_um', 'type' => 'int', 'champ' => 'id_etat_unite_maintenance' ), array ( 'nom' => 'num_enregistrement', 'type' => 'texte', 'champ' => 'num_enregistrement' ), array ( 'nom' => 'plan', 'type' => 'texte', 'champ' => 'num_plan' ), array ( 'nom' => 'photo', 'type' => 'photo', 'champ' => 'photo' ), array ( 'nom' => 'vignette', 'type' => 'photo', 'champ' => 'vignette' ), array ( 'nom' => 'latitude', 'type' => 'int', 'champ' => 'latitude' ), array ( 'nom' => 'longitude', 'type' => 'int', 'champ' => 'longitude' ), array ( 'nom' => 'distance', 'type' => 'texte', 'champ' => 'distance' ), array ( 'nom' => 'ts', 'type' => 'bool', 'champ' => 'ts' ), array ( 'nom' => 'autre_reference1', 'type' => 'texte', 'champ' => 'autre_reference1' ), array ( 'nom' => 'autre_reference2', 'type' => 'texte', 'champ' => 'autre_reference2' ), array ( 'nom' => 'num_revision', 'type' => 'texte', 'champ' => 'num_revision' ), array ( 'nom' => 'x_map1', 'type' => 'int', 'champ' => 'x_map1' ), array ( 'nom' => 'y_map1', 'type' => 'int', 'champ' => 'y_map1' ), array ( 'nom' => 'flag_actif', 'type' => 'bool', 'champ' => 'flag_actif' ), array ( 'nom' => 'date_mise_service', 'type' => 'date', 'champ' => 'date_mise_service' ), array ( 'nom' => 'date_revision', 'type' => 'date', 'champ' => 'date_revision' ), array ( 'nom' => 'longitude_google', 'type' => 'texte', 'champ' => 'longitude_google' ), array ( 'nom' => 'latitude_google', 'type' => 'texte', 'champ' => 'latitude_google' ), ); $saveEquipement = $this->saveEquipement('unite_maintenance', $id, $table, $element); $ville = explode('(', $element[name_city]); $ville = strtoupper($ville[0]); $nom_um = $element[code]; if (!is_dir("./documents/$ville")) mkdir("./documents/$ville"); if (!is_dir("./documents/$ville/$nom_um")) mkdir("./documents/$ville/$nom_um"); if ($fichier=$_FILES[photo][tmp_name]) copy($fichier,"./documents/$ville/$nom_um/$element[photo]"); if ($fichier = $_FILES[vignette][tmp_name]) copy($fichier,"./documents/$ville/$nom_um/$element[vignette]"); _doQuery("UPDATE unite_maintenance SET date_maj='" . date("Y-m-d G:i:s") . "'"); return _arRedirect(CopixUrl :: get('contrats|unite_maintenance|form') . '?redirect=yes&recup=modif&box=' . $id . ''); } function processPop() { global $ppo; return _arPPO($ppo, array ( 'template' => 'sopac_gestionEquipement_ElmtDyn.tpl', 'mainTemplate' => null )); } function processPopPhoto() { global $ppo; $ppo->zoom = CopixRequest :: get('zoom'); $ppo->ville = CopixRequest :: get('ville'); $ppo->um = CopixRequest :: get('um'); return _arPPO($ppo, array ( 'template' => 'zoom_img.tpl', 'mainTemplate' => null )); } function processPopimg() { global $ppo; //$zoom = CopixRequest :: get('zoom'); //$ppo->zoom = substr($zoom, 0, 7) . 'P' . substr($zoom, 8, strlen($zoom)); $ppo->zoom = CopixRequest :: get('zoom'); $ppo->ville = CopixRequest :: get('ville'); $ppo->um = CopixRequest :: get('um'); return _arPPO($ppo, array ( 'template' => 'zoom_img.tpl', 'mainTemplate' => null )); } //############# // Element dynamique //############# function processElmtdyn() { global $ppo; $ppo->um_detecteur_omni_passage = $this->liste_dynamique(61); $ppo->um_liste_systeme_gestion = $this->liste_dynamique(62); $ppo->um_liste_systeme_prioritaire = $this->liste_dynamique(56); $ppo->um_type_doc = $this->liste_dynamique(50); // $index correspond à l'ID de l'unite de mainetenance if ($ppo->id_um = CopixRequest :: getAlphaNum('statique')) $index = $ppo->id_um; if ($ppo->id_um = CopixRequest :: getAlphaNum('dynamique')) $index = $ppo->id_um; $ppo->menuSimplifie = CopixRequest :: get('menuSimplifie'); if ($ppo->menuSimplifie) { $index_req = _doQuery("select id_unite_maintenance from unite_maintenance where id_localisation=$ppo->id_um "); $index = $index_req[0]->id_unite_maintenance; } // donnees de l'utilisateur $criteres = _daoSp()->addCondition('id_unite_maintenance', '=', $index); // On recupee les donnees de l'utilsateur selectionnees lors du process View $ppo->um = _dao('unite_maintenance')->findBy($criteres); //Comme le resultat est un tableau a� un element, on ne prend que cet element... $ppo->um = $ppo->um[0]; if (!isset($ppo->um)) return addMessage('info', 326,array($code),'contrats|unite_maintenance|viewum'); $ppo->ville = _doQuery("SELECT lib_item as nom_ville, cd_item as code_postal FROM items WHERE id_items=" . $ppo->um->id_villes); $ppo->ville = $ppo->ville[0]; $ppo->ville_um = $ppo->ville->nom_ville; $criteres = _daoSp()->addCondition('id_localisation', '=', $ppo->um->id_localisation); $ppo->localisation = _dao('localisation')->FindBy($criteres); $localisation_adresse = nl2br($ppo->localisation[0]->adresse); $ppo->localisation[0]->adresse = $localisation_adresse; $ppo->localisation = $ppo->localisation[0]; //~ print_rh($ppo->localisation); $ppo->popup = 'popup'; if ($ppo->id_um = CopixRequest :: getAlphaNum('statique')) { //~ echo $index;exit; //SHOW_SUPPORT $this->getAppareils('liste_type_support', 'typ_sup'); $this->getAppareils('liste_forme_support', 'form_sup'); $this->getAppareils('liste_matiere_support', 'mat_sup'); $this->getAppareils('liste_hauteur_support', 'haut_sup'); $this->getAppareils('liste_etat_support', 'etat_sup'); $this->getAppareils('liste_deport_support', 'dep_sup'); $this->getAppareils('liste_marque_support', 'marq_d_sup'); $this->getAppareils('liste_fixation_support', 'fix_d_sup'); $this->getAppareils('liste_signal_support', 'sign_d_sup'); $this->getAppareils('liste_source_support', 'src_d_sup'); $this->getAppareils('liste_specification_support', 'spec_d_sup'); $this->getAppareils('liste_diametre_support', 'diam_sup'); //SHOWINSTALLATION $this->getAppareils('liste_raccord_installation', 'typracinst'); $this->getAppareils('liste_etat_supp', 'etat_d_sup'); $this->getAppareils('liste_conducteur', 'nb_cdteur'); $this->getAppareils('liste_type_cable', 'type_cable'); $this->getAppareils('liste_fourreau', 'fourreau'); $ppo->codes_supports = _doQuery("SELECT code_support FROM supports"); $ppo->conducteurs = _doQuery("SELECT lib_item,lf.id_reference FROM liste_references lf,items i WHERE lf.id_reference=i.id_reference and lf.id_reference=122"); $ppo->type_raccordement = _doQuery("SELECT lib_item,lf.id_reference FROM liste_references lf,items i WHERE lf.id_reference=i.id_reference and lf.id_reference=118"); $ppo->liste_etat_support = _doQuery("SELECT lib_item,lf.id_reference FROM liste_references lf,items i WHERE lf.id_reference=i.id_reference and lf.id_reference=116"); $this->getAppareils('liste_marque_support', 'marq_d_sup'); $this->getAppareils('liste_fixation_support', 'fix_d_sup'); $this->getAppareils('liste_signal_support', 'sign_d_sup'); $this->getAppareils('liste_source_support', 'src_d_sup'); $this->getAppareils('liste_specification_support', 'spec_d_sup'); $this->getAppareils('liste_diametre_support', 'diam_sup'); //Support $this->getAppareils('liste_type_support', 'typ_sup'); $this->getAppareils('liste_forme_support', 'form_sup'); $this->getAppareils('liste_matiere_support', 'mat_sup'); $this->getAppareils('liste_hauteur_support', 'haut_sup'); $this->getAppareils('liste_etat_support', 'etat_sup'); $this->getAppareils('liste_deport_support', 'dep_sup'); $this->getAppareils('liste_marque_support', 'marq_d_sup'); $this->getAppareils('liste_fixation_support', 'fix_d_sup'); $this->getAppareils('liste_signal_support', 'sign_d_sup'); $this->getAppareils('liste_source_support', 'src_d_sup'); $this->getAppareils('liste_specification_support', 'spec_d_sup'); $this->getAppareils('liste_diametre_support', 'diam_sup'); //remplissage des combobox $this->getAppareils('liste_raccord_installation', 'typracinst'); $this->getAppareils('liste_etat_supp', 'etat_d_sup'); $this->getAppareils('liste_conducteur', 'nb_cdteur'); $this->getAppareils('liste_type_cable', 'type_cable'); $this->getAppareils('liste_fourreau', 'fourreau'); $this->getAppareils('peinture', 'peinture'); $ppo->annee_actuelle=date('Y'); $intervalle=$ppo->annee_actuelle-1990 + 10; $ppo->liste_annees = array(); for($i=0;$i<$intervalle;$i++) { $ppo->liste_annees[$i]->id_items=(1990+$i); $ppo->liste_annees[$i]->lib_item=(1990+$i); } $ppo->index = $index; $req2 = "SELECT DISTINCT * from supports WHERE supports.id_unite_maintenance =" . $ppo->um->id_unite_maintenance; $ppo->liste_supports = _doQuery($req2); $req = "SELECT ie.id_installation_electrique,nomconducteur, fourreau, type_cable,type_raccordement,etat_general,id_support,coffret_classe2 FROM installation_electrique ie ,supports s WHERE ie.id_support=s.id_supports AND id_unite_maintenance=$index"; $ppo->liste_installations = _doQuery($req); $ppo->codes_supports = _doQuery("SELECT code_support,id_supports FROM supports WHERE supports.id_unite_maintenance =" . $ppo->id_um); $ppo->conducteurs = _doQuery("SELECT lib_item,lf.id_reference FROM liste_references lf,items i WHERE lf.id_reference=i.id_reference and lf.id_reference=122"); $ppo->type_raccordement = _doQuery("SELECT lib_item,lf.id_reference FROM liste_references lf,items i WHERE lf.id_reference=i.id_reference and lf.id_reference=118"); $i = 0; foreach ($ppo->liste_supports as $support) { $support->details = _doQuery("SELECT DISTINCT * from detail_support WHERE detail_support.id_support =" . $support->id_supports); $support->nb_details = count($support->details); $support->trait_pied_poteau = ($support->trait_pied_poteau ? 't' : 'f'); foreach ($support->details as $detail) { $detail->dissocie = ($detail->dissocie ? 't' : 'f'); $detail->plaque_contraste = ($detail->plaque_contraste ? 't' : 'f'); } } $ppo->question[0]->id_items = 't'; $ppo->question[0]->lib_item = 'Oui'; $ppo->question[1]->id_items = 'f'; $ppo->question[1]->lib_item = 'Non'; $ppo->popup = true; $ppo->lecture = true; return _arPPO($ppo, array ( 'template' => 'unite_maintenance/elem_stat/sopac_gestionEquipement_ElmtSta.tpl', 'mainTemplate' => null )); } if ($ppo->id_um = CopixRequest :: getAlphaNum('dynamique')) { $ppo->menuSimplifie = CopixRequest :: get('menuSimplifie'); if ($ppo->menuSimplifie) { $ppo->id_um = $index; } $ppo->um->date_mise_service = dateUsToFr($ppo->um->date_mise_service); $ppo->um->date_revision = dateUsToFr($ppo->um->date_revision); $ppo->um->date_maj = dateUsToFr($ppo->um->date_maj); //$ppo->um_etat=_dao('etat_unite_maintenance')->FindAll(); $ppo->um_etat = _doQuery("SELECT id_items, lib_item FROM items WHERE id_reference=127"); // Armoire // On recupre l'ID de l'armoire dans la table d'association "armoire_unite_maintenance" $ppo->id_armoire = _doQuery("SELECT id_armoire FROM armoire_unite_maintenance WHERE id_unite_maintenance = $index"); $ppo->id_armoire = $ppo->id_armoire[0]->id_armoire; if ($ppo->id_armoire) { $ppo->armoire = _doQuery("SELECT armoire.* FROM armoire WHERE id_armoire = $ppo->id_armoire"); $ppo->armoire = $ppo->armoire[0]; $ppo->armoire_unite_maintenance = _doQuery("SELECT um.id_unite_maintenance,um.cd_unite_maintenance,lib_item FROM armoire_unite_maintenance a_um,unite_maintenance um ,items WHERE id_armoire = $ppo->id_armoire AND a_um.id_unite_maintenance=um.id_unite_maintenance AND um.id_villes=items.id_items"); } $this->getAppareils('marques_armoire', 'armoire'); $this->getAppareils('marques_serrures', 'serrure'); $this->getAppareils('marques_coffret', 'coffret_ag'); $this->getAppareils('marques_disjoncteur', 'typ_disj'); $this->getAppareils('marques_socle', 'socle'); $this->getAppareils('peinture', 'peinture'); //print_rh($ppo->armoire); //Fin armoire // Controleur //////////////////////////////////////// $ppo->controleur = _doQuery("SELECT DISTINCT * FROM controleur WHERE controleur.id_unite_maintenance = $ppo->id_um"); if ($ppo->controleur) { $ppo->controleur = $ppo->controleur[0]; $ppo->valeur_horloge = $ppo->controleur->horloge; $ppo->valeur_equipement_cpu = $ppo->controleur->equipement_cpu; $ppo->valeur_marq_controleur = $ppo->controleur->modele; $ppo->valeur_precablage = $ppo->controleur->pre_cablage_max; $ppo->valeur_nbr_lign = $ppo->controleur->nb_ligne_utilisee; $ppo->valeur_type_controleur = $ppo->controleur->type; $ppo->valeur_version_cpu = $ppo->controleur->version_cpu; $ppo->valeur_version_log = $ppo->controleur->version_logiciel; $serie_carte_puissance = _doQuery("SELECT DISTINCT serie_carte_puissance FROM controleur_serie_carte_puissance WHERE serie_carte_puissance !='' AND controleur_serie_carte_puissance.id_controleur =" . $ppo->controleur->id_controleur); foreach ($serie_carte_puissance as $scp) $ppo->controleur->serie_carte_puissance[] = $scp->serie_carte_puissance; $serie_carte_entrees = _doQuery("SELECT DISTINCT serie_carte_entrees FROM controleur_serie_carte_entrees WHERE serie_carte_entrees !='' AND controleur_serie_carte_entrees.id_controleur =" . $ppo->controleur->id_controleur); foreach ($serie_carte_entrees as $sce) $ppo->controleur->serie_carte_entrees[] = $sce->serie_carte_entrees; $serie_carte_sorties = _doQuery("SELECT DISTINCT serie_carte_sorties FROM controleur_serie_carte_sorties WHERE serie_carte_sorties !='' AND controleur_serie_carte_sorties.id_controleur =" . $ppo->controleur->id_controleur); foreach ($serie_carte_sorties as $scs) $ppo->controleur->serie_carte_sorties[] = $scs->serie_carte_sorties; $this->getAppareils('liste_vers_log', 'vers_log'); $this->getAppareils('liste_vers_cpu', 'vers_cpu'); $this->getAppareils('liste_type_controleur', 'controleur'); $this->getAppareils('liste_ligne', 'nb_lignes'); $this->getAppareils('liste_cablage_max', 'cablage'); $this->getAppareils('liste_marque_controleur', 'marq_contr'); $this->getAppareils('liste_equipement', 'equip_cpu'); $this->getAppareils('liste_horloge', 'horloge'); $this->getAppareils('marques_cpu', 'carte_cpu'); $this->getAppareils('marques_alim', 'carte_alim'); $this->getAppareils('liste_marque_es', 'carte_es'); $this->getAppareils('liste_eprom', 'eprom'); } //Fin controleur // Donnees techniques. $um_dt = _doquery("SELECT * FROM donnees_techniques WHERE donnees_techniques.id_unite_maintenance =" . $ppo->um->id_unite_maintenance); if ($um_dt) { $ppo->um_dt = $um_dt[0]; $omni_passage = _doquery("SELECT donnees_techniques_omni_passage FROM donnees_techniques_omni_passage WHERE donnees_techniques_omni_passage.id_donnees_techniques =" . $ppo->um_dt->id_donnees_techniques. " ORDER BY id_donnees_techniques " ); $omni_presence = _doquery("SELECT donnees_techniques_omni FROM donnees_techniques_omni WHERE donnees_techniques_omni.id_donnees_techniques =" . $ppo->um_dt->id_donnees_techniques. " ORDER BY id_donnees_techniques" ); $uni = _doquery("SELECT donnees_techniques_uni FROM donnees_techniques_uni WHERE donnees_techniques_uni.id_donnees_techniques =" . $ppo->um_dt->id_donnees_techniques. " ORDER BY id_donnees_techniques"); foreach ($omni_passage as $omni) { $tab_omni_passage[] = $omni->donnees_techniques_omni_passage; } foreach ($omni_presence as $omni) { $tab_omni[] = $omni->donnees_techniques_omni; } foreach ($uni as $omni) { $tab_uni[] = $omni->donnees_techniques_uni; } } $ppo->um_dt->detecteur_omni_passage = $tab_omni_passage; $ppo->um_dt->detecteur_omni = $tab_omni; $ppo->um_dt->detecteur_uni = $tab_uni; $this->getAppareils('liste_fusible_bornier', 'fusibl'); $this->getAppareils('liste_fournisseur_electricite', 'frn_elec'); $this->getAppareils('tension_secteur', 'tension'); $this->getAppareils('liste_omni', 'omni'); $this->getAppareils('liste_uni', 'uni'); //Fin donnees techniques. $ppo->um_doc = _doQuery("SELECT DISTINCT d.id_documents,d.nom,d.lien,items.lib_item as type_document FROM documents d,items, unite_maintenance um WHERE d.id_unite_maintenance=$index AND um.id_unite_maintenance=d.id_unite_maintenance and items.id_items=d.type_document "); $ppo->size = count($ppo->um_doc); // Coordination. $ppo->coordination = _doquery("SELECT * FROM coordination_telesurveillance WHERE coordination_telesurveillance.id_unite_maintenance =" . $ppo->um->id_unite_maintenance); $ppo->coordination = $ppo->coordination[0]; $this->getAppareils('liste_type_support', 'typ_sup'); $this->getAppareils('marques_coordination', 'coord_tls'); // Telesurveillance. $ppo->telesurveillance = _doquery("SELECT * FROM telesurveillance WHERE telesurveillance.id_unite_maintenance =" . $ppo->um->id_unite_maintenance); if ($ppo->telesurveillance) { $ppo->telesurveillance = $ppo->telesurveillance[0]; $telephone_pc = _doquery("SELECT DISTINCT tel_pc FROM telesurveillance_tel_pc WHERE tel_pc !='' AND telesurveillance_tel_pc.id_telesurveillance =" . $ppo->telesurveillance->id_telesurveillance); foreach ($telephone_pc as $tel_pc) $ppo->telesurveillance->tel_pc[] = $tel_pc->tel_pc; } $this->getAppareils('liste_telesurveillance', 'tls'); $this->getAppareils('liste_type_communication', 'type_com'); $ppo->question[0]->id_items = 't'; $ppo->question[0]->lib_item = 'Oui'; $ppo->question[1]->id_items = 'f'; $ppo->question[1]->lib_item = 'Non'; } $ppo->lecture=true; $ppo->contrat = _doQuery("SELECT * FROM contrats,unite_maintenance um WHERE um.id_unite_maintenance= $ppo->id_um AND contrats.id_contrats=um.id_contrats"); $ppo->contrat = $ppo->contrat[0]; return _arPPO($ppo, array ( 'template' => 'unite_maintenance/elem_dyn/sopac_gestionEquipement_ElmtDyn.tpl', 'mainTemplate' => null )); } function processPopdemande() { global $ppo; return _arPPO($ppo, array ( 'template' => 'client_gestionDemandes_creation.tpl', 'mainTemplate' => null )); } function processFrame() { global $ppo; return _arPPO($ppo, array ( 'template' => 'unite_maintenance/elem_dyn/frame.tpl', 'mainTemplate' => null )); } function processNew() { global $ppo; // On cree un nouvel enregistrement $element = CopixRequest :: asArray(); // Controle de l'existance du code UM pour la ville selectionnee $code = strtoupper(trim($element['code'])); $city = $element['name_idcity']; $record=_doQuery("SELECT * FROM unite_maintenance WHERE id_villes=$city AND cd_unite_maintenance = UPPER('$code')"); if ($record) { addMessage('erreur', 108,array($code,$element[name_city])); return _arRedirect(CopixUrl :: get('contrats|unite_maintenance|create')); } if ($element["recup"] == "Enregistrer") { //Creation de la localisation //On verifie si l'adresse de localisation est nouvelle. Si c'est le cas, on cree une nouvelle localisation $criteres = _daoSp()->addCondition('adresse', '=', $element['adresse']); $resultat = _dao('localisation')->FindBy($criteres); $localisation = $this->Add_localisation($element['adresse'], $resultat); $element['id_localisation'] = $localisation->id_localisation; $element['flag_actif'] = 'true'; //print_rh($element); //Creation de l' unite de maintenance $element['id_etat_um'] = 917; $table = array ( array ( 'nom' => 'code', 'type' => 'texte', 'champ' => 'cd_unite_maintenance' ), array ( 'nom' => 'libelle', 'type' => 'texte', 'champ' => 'lib_unite_maintenance' ), array ( 'nom' => 'name_idcity', 'type' => 'int', 'champ' => 'id_villes' ), array ( 'nom' => 'type', 'type' => 'int', 'champ' => 'id_type_unite_maintenance' ), array ( 'nom' => 'id_localisation', 'type' => 'int', 'champ' => 'id_localisation' ), array ( 'nom' => 'id_etat_um', 'type' => 'int', 'champ' => 'id_etat_unite_maintenance' ), array ( 'nom' => 'num_enregistrement', 'type' => 'texte', 'champ' => 'num_enregistrement' ), array ( 'nom' => 'plan', 'type' => 'texte', 'champ' => 'num_plan' ), array ( 'nom' => 'photo', 'type' => 'texte', 'champ' => 'photo' ), array ( 'nom' => 'latitude_google', 'type' => 'texte', 'champ' => 'latitude_google' ), array ( 'nom' => 'longitude_google', 'type' => 'texte', 'champ' => 'longitude_google' ), array ( 'nom' => 'distance', 'type' => 'int', 'champ' => 'distance' ), array ( 'nom' => 'ts', 'type' => 'bool', 'champ' => 'ts' ), array ( 'nom' => 'autre_reference1', 'type' => 'texte', 'champ' => 'autre_reference1' ), array ( 'nom' => 'autre_reference2', 'type' => 'texte', 'champ' => 'autre_reference2' ), array ( 'nom' => 'num_revision', 'type' => 'texte', 'champ' => 'num_revision' ), array ( 'nom' => 'x_map1', 'type' => 'int', 'champ' => 'x_map1' ), array ( 'nom' => 'y_map1', 'type' => 'int', 'champ' => 'y_map1' ), array ( 'nom' => 'fileplan1', 'type' => 'texte', 'champ' => 'file_plan1' ), array ( 'nom' => 'fileplan2', 'type' => 'texte', 'champ' => 'file_plan2' ), array ( 'nom' => 'flag_actif', 'type' => 'bool', 'champ' => 'flag_actif' ), array ( 'nom' => 'date_mise_service', 'type' => 'date', 'champ' => 'date_mise_service' ), array ( 'nom' => 'date_revision', 'type' => 'date', 'champ' => 'date_revision' ) ); $this->newEquipement('unite_maintenance', $table, $element); $id = intval($ppo->unite_maintenance->id_unite_maintenance); $ville = explode('(', $element[name_city]); $ville = strtoupper($ville[0]); $nom_um = $element[code]; if (!is_dir("./documents/$ville")) { mkdir("./documents/$ville"); } if (!is_dir("./documents/$ville/$nom_um")) { mkdir("./documents/$ville/$nom_um"); } if (($fichier = $_FILES[photo][tmp_name]) !== false) { move_uploaded_file($_FILES[photo][tmp_name],"./documents/$ville/$nom_um/".$_FILES[photo][name]); } if (($fichier = $_FILES[vignette][tmp_name]) !== false) { move_uploaded_file($_FILES[vignette][tmp_name],"./documents/$ville/$nom_um/".$_FILES[vignette][name]); } } //renvoi vers la liste des um addMessage('info', 282,array($code)); return _arRedirect(CopixUrl :: get('contrats|unite_maintenance|viewum')); } function Add_localisation($adresse, $resultat) { global $ppo; if ($resultat) return $resultat[0]; $adresse2=addslashes($adresse); try{$record = _doQuery("SELECT * FROM localisation WHERE adresse='$adresse2' ");} catch (Exception $e) { print_rh($e); } if (!$record) { $localisation=_record('localisation'); $localisation->adresse = trim($adresse); //~ $localisation->cd_localisation = substr($adresse, 10); try { _dao('localisation')->insert($localisation); } catch (Exception $e) { print_rh($e); } return $localisation; } return $record[0]; } //~ $this->getAppareils('marques_armoire','armoire'); function getAppareils($appareil, $reference) { global $ppo; $ppo-> $appareil = _doQuery("SELECT lib_item,id_items FROM items,liste_references lr WHERE lr.cd_reference='$reference' AND lr.id_reference=items.id_reference ORDER BY id_items ASC"); foreach ($ppo-> $appareil as $element) { $ppo->bis["$element->id_items"] = $element->lib_item; $modele = _doQuery("SELECT lib_sous_item,id_sous_items FROM sous_items s,items i WHERE s.id_items=i.id_items AND i.id_items=$element->id_items ORDER BY id_sous_items ASC"); if ($modele) { $element->modele = $modele; foreach ($modele as $sous_element) $ppo->sous_bis["$sous_element->id_sous_items"] = $sous_element->lib_sous_item; } } } function saveEquipement($nom, $id, $table, $element) { $update = FALSE; $requete = "UPDATE $nom SET"; //~ $test=""; foreach ($table as $data) { //VBO20090228-MANTIS0000972 : Correction sauvegarde des informations a vide if ($element[$data['nom']]) { $update = TRUE; switch ($data['type']) { case 'texte' : //~ Ajout des quotes pour insertion d'un type string dans la base. $requete .= " " . $data['champ'] . "='" . $element[$data['nom']] . "',"; break; case 'int' : $requete .= " " . $data['champ'] . "=" . $element[$data['nom']] . ","; break; case 'bool' : $requete .= " " . $data['champ'] . "='" . substr($element[$data['nom']], 0, 1) . "',"; break; case 'date' : $requete .= " " . $data['champ'] . "='" . dateFrToUs($element[$data['nom']]) . "',"; break; case 'photo' : $photo = explode('\\', $element[$data['nom']]); $element[$data['nom']] = $photo[count($photo) - 1]; //~ Ajout des quotes pour insertion d'un type string dans la base. $requete .= " " . $data['champ'] . "='" . $element[$data['nom']] . "',"; break; } } else { $update = TRUE; switch ($data['type']) { case 'texte' : //~ Ajout des quotes pour insertion d'un type string dans la base. $requete .= " " . $data['champ'] . "=null,"; break; case 'int' : $requete .= " " . $data['champ'] . "=null,"; break; /* case 'bool' : $requete .= " " . $data['champ'] . "=null,"; break;*/ case 'date' : $requete .= " " . $data['champ'] . "=null,"; break; case 'photo' : $photo = explode('\\', $element[$data['nom']]); $element[$data['nom']] = $photo[count($photo) - 1]; //~ Ajout des quotes pour insertion d'un type string dans la base. $requete .= " " . $data['champ'] . "='" . $element[$data['nom']] . "',"; break; } } } if ($update) { $requete = substr($requete, 0, -1) . " WHERE id_$nom = $id"; //echo "$requete
"; //exit; try { _doQuery($requete); } catch (Exception $e) { $ppo->erreur = $e->getMessage(); return _arPPO(null, 'erreur.tpl'); } } } function newEquipement($nom, $table, $element) { global $ppo; $create = false; //$ppo->$nom=_record($nom); $requete = "INSERT INTO $nom ("; foreach ($table as $data) { if ($element[$data['nom']]) { $element[$data['nom']]=trim($element[$data['nom']]); $create = true; $champ .= $data['champ'] . ','; switch ($data['type']) { case 'texte' : $value .= "'" . $element[$data['nom']] . "',"; break; case 'int' : $value .= intval($element[$data['nom']]) . ','; break; case 'bool' : $value .= "'" . substr($element[$data['nom']], 0, 1) . "',"; break; case 'date' : $value .= "'" . dateFrToUs($element[$data['nom']]) . "',"; break; case 'photo' : $photo = explode('\\', $element[$data['nom']]); $element[$data['nom']] = $photo[count($photo) - 1]; //~ Ajout des quotes pour insertion d'un type string dans la base. $value .= "'" . $element[$data['nom']] . "',"; break; } } } $requete .= substr($champ, 0, -1) . ") VALUES (" . substr($value, 0, -1) . ")"; if ($create) { try { //echo "$requete
"; _doQuery($requete); $data = _doQuery("SELECT * FROM $nom ORDER BY id_$nom DESC LIMIT 1"); $ppo-> $nom = $data[0]; } catch (Exception $e) { var_dump($e->getMessage()); exit (); } } } function deleteNumSerie() { $parametres = CopixRequest :: get('value'); $table = ''; $champ = ''; $valeur = ''; sscanf($parametres, "%s|%s|%s", $table, $champ, $valeur); _doQuery("DELETE FROM $table WHERE $champ='$valeur'"); return ar_None(); } // YG 20081229 function nature($index) { global $ppo; // Recuperationion du contrat correspondant a l'um $id_contrats = _doQuery("SELECT distinct contrats.id_contrats FROM contrats,unite_maintenance um WHERE um.id_unite_maintenance= $index AND um.id_contrats=contrats.id_contrats"); $id_contrats=$id_contrats[0]->id_contrats; //VBO20090311-MANTIS0001224 : Correction pour prise en compte des um au noir, c a d non attachee a un contrat if ($id_contrats) { $session_societe=unserialize($_SESSION['SOCIETE'])->id_societes; // Recuperation de la nature de la societe prestataire de la personne connectee Dynamique 37, Statique 38 ou Dynamique et Statique 87) $tab_nature=_doquery("select p.id_type_prestation as nature from prestataires p, contrats_prestataires cp where id_societes=$session_societe and p.id_prestataires=cp.id_prestataires and cp.id_contrats=$id_contrats"); $ppo->nature_dynamique=false; $ppo->nature_statique=false; $ppo->nature_dynstat=false; foreach ($tab_nature as $nature) { // Test nature dynamique if ($nature->nature==37) { $ppo->nature_dynamique=true; if ($ppo->nature_statique==true) $ppo->nature_dynstat=true; } // Test nature statique if ($nature->nature==38) { $ppo->nature_statique=true; if ($ppo->nature_dynamique==true) $ppo->nature_dynstat=true; } // Test nature statique et dynamique if ($nature->nature==87) { $ppo->nature_dynstat=true; } } } //UM non attachee a un contrat : donc modifiable en totalite par tout intervenant qui a le droit de modification else $ppo->nature_dynstat=true; } } //M001 function FicheTechniqueUMPDF(&$pdf,$prev, $cpt) { $x = 110; $y = 120; $interligne =12; if($cpt > 1){ $pdf->ezNewPage(); $y +=30; } $temp = $y; $pdf->ezSetMargins(50,50,100,50); //$pdf->selectFont('../utils/pdf-php/fonts/Helvetica.afm'); $pdf->selectFont('../utils/pdf-php/fonts/Times-Roman.afm'); // logo $width = $pdf->ez['pageWidth']; $height = $pdf->ez['pageHeight']; $pdf->addJpegFromFile($prev->logo_centre_PDF,$width/2,$height-60,50); $pdf->ezText(""); $pdf->ezText(""); // titre du doc $pdf->setColor(0.2,0.4,0.8); $tab = array('justification'=>'center'); $txt = "Fiche technique de l'unité de maintenance n°".$prev->um->cd_unite_maintenance." - ".$prev->ville_um." (1/".$prev->nb_pages.")"; $pdf->ezText(html_entity_decode($txt),13,$tab); $pdf->ezText(""); $pdf->ezText(""); // cadre information unité de maintenance $txt = "Information unité maintenance"; $pdf->addTextWrap($x-20, $height-$y, 200, 11, html_entity_decode($txt)); $y+=20; $txtEntete = "N° UM :"; $txtValeur = $prev->um->cd_unite_maintenance; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $txtEntete = "Mise en service le :"; $txtValeur = $prev->um->date_mise_service; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $txtEntete = "Libellé :"; $txtValeur = $prev->um->lib_unite_maintenance; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $txtEntete = "Dernière révision le :"; $txtValeur = $prev->um->date_revision; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $txtEntete = "Adresse :"; $txtValeur = $prev->localisation->adresse; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $txtEntete = "Dernière mise à jour le :"; $txtValeur = $prev->um->date_maj; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $txtEntete = "Distance(Km) :"; $txtValeur = $prev->um->distance; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $txtEntete = "Télésurveillance :"; if ($prev->um->ts) $txtValeur ="Oui"; else $txtValeur ="Non"; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $txtEntete = "Ville :"; $txtValeur = $prev->ville; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $txtEntete = "Numéro plan :"; $txtValeur = $prev->num_plan; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $txtEntete = "Référence 1 :"; $txtValeur = $prev->um->autre_reference1; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $txtEntete = "Référence 2 :"; $txtValeur = $prev->um->autre_reference2; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $txtEntete = "Type d'Um :"; $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); foreach($prev->um_type as $type){ if($type->id_items == $prev->um->id_type_unite_maintenance ){ $txtEntete = ""; $txtValeur = $type->lib_item; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; } } /*if ($prev->um->vignette){ $src = '../www/documents/'.$prev->ville_um.'/'.$prev->um->cd_unite_maintenance.'/'.$prev->um->vignette; $txtEntete = $src; $txtValeur = $src; $pdf->addTextWrap($x, $height-$y, 300, 8, html_entity_decode($txtValeur)); $pdf->addJpegFromFile('../www/documents/BOISEMONT/1201/BSM1201VHGr000.jpg',100,200,50); }else{ $txtEntete = ""; $txtValeur = "Photo indisponible"; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); }*/ $pdf->setStrokeColor(0.6,0.6,0.6); $pdf->setLineStyle(0.5); $pdf->rectangle($x-30,$height-$y,$width-130,$y-$temp-5); $y+=20; $temp = $y; // cadre Données techniques $txt = "Données techniques"; $pdf->addTextWrap($x-20, $height-$y, 200, 11, html_entity_decode($txt)); $y+=20; // colonne de gauche $txtEntete = "Position de repos :"; if ($prev->um_dt->position_de_repos) $txtValeur ="Oui"; else $txtValeur ="Non"; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "Adaptatif :"; if ($prev->um_dt->adaptatif) $txtValeur ="Oui"; else $txtValeur ="Non"; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "Escamotage :"; if ($prev->um_dt->escamotage) $txtValeur ="Oui"; else $txtValeur ="Non"; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "Utilisat. système prioritaire :"; if (!$prev->um_dt->systeme_prioritaire_bool) { $txtValeur ="Non"; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; } else{ $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $trouve = 0; foreach($prev->um_liste_systeme_prioritaire as $liste_systeme_prioritaire){ if($liste_systeme_prioritaire->id_items == $prev->um_dt->systeme_prioritaire ){ $txtEntete = ""; $txtValeur = "Oui-".$liste_systeme_prioritaire->lib_item; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } if(!$trouve){ $y+=$interligne; } } $txtEntete = "Système de gestion :"; if (!$prev->um_dt->systeme_gestion_bool) { $txtValeur ="Non"; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; } else{ $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $trouve = 0; foreach($prev->um_liste_systeme_gestion as $liste_systeme_gestion){ if($liste_systeme_gestion->id_items == $prev->um_dt->systeme_gestion ){ $txtEntete = ""; $txtValeur = "Oui-".$liste_systeme_gestion->lib_item; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve ++; } } if(!$trouve){ $y+=$interligne; } } $txtEntete = "Diaser :"; if ($prev->um_dt->diaser) $txtValeur ="Oui"; else $txtValeur ="Non"; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "Détecteur omni présence :"; $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $trouve = 0; if(count($prev->um_dt->detecteur_omni) > 0){ foreach($prev->um_dt->detecteur_omni as $element_valeur){ foreach($prev->liste_omni as $element){ if ($element->id_items == $element_valeur->lib){ $txtEntete = ""; $txtValeur = $element->lib_item." (".$element_valeur->nb.")"; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } } if(!$trouve){ $y+=$interligne; } // on enregistre le $y dans le max pour revenir à ce niveau si la colonne de droite est plus petite $yMax = $y; // colonne de droite $y = $temp+20; $txtEntete = "Détecteur UNI :"; $txtValeur = ""; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $trouve = 0; if(count($prev->um_dt->detecteur_uni) > 0){ foreach($prev->um_dt->detecteur_uni as $element_valeur){ foreach($prev->liste_uni as $element){ if ($element->id_items==$element_valeur->lib){ $txtEntete = ""; $txtValeur = $element->lib_item." (".$element_valeur->nb.")"; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Détecteur omni-passage :"; $txtValeur = ""; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $trouve = 0; if(count($prev->um_dt->detecteur_omni_passage) > 0){ foreach($prev->um_dt->detecteur_omni_passage as $element_valeur){ foreach($prev->um_detecteur_omni_passage as $element){ if ($element->id_items==$element_valeur->lib){ $txtEntete = ""; $txtValeur = $element->lib_item." (".$element_valeur->nb.")"; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Piéton contrôlé :"; if ($prev->um_dt->pietons_controle) $txtValeur ="Oui"; else $txtValeur ="Non"; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "Sécurité rouge controlé :"; if ($prev->um_dt->securite_intensite) $txtValeur ="Oui"; else $txtValeur ="Non"; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "Tension secteur :"; $txtValeur = ""; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->um_dt->tension_secteur) > 0){ foreach($prev->tension_secteur as $element){ if ($element->id_items==$prev->um_dt->tension_secteur){ $txtEntete = ""; $txtValeur = $element->lib_item; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Tension d'utilisation :"; $txtValeur = ""; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->um_dt->tension_utilisation) > 0){ foreach($prev->tension_secteur as $element){ if ($element->id_items==$prev->um_dt->tension_utilisation){ $txtEntete = ""; $txtValeur = $element->lib_item; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve ++; } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Fournisseur d'électricité :"; $txtValeur = ""; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->um_dt->fournisseur_electricite) > 0){ foreach($prev->liste_fournisseur_electricite as $element){ if ($element->id_items==$prev->um_dt->fournisseur_electricite){ $txtEntete = ""; $txtValeur = $element->lib_item; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "N° de contrat EDF :"; $txtValeur =$prev->um_dt->num_contrat_elec; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; // on prend le y max (soit la colonne de gauche, soit la colonne de droite) if ($yMax > $y) $y = $yMax; $y+=$interligne; $txtEntete = "Situation du compteur :"; $txtValeur =$prev->um_dt->situation_compteur; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $y+=$interligne; $txtEntete = "Observations générales : "; $txtValeur =$prev->um_dt->observations; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $pdf->setStrokeColor(0.6,0.6,0.6); $pdf->setLineStyle(0.5); $pdf->rectangle($x-30,$height-$y,$width-130,$y-$temp-5); $y+=20; $temp = $y; // cadre Enveloppe $txt = "Enveloppe"; $pdf->addTextWrap($x-20, $height-$y, 200, 11, html_entity_decode($txt)); $y+=20; // colonne de gauche $txtEntete = "Marque :"; $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->marques_armoire) > 0){ foreach($prev->marques_armoire as $marque){ if ($marque->modele){ foreach($marque->modele as $modele){ if($modele->id_sous_items == $prev->armoire->modele){ $txtEntete = ""; $txtValeur = $marque->lib_item." - ".$modele->lib_sous_item; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve ++; } } } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Serrure :"; $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $trouve =0; if(count($prev->marques_serrures) > 0){ foreach($prev->marques_serrures as $marque){ if ($marque->modele){ foreach($marque->modele as $modele){ if($modele->id_sous_items == $prev->armoire->serrure){ $txtEntete = ""; $txtValeur = $marque->lib_item." - ".$modele->lib_sous_item; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve ++; } } } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Coffret Agent :"; $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->marques_coffret) > 0){ foreach($prev->marques_coffret as $element){ if($element->id_items == $prev->armoire->coffret_agent){ $txtEntete = ""; $txtValeur = $element->lib_item; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve ++; } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Disjoncteur :"; $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->marques_disjoncteur) > 0){ foreach($prev->marques_disjoncteur as $marque){ if ($marque->modele){ foreach($marque->modele as $modele){ if($modele->id_sous_items == $prev->armoire->disjoncteur){ $txtEntete = ""; $txtValeur = $marque->lib_item." - ".$modele->lib_sous_item; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Socle :"; $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->marques_socle) > 0){ foreach($prev->marques_socle as $marque){ if ($marque->modele){ foreach($marque->modele as $modele){ if($modele->id_sous_items == $prev->armoire->socle){ $txtEntete = ""; $txtValeur = $marque->lib_item." - ".$modele->lib_sous_item; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Peinture :"; $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->peinture) > 0){ foreach($prev->peinture as $element){ if($element->id_items == $prev->armoire->peinture){ $txtEntete = ""; $txtValeur = $element->lib_item; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve ++; } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Contact de porte :"; if ($prev->armoire->contact_porte) $txtValeur ="Oui"; else $txtValeur ="Non"; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "Rehausse :"; if ($prev->armoire->rehausse) $txtValeur ="Oui"; else $txtValeur ="Non"; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "Armoire relais :"; if ($prev->armoire->armoire_relais) $txtValeur ="Oui"; else $txtValeur ="Non"; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; // on enregistre le $y dans le max pour revenir à ce niveau si la colonne de droite est plus petite $yMax = $y; // colonne de droite $y = $temp+20; $txtEntete = "Unité(s) de maintenance commandée(s) :"; $txtValeur = ""; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->armoire_unite_maintenance) > 0){ foreach($prev->armoire_unite_maintenance as $lien){ $txtEntete = ""; $txtValeur = $lien->cd_unite_maintenance." - ".$lien->lib_item; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Observations générales :"; $txtValeur =$prev->armoire->observations; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; // on prend le y max (soit la colonne de gauche, soit la colonne de droite) if ($yMax > $y) $y = $yMax; $y+=$interligne; $pdf->setStrokeColor(0.6,0.6,0.6); $pdf->setLineStyle(0.5); $pdf->rectangle($x-30,$height-$y,$width-130,$y-$temp-5); $y+=20; // saut de page $pdf->ezNewPage(); // on reinitialise $y à 50; $y = 50; $temp = $y; // cadre Controleur $txt = "Controleur"; $pdf->addTextWrap($x-20, $height-$y, 200, 11, html_entity_decode($txt)); $y+=20; // colonne de gauche $txtEntete = "Marque :"; $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->liste_marque_controleur) > 0){ foreach($prev->liste_marque_controleur as $marque){ if ($marque->modele){ foreach($marque->modele as $modele){ if($modele->id_sous_items == $prev->controleur->modele){ $txtEntete = ""; $txtValeur = $marque->lib_item." - ".$modele->lib_sous_item; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Carte CPU :"; $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->marques_cpu) > 0){ foreach($prev->marques_cpu as $element){ if($element->id_items == $prev->controleur->type_cpu){ $txtEntete = ""; $txtValeur = $element->lib_item; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "N° Série Carte CPU :"; $txtValeur = $prev->controleur->carte_cpu; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "Carte Alim. :"; $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $trouve=0; if(count($prev->marques_alim) > 0){ foreach($prev->marques_alim as $element){ if($element->id_items == $prev->controleur->type_carte_alim){ $txtEntete = ""; $txtValeur = $element->lib_item; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "N°série Carte Alim. :"; $txtValeur = $prev->controleur->carte_alim; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "Carte E/S :"; $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->liste_marque_es) > 0){ foreach($prev->liste_marque_es as $element){ if($element->id_items == $prev->controleur->type_carte_es){ $txtEntete = ""; $txtValeur = $element->lib_item; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Nb entrées :"; $txtValeur = $prev->controleur->nb_carte_entrees; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "N°série Carte entrée :"; $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $trouve=0; if ($prev->controleur->serie_carte_entrees){ foreach($prev->controleur->serie_carte_entrees as $element){ $txtEntete = ""; $txtValeur = $element; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } }if(!$trouve){ $y+=$interligne; } $txtEntete = "Nb sorties :"; $txtValeur = $prev->controleur->nb_carte_sorties; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "N°série Carte sortie :"; $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $trouve=0; if ($prev->controleur->serie_carte_sorties){ foreach($prev->controleur->serie_carte_sorties as $element){ $txtEntete = ""; $txtValeur = $element; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } }if(!$trouve){ $y+=$interligne; } // on enregistre le $y dans le max pour revenir à ce niveau si la colonne de droite est plus petite $yMax = $y; // colonne de droite $y = $temp+20; $txtEntete = "Carte puissance :"; $txtValeur = $prev->controleur->carte_puissance ; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "N°série Carte puissance :"; $txtValeur = ""; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $trouve=0; if ($prev->controleur->serie_carte_puissance){ foreach($prev->controleur->serie_carte_puissance as $element){ $txtEntete = ""; $txtValeur = $element; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } }if(!$trouve){ $y+=$interligne; } $txtEntete = "Horloge :"; $txtValeur = ""; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->liste_horloge) > 0){ foreach($prev->liste_horloge as $element){ if($element->id_items == $prev->controleur->horloge){ $txtEntete = ""; $txtValeur = $element->lib_item; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Nb lignes utilisées :"; $txtValeur = ""; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->liste_ligne) > 0){ foreach($prev->liste_ligne as $element){ if($element->id_items == $prev->controleur->nb_ligne_utilisee){ $txtEntete = ""; $txtValeur = $element->lib_item; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Pré-cablage Max. :"; $txtValeur = ""; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->liste_cablage_max) > 0){ foreach($prev->liste_cablage_max as $element){ if($element->id_items == $prev->controleur->pre_cablage_max){ $txtEntete = ""; $txtValeur = $element->lib_item; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Eprom :"; $txtValeur = ""; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->liste_eprom) > 0){ foreach($prev->liste_eprom as $element){ if($element->id_items == $prev->controleur->eprom){ $txtEntete = ""; $txtValeur = $element->lib_item; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Version Logiciel :"; $txtValeur = ""; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->liste_vers_log) > 0){ foreach($prev->liste_vers_log as $element){ if($element->id_items == $prev->controleur->version_logiciel){ $txtEntete = ""; $txtValeur = $element->lib_item; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Version CPU :"; $txtValeur = ""; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->liste_vers_cpu) > 0){ foreach($prev->liste_vers_cpu as $element){ if($element->id_items == $prev->controleur->version_cpu){ $txtEntete = ""; $txtValeur = $element->lib_item; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Fusible Bornier :"; $txtValeur = ""; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->liste_fusible_bornier) > 0){ foreach($prev->liste_fusible_bornier as $element){ if($element->id_items == $prev->controleur->fusible_bornier){ $txtEntete = ""; $txtValeur = $element->lib_item; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Observations générales :"; $txtValeur = $prev->controleur->observations ; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; // on prend le y max (soit la colonne de gauche, soit la colonne de droite) if ($yMax > $y) $y = $yMax; $y+=$interligne; $pdf->setStrokeColor(0.6,0.6,0.6); $pdf->setLineStyle(0.5); $pdf->rectangle($x-30,$height-$y,$width-130,$y-$temp-5); $y+=20; $temp = $y; // cadre Coordination $txt = "Coordination"; $pdf->addTextWrap($x-20, $height-$y, 200, 11, html_entity_decode($txt)); $y+=20; // colonne de gauche $txtEntete = "Marque type :"; $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->marques_coordination) > 0){ foreach($prev->marques_coordination as $element){ if($element->id_items == $prev->coordination->modele){ $txtEntete = ""; $txtValeur = $element->lib_item; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "N° série :"; $txtValeur = $prev->coordination->num_serie ; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "Nb de cycles en coordination :"; $txtValeur = $prev->coordination->nombre_cycle ; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "Cable de coordination :"; $txtValeur = $prev->coordination->cable_coordination ; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "Remarques :"; $txtValeur = $prev->coordination->remarques ; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $pdf->setStrokeColor(0.6,0.6,0.6); $pdf->setLineStyle(0.5); $pdf->rectangle($x-30,$height-$y,$width-130,$y-$temp-5); $y+=20; $temp = $y; // cadre Télésurveillance $txt = "Télésurveillance"; $pdf->addTextWrap($x-20, $height-$y, 200, 11, html_entity_decode($txt)); $y+=20; // colonne de gauche $txtEntete = "Marque :"; $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->liste_telesurveillance) > 0){ foreach($prev->liste_telesurveillance as $marque){ if ($marque->modele){ foreach($marque->modele as $modele){ if($modele->id_sous_items == $prev->telesurveillance->modele){ $txtEntete = ""; $txtValeur = $marque->lib_item." - ".$modele->lib_sous_item; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve ++; } } } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "N° téléphone PC :"; $txtValeur = ""; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $trouve=0; if ($prev->telesurveillance->tel_pc){ foreach($prev->telesurveillance->tel_pc as $element){ $txtEntete = ""; $txtValeur = $element; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } }if(!$trouve){ $y+=$interligne; } $txtEntete = "Modem :"; $txtValeur = $prev->telesurveillance->modem; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "N° Série :"; $txtValeur = $prev->telesurveillance->num_serie; txtEnteteFonction($pdf,$x,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; // on enregistre le $y dans le max pour revenir à ce niveau si la colonne de droite est plus petite $yMax = $y; // colonne de droite $y = $temp+20; $txtEntete = "N° téléphone ligne :"; $txtValeur = $prev->telesurveillance->tel_ligne; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "Type communication :"; $txtValeur = ""; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $trouve = 0; if(count($prev->liste_type_communication) > 0){ foreach($prev->liste_type_communication as $element){ if($element->id_items == $prev->telesurveillance->communication){ $txtEntete = ""; $txtValeur = $element->lib_item; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height ); $y+=$interligne; $trouve++; } } } if(!$trouve){ $y+=$interligne; } $txtEntete = "Fournisseur d'accès :"; $txtValeur = $prev->telesurveillance->fournisseur_acces; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "Client Communication :"; $txtValeur = $prev->telesurveillance->client_communication; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $txtEntete = "Ref. Abonnement Comm. :"; $txtValeur = $prev->telesurveillance->reference_abonnement; txtEnteteFonction($pdf,$x+250,$y,$txtEntete,$txtValeur,$height); $y+=$interligne; $pdf->setStrokeColor(0.6,0.6,0.6); $pdf->setLineStyle(0.5); $pdf->rectangle($x-30,$height-$y,$width-130,$y-$temp-5); if($prev->nature_statique==true || $prev->nature_dynstat==true || $prev->profil==2 || $prev->profil==1){ if ($prev->liste_supports){ FicheStatiqueUMPDF($pdf,$prev); } } } function FicheStatiqueUMPDF(&$pdf,$prev) { $pdf->ezNewPage(); $pdf->ezSetMargins(50,50,100,50);; $pdf->selectFont('../utils/pdf-php/fonts/Times-Roman.afm'); // logo $width = $pdf->ez['pageWidth']; $height = $pdf->ez['pageHeight']; $pdf->addJpegFromFile($prev->logo_centre_PDF,$width/2,$height-60,50); $pdf->ezText(""); $pdf->ezText(""); // titre du doc $pdf->setColor(0.2,0.4,0.8); $tab = array('justification'=>'center'); $txt = "Fiche statique supports de l'unité de maintenance"; $pdf->ezText(html_entity_decode($txt),12,$tab); $txt = "n° ".$prev->um->cd_unite_maintenance." - ".$prev->ville_um." (1/".$prev->nb_pages_support.") "; $pdf->ezText(html_entity_decode($txt),12,$tab); $pdf->ezText(""); $pdf->ezText(""); $x = 110; $y = 130; $interligne =12; foreach ($prev->liste_supports as $support){ if($support->new_page){ $pdf->ezNewPage(); $pdf->ezSetMargins(50,50,100,50);; $pdf->selectFont('../utils/pdf-php/fonts/Times-Roman.afm'); $pdf->setColor(0.2,0.4,0.8); $tab = array('justification'=>'center'); $txt = "Fiche statique supports de l'unité de maintenance"; $pdf->ezText(html_entity_decode($txt),12,$tab); $txt = "n° ".$prev->um->cd_unite_maintenance." - ".$prev->ville_um." (".$support->new_page."/".$prev->nb_pages_support.")"; $pdf->ezText(html_entity_decode($txt),12,$tab); $pdf->ezText(""); $pdf->ezText(""); } /* Impression des informations de l'équipement statique (support) */ $txt_type_support = ""; if(!$support->type_support==null){ foreach($prev->liste_type_support as $tab){ if($tab->id_items == $support->type_support){ $txt_type_support .= $tab->lib_item; } } } $txt_forme = ""; if(!$support->forme==null){ foreach($prev->liste_forme_support as $tab){ if($tab->id_items == $support->forme){ $txt_forme .= $tab->lib_item; } } } $txt_matiere = ""; if(!$support->matiere==null){ foreach($prev->liste_matiere_support as $tab){ if($tab->id_items == $support->matiere){ $txt_matiere .= $tab->lib_item; } } } $txt_hauteur = ""; if(!$support->hauteur==null){ foreach($prev->liste_hauteur_support as $tab){ if($tab->id_items == $support->hauteur){ $txt_hauteur .= $tab->lib_item; } } } $txt_etat = ""; if(!$support->etat==null){ foreach($prev->liste_etat_support as $tab){ if($tab->id_items == $support->etat){ $txt_etat .= $tab->lib_item; } } } $txt_deport = ""; if(!$support->deport==null){ foreach($prev->liste_deport_support as $tab){ if($tab->id_items == $support->deport){ $txt_deport .= $tab->lib_item; } } } $txt_annee = ""; if(!$support->annee==null){ foreach($prev->liste_annees as $tab){ if($tab->id_items == $support->annee){ $txt_annee .= $tab->lib_item; } } } $txt_peinture = ""; if(!$support->peinture==null){ foreach($prev->peinture as $tab){ if($tab->id_items == $support->peinture){ $txt_peinture .= $tab->lib_item; } } } $txt_trait_pied_poteau = ""; if(!$support->trait_pied_poteau==null){ foreach($prev->question as $tab){ if($tab->id_items == $support->trait_pied_poteau){ $txt_trait_pied_poteau .= $tab->lib_item; } } } $support->code_support = "".html_entity_decode(htmlentities($support->code_support,ENT_NOQUOTES,'UTF-8')).""; $txt_type_support = html_entity_decode(htmlentities($txt_type_support,ENT_NOQUOTES,'UTF-8')); $txt_forme = html_entity_decode(htmlentities($txt_forme,ENT_NOQUOTES,'UTF-8')); $txt_matiere = html_entity_decode(htmlentities($txt_matiere,ENT_NOQUOTES,'UTF-8')); $txt_hauteur = html_entity_decode(htmlentities($txt_hauteur,ENT_NOQUOTES,'UTF-8')); $txt_etat = html_entity_decode(htmlentities($txt_etat,ENT_NOQUOTES,'UTF-8')); $txt_deport = html_entity_decode(htmlentities($txt_deport,ENT_NOQUOTES,'UTF-8')); $txt_annee = html_entity_decode(htmlentities($txt_annee,ENT_NOQUOTES,'UTF-8')); $txt_peinture = html_entity_decode(htmlentities($txt_peinture,ENT_NOQUOTES,'UTF-8')); $txt_trait_pied_poteau = html_entity_decode(htmlentities($txt_peinture,ENT_NOQUOTES,'UTF-8')); $data = array(array('Code' => $support->code_support, 'Type' => $txt_type_support, 'Forme' => $txt_forme, 'Matiere'=> $txt_matiere, 'Hauteur'=> $txt_hauteur, 'Etat' => $txt_etat, 'Deport' => $txt_deport, 'Annee' => $txt_annee, 'Peinture' => $txt_peinture, 'Traitement' => $txt_trait_pied_poteau )); $cols = array('Code'=>'Code', 'Type'=>'Type', 'Forme' => 'Forme', 'Matiere' => html_entity_decode('Matière'), 'Hauteur' => 'Hauteur', 'Etat'=>'Etat', 'Deport'=>html_entity_decode('Déport'), 'Annee'=>html_entity_decode('Année'), 'Peinture'=>'Peinture', 'Traitement'=>'Traitement'); $options = array('textCol'=>array(0.2,0.4,0.8), 'showLines' => 2, 'maxWidth' => $width-100, 'width' => $width-100, 'fontSize' => 9); $pdf->ezTable($data, $cols,'',$options); $pdf->ezText(""); /* S'il existe des details pour le support, impression des details sous forme de tableau */ if ($support->details){ $title = ''.html_entity_decode('Détails').''; $pdf->setColor(0,0,0); $tab = array('justification'=>'left'); $pdf->ezText(html_entity_decode($title),9,$tab); $pdf->ezText("",3); $cols = array('Signal'=>'Signal', 'Fixation'=>'Fixation', 'Modele' => html_entity_decode('Modèle'), 'Source' => 'Source', 'Specification'=>html_entity_decode('Spécification'), 'Diametre'=>html_entity_decode('Diamètre'), 'Dissocie'=>html_entity_decode('Dissocié'), 'Contraste'=>'Plaque de contraste' ); $options = array('textCol'=>array(0.2,0.4,0.8), 'showLines' => 2, 'maxWidth' => $width-100, 'width' => $width-100, 'fontSize' => 9); $data = array(); foreach ($support->details as $detail){ $txt_signal = ""; if(!$detail->signal==null){ foreach($prev->liste_signal_support as $tab){ if($tab->id_items == $detail->signal){ $txt_signal .= $tab->lib_item; } } } $txt_fixation = ""; if(!$detail->fixation==null){ foreach($prev->liste_fixation_support as $tab){ if($tab->id_items == $detail->fixation){ $txt_fixation .= $tab->lib_item; } } } $txt_modele = ""; if(!$detail->modele==null){ foreach($prev->liste_marque_support as $marque){ if($marque->modele){ foreach($marque->modele as $modele){ if($modele->id_sous_items==$detail->modele){ $txt_modele .= $modele->lib_sous_item; } } } } } $txt_source = ""; if(!$detail->source==null){ foreach($prev->liste_source_support as $tab){ if($tab->id_items == $detail->source){ $txt_source .= $tab->lib_item; } } } $txt_specification = ""; if(!$detail->specification==null){ foreach($prev->liste_specification_support as $tab){ if($tab->id_items == $detail->specification){ $txt_specification .= $tab->lib_item; } } } $txt_diametre = ""; if(!$detail->diametre==null){ foreach($prev->liste_diametre_support as $tab){ if($tab->id_items == $detail->diametre){ $txt_diametre .= $tab->lib_item; } } } $txt_dissocie = ""; if(!$detail->dissocie==null){ foreach($prev->question as $tab){ if($tab->id_items == $detail->dissocie){ $txt_dissocie .= $tab->lib_item; } } } $txt_plaque_contraste = ""; if(!$detail->plaque_contraste==null){ foreach($prev->question as $tab){ if($tab->id_items == $detail->plaque_contraste){ $txt_plaque_contraste .= $tab->lib_item; } } } $txt_signal = html_entity_decode(htmlentities($txt_signal,ENT_NOQUOTES,'UTF-8')); $txt_fixation = html_entity_decode(htmlentities($txt_fixation,ENT_NOQUOTES,'UTF-8')); $txt_modele = html_entity_decode(htmlentities($txt_modele,ENT_NOQUOTES,'UTF-8')); $txt_source = html_entity_decode(htmlentities($txt_source,ENT_NOQUOTES,'UTF-8')); $txt_specification = html_entity_decode(htmlentities($txt_specification,ENT_NOQUOTES,'UTF-8')); $txt_diametre = html_entity_decode(htmlentities($txt_diametre,ENT_NOQUOTES,'UTF-8')); $txt_dissocie = html_entity_decode(htmlentities($txt_dissocie,ENT_NOQUOTES,'UTF-8')); $txt_plaque_contraste = html_entity_decode(htmlentities($txt_plaque_contraste,ENT_NOQUOTES,'UTF-8')); $ligne = array('Signal' => $txt_signal, 'Fixation' => $txt_fixation, 'Modele' => $txt_modele, 'Source' => $txt_source, 'Specification' => $txt_specification, 'Diametre' => $txt_diametre, 'Dissocie' => $txt_dissocie, 'Contraste' => $txt_plaque_contraste); array_push ($data, $ligne); } $pdf->ezTable($data, $cols,"",$options); } /* S'il existe des installations electriques pour le support, impression des installations electriques sous forme de tableau */ if ($support->installation){ $title = ''.html_entity_decode('Installations Électriques').''; $pdf->setColor(0,0,0); $tab = array('justification'=>'left'); $pdf->ezText(html_entity_decode($title),9,$tab); $pdf->ezText("",3); $cols = array('Conducteur'=>'Conducteur', 'Fourreau'=>'Fourreau', 'Type' => 'Type', 'Coffret' => 'Coffret Classe 2', 'Raccord'=>'Type raccord', 'Etat'=>html_entity_decode('État') ); $options = array('textCol'=>array(0.2,0.4,0.8), 'showLines' => 2, 'maxWidth' => $width-100, 'width' => $width-100, 'fontSize' => 9); $data = array(); foreach ($support->installation as $installation){ $txt_nomconducteur = ""; if(!$installation->nomconducteur==null){ foreach($prev->liste_conducteur as $tab){ if($tab->id_items == $installation->nomconducteur){ $txt_nomconducteur .= $tab->lib_item; } } } $txt_fourreau = ""; if(!$installation->fourreau==null){ foreach($prev->liste_fourreau as $tab){ if($tab->id_items == $installation->fourreau){ $txt_fourreau .= $tab->lib_item; } } } $txt_type_cable = ""; if(!$installation->type_cable==null){ foreach($prev->liste_type_cable as $tab){ if($tab->id_items == $installation->type_cable){ $txt_type_cable .= $tab->lib_item; } } } $txt_coffret_classe2 = ""; if ($installation->coffret_classe2){ $txt_coffret_classe2 = "Oui"; }else{ $txt_coffret_classe2 = "Non"; } $txt_type_raccordement = ""; if(!$installation->type_raccordement==null){ foreach($prev->liste_raccord_installation as $tab){ if($tab->id_items == $installation->type_raccordement){ $txt_type_raccordement .= $tab->lib_item; } } } $txt_etat_general = ""; if(!$installation->etat_general==null){ foreach($prev->liste_etat_supp as $tab){ if($tab->id_items == $installation->etat_general){ $txt_etat_general .= $tab->lib_item; } } } $txt_nomconducteur = html_entity_decode(htmlentities($txt_nomconducteur,ENT_NOQUOTES,'UTF-8')); $txt_fourreau = html_entity_decode(htmlentities($txt_fourreau,ENT_NOQUOTES,'UTF-8')); $txt_type_cable = html_entity_decode(htmlentities($txt_type_cable,ENT_NOQUOTES,'UTF-8')); $txt_coffret_classe2 = html_entity_decode(htmlentities($txt_coffret_classe2,ENT_NOQUOTES,'UTF-8')); $txt_type_raccordement = html_entity_decode(htmlentities($txt_type_raccordement,ENT_NOQUOTES,'UTF-8')); $txt_etat_general = html_entity_decode(htmlentities($txt_etat_general,ENT_NOQUOTES,'UTF-8')); $ligne = array('Conducteur' => $txt_nomconducteur, 'Fourreau' => $txt_fourreau, 'Type' => $txt_type_cable, 'Coffret' => $txt_coffret_classe2, 'Raccord' => $txt_type_raccordement, 'Etat' => $txt_etat_general); array_push ($data, $ligne); } $pdf->ezTable($data, $cols,"",$options); } $pdf->ezText("",20); $pdf->ezText("",20); } } function txtEnteteFonction(&$pdf,$x,&$y,$txtEntete,$txtValeur,$heightPage){ $size = 8; $colorEntete = 0; $colorValueR = 0.2; $colorValueV = 0.4; $colorValueB = 0.8; $txtValeur = htmlentities($txtValeur,ENT_NOQUOTES,'UTF-8'); if($heightPage-$y < 50){ // saut de page $pdf->ezNewPage(); // on reinitialise $y à 50; $y = 50; } $pdf->setColor($colorEntete,$colorEntete,$colorEntete); $pdf->addTextWrap($x, $heightPage-$y, 100, $size, html_entity_decode($txtEntete)); $pdf->setColor($colorValueR,$colorValueV,$colorValueB); $pdf->addTextWrap($x+100, $heightPage-$y, 100, $size, html_entity_decode($txtValeur)); } //************************************************************************ //**** reccuperation du contenu des filtres pour affiner les requetes **** //************************************************************************ function view_filtre(){ global $ppo; $_SESSION['UMS_FLT_CTR'] = CopixRequest :: get('contrats'); $_SESSION['UMS_FLT_VIL'] = CopixRequest :: get('city'); $_SESSION['UMS_FLT_SOC'] = CopixRequest :: get('societe'); $_SESSION['UMS_FLT_LOC'] = CopixRequest :: get('loc'); $_SESSION['UMS_FLT_FEU'] = array(); $_SESSION['UMS_FLT_FEU'] = CopixRequest :: get ('feux'); $_SESSION['UMS_FLT_UM'] = CopixRequest :: get('um'); $_SESSION['UMS_TRI_STA'] = 0; } function view_recup_filtre() { if (isset($_SESSION['UMS_FLT_CTR'])) { $filtre->contrat = $_SESSION['UMS_FLT_CTR']; } if (isset($_SESSION['UMS_FLT_VIL'])) { $filtre->ville = $_SESSION['UMS_FLT_VIL']; } if (isset($_SESSION['UMS_FLT_SOC'])) { $filtre->societe = $_SESSION['UMS_FLT_SOC']; } if (isset($_SESSION['UMS_FLT_LOC'])) { $filtre->localisation = $_SESSION['UMS_FLT_LOC']; } if (isset($_SESSION['UMS_FLT_FEU'])) { $filtre->feux = array(); $filtre->feux = $_SESSION['UMS_FLT_FEU']; } if (isset($_SESSION['UMS_FLT_UM'])) { $filtre->um = $_SESSION['UMS_FLT_UM']; } return $filtre; } function view_tri(){ if (copixRequest :: get('tri_um')) { $sens = CopixRequest :: get('sens'); $_SESSION['UMS_TRI_SEN'] = $sens; $tri=CopixRequest :: get('tri'); $_SESSION['UMS_TRI_TRI'] = $tri; $order = CopixRequest :: get('orderby'); $_SESSION['UMS_TRI_ORD'] = $order; } if (copixRequest :: get('page_um')) { $start = CopixRequest :: get('start'); $_SESSION['UMS_TRI_STA'] = $start; } } function view_recup_tri(){ if (isset($_SESSION['UMS_TRI_SEN'])) { $tri->sens = $_SESSION['UMS_TRI_SEN']; } if (isset($_SESSION['UMS_TRI_TRI'])) { $tri->tri = $_SESSION['UMS_TRI_TRI']; } if (isset($_SESSION['UMS_TRI_STA'])) { $tri->start = $_SESSION['UMS_TRI_STA']; } if (isset($_SESSION['UMS_TRI_ORD'])) { $tri->order = $_SESSION['UMS_TRI_ORD']; } return $tri; } ?>