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;
}
?>