<?php
/*
$Id: stationrebut.class.php,v 1.5 2006-11-02 13:53:53 fgiva Exp $
*/
require_once ("formulaire.class.php");
require_once ("station.class.php");

class stationrebut extends station {

var $table="stationrebut";
var $clePrimaire= "idstation";
var $typeCle= "N";

function stationrebut($id,&$db,$DEBUG) {
$this->constructeur($id,$db,$DEBUG);
} // fin constructeur

function setVal(&$form,$maj,$validation,&$db){
//ne pas hériter de station::setval
}

function bouton($maj,$val=null){  //surcharge pour reintegrer
// =======================================================================
// Bouton Ajouter, modifier, supprimer
// =======================================================================
// * custom *
if(file_exists("../dyn/custom/var.inc")) {
   include("../dyn/custom/var.inc");
}
else {
  include("../dyn/var.inc");
}
//*
if (!$this->correct){
  if ($maj == 2) //supprimer
    $bouton = "Réintégrer";
  if ($maj==2) //modif interdite sur rebut
    echo "<tr><td><br></td></tr><tr><td colspan=2><center><input type='submit' value='".$bouton." ".ucwords($this->table)."' style=".$styleBouton." >";
  else
    echo "<tr><td><br></td></tr><tr><td colspan=2><center>";
}}

function setType(&$form,$maj) { 
  $form->setType('idstation', 'hiddenstatic');
  $form->setType('numero', 'hiddenstatic');
  $form->setType('idtypestation', 'hidden');             
  $form->setType('libtypestation', 'hiddenstatic');
  $form->setType('idmodele', 'hidden');             
  $form->setType('libmodele', 'hiddenstatic');
  $form->setType('idmarque', 'hidden');             
  $form->setType('libmarque', 'hiddenstatic');
  $form->setType('idfournisseur', 'hidden');
  $form->setType('libfournisseur', 'hiddenstatic');
  $form->setType('dateachat', 'hiddenstaticdate');
  $form->setType('daterebut', 'hiddenstaticdate');
  $form->setType('garantie', 'hiddenstatic');
  $form->setType('bc', 'hiddenstatic');
  $form->setType('numserie', 'hiddenstatic');
}

function setLib(&$form,$maj) {
  parent::setLib($form,$maj);
  $form->setLib('libfournisseur','Fournisseur');
  $form->setLib('libmarque','Marque');
  $form->setLib('libtypestation','Type de station');
  $form->setLib('bc','Bon de commande');
  $form->setLib('libmodele','Modèle');
}

function setSelect(&$form,$maj,$db,$DEBUG) { //surcharge aucun select
}

function setGroupe(&$form,$maj){
  $form->setGroupe('idstation','D');
  $form->setGroupe('numero','F');

  $form->setGroupe('libmodele','D');
  $form->setGroupe('libmarque','F');
  $form->setGroupe('libtypestation','D');
  $form->setGroupe('numserie','F');

  $form->setGroupe('dateachat','D');
  $form->setGroupe('libfournisseur','G');
  $form->setGroupe('daterebut','F');
  $form->setGroupe('bc','D');
  $form->setGroupe('garantie','F');
}

function setRegroupe(&$form,$maj){
  $form->setRegroupe('idstation','D',' Identification ');
  $form->setRegroupe('numero','F','');

  $form->setRegroupe('libmodele','D',' Modèle ');
  $form->setRegroupe('libmarque','G','');
  $form->setRegroupe('libtypestation','G','');
  $form->setRegroupe('numserie','F','');

  $form->setRegroupe('dateachat','D',' Achat ');
  $form->setRegroupe('libfournisseur','G','');
  $form->setRegroupe('daterebut','G','');
  $form->setRegroupe('bc','G','');
  $form->setRegroupe('garantie','F','');
}

function triggersupprimer($id,&$db,$val,$DEBUG) {  //surcharge de station
//reintegration de station et de ses composants,interventions avant suppression
  $stockvalF['idstation']=$db->nextID("station");
  $stockvalF['numero'] = $val["numero"];
  $stockvalF['idtypestation'] = $val["idtypestation"];
  $stockvalF['idmodele'] = $val["idmodele"];
  $stockvalF['numserie'] = $val["numserie"];
  if($val['dateachat']!="") $stockvalF['dateachat'] = $this->dateDB($val["dateachat"]);
  $stockvalF['dateatelier'] = date("Y-m-d");
  $stockvalF['garantie'] = $val["garantie"];
  $stockvalF['idfournisseur'] = $val["idfournisseur"];
  $stockvalF['idmarque'] = $val["idmarque"];
  $stockvalF['bc'] = $val["bc"];
  $stockvalF['idorganisme'] = 1;
  $stockvalF['idetatstation'] = 4;  //en stock
  $res= $db->autoExecute("station",$stockvalF,DB_AUTOQUERY_INSERT);
  if (DB :: isError($res))
    $this->erreur_db($res->getDebugInfo(),$res->getMessage(),'');
  else{
    if ($DEBUG == 1)
      echo "La requête de mise à jour est effectuée.<br>";
  $this->msg=$this->msg."<br>Enregistrement ".
  $val['idstation']." de la table station [".$db->affectedRows()." enregistrement ajouté]" ;
  } // requete creation station
  //reintegration des composants de la station
  $sql="select idmodele,adressemac from elementrebut where idstation=".$val["idstation"]; 
  $res = $db->query($sql);
  if (DB :: isError($res))
    die($res->getMessage().$sql);
  else{
    if ($DEBUG == 1)
      echo " la requete ".$sql." est exécutée<br>";
    while ($row=& $res->fetchRow()){ 
      $stockelvalF="";
      $stockelvalF['idelement']=$db->nextID("element");//$row[0];
      $stockelvalF['idstation'] = $stockvalF['idstation'];
      $stockelvalF['idmodele'] = $row[0];
      $stockelvalF['adressemac'] = $row[1];
      $res2= $db->autoExecute("element",$stockelvalF,DB_AUTOQUERY_INSERT);
      if (DB :: isError($res2))
        $this->erreur_db($res2->getDebugInfo(),$res2->getMessage(),'');
      else{
        if ($DEBUG == 1)
          echo "La requête de mise à jour est effectuée.<br>";
          $this->msg=$this->msg."<br>Enregistrement ".
  $row[0]." de la table element [".$db->affectedRows()." enregistrement ajouté]" ;
      }
    }
  }
  //reintegration interv de station
  $sql="select * from interventionrebut where idstation=".$val["idstation"];  
  $res = $db->query($sql);
  if (DB :: isError($res))
    die($res->getMessage().$sql);
  else{
    if ($DEBUG == 1)
      echo " la requete ".$sql." est exécutée<br>";
    while ($row=& $res->fetchRow()){ 
      if ($row[3]!=$db->getOne("select idtype from typeintervention where libtype='Mise au rebut'")) { //sauf mise au rebut
        $stockelvalF="";
        $stockelvalF['idintervention']=$db->nextID("intervention");
        $stockelvalF['idstation']=$stockvalF['idstation'];
        $stockelvalF['idtype']=$row[3];
        $stockelvalF['iddemandeur']=$row[4];
        $stockelvalF['idintervenant']=$row[5];
        $stockelvalF['dateouverture']=$row[6];
        $stockelvalF['datecloture']=$row[7];
        $stockelvalF['observations']=$row[8];
        $stockelvalF['idetatintervention']=3;  //cloturee
        $res2= $db->autoExecute("intervention",$stockelvalF,DB_AUTOQUERY_INSERT);
        if (DB :: isError($res2))
          $this->erreur_db($res2->getDebugInfo(),$res3->getMessage(),'');
        else{
          if ($DEBUG == 1)
            echo "La requête de mise à jour est effectuée.<br>";
            $this->msg=$this->msg."<br>Enregistrement ".
    $row[0]." de la table intervention [".$db->affectedRows()." enregistrement ajouté]" ;
        }
      }
    }
  }
  //effacer elementrebuts(composants) sans referant station
  $sql= "delete from elementrebut where idstation=".$val["idstation"];
  $res= $db->query($sql);
  if (DB :: isError($res))
    $this->erreur_db($res->getDebugInfo(),$res->getMessage(),'');
  else{
    if ($DEBUG == 1)
      echo "La requête".$sql." est effectuée.<br>";
    $this->msg=$this->msg."<br>Enregistrement(s) de la table elementrebut [".$db->affectedRows()." enregistrement supprimé]" ;
  }
  //effacer interventionrebuts sans referant station
  $sql= "delete from interventionrebut where idstation=".$val["idstation"];
  $res= $db->query($sql);
  if (DB :: isError($res))
    $this->erreur_db($res->getDebugInfo(),$res->getMessage(),'');
  else{
    if ($DEBUG == 1)
      echo "La requête".$sql." est effectuée.<br>";
    $this->msg=$this->msg."<br>Enregistrement(s) de la table interventionrebut [".$db->affectedRows()." enregistrement supprimé]" ;
  } //enr. stationrebut sera supprime apres
}

function verifier(){//surcharge
$this->correct=true;
}

}// fin de classe
?>