<?php
/*
$Id: composant.class.php,v 1.9 2008-04-04 14:58:42 fgiva Exp $
*/
require_once ("formulaire.class.php");
require_once ("element.class.php");

class composant extends element {

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

function setValsousformulaire(&$form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire,&$db){
if ($validation==0) {
  if ($maj == 0){
    $form->setVal('idstation', $idxformulaire);    //fixe lors ajout element à station
  }
}
if ($maj==1) {
  if ($this->val[array_search('dateatelier', $this->champs)]!="0000-00-00")
    $form->setVal('scanner', "Oui");
}
}

function setvalF($val){
  parent::setvalF($val);
  $this->valF['idstation'] = $val['idstation'];
  $this->valF['numserie'] = $val['numserie']; //ajout
  if($val['edateachat']!="")
    $this->valF['dateachat'] = $this->dateDB($val['edateachat']); //==
  $this->valF['idfournisseur'] = $val['idfournisseur'];
  $this->valF['garantie'] = $val['garantie'];
  $this->valF['bc'] = $val['bc'];
  $this->valF['adressemac'] = $val['adressemac'];
  if ($val['scanner']=="Oui" && ($val['dateatelier']=="0000-00-00" || !$val['dateatelier']))
    $this->valF['dateatelier'] = date('y/m/d'); 
  if ($val['scanner']=="Non" && $val['dateatelier']!="0000-00-00")
    $this->valF['dateatelier'] = "0/0/0";
}

function setType(&$form,$maj) {
  parent::setType($form,$maj); 
  if ($maj < 2) { //ajouter et modifier
    $form->setType('numserie', 'text');
    $form->setType('edateachat', 'date');
    $form->setType('idfournisseur', 'select');
    $form->setType('garantie', 'select');
    $form->setType('bc', 'text');
    $form->setType('adressemac', 'text');
    $form->setType('scanner', 'select');
  }
  if ($maj < 3) $form->setType('station', 'hiddenstatic');    //numero station
}

function setSelect(&$form, $maj,$db,$debug) {
  include ("../dyn/connexion.php");
  include ("../sql/".$dsn['phptype']."/".$this->table.".form.inc");
  parent::setSelect($form, $maj,$db,$debug);
  if($maj<2){
    $form->setSelect("idfournisseur",$this->selectArray($db,$sql_fournisseur,0," Choisir un fournisseur"));
    $contenu=array();
    $contenu[0]=array('1','2','3','4','5');
    $contenu[1]=array('1','2','3','4','5');
    $form->setSelect("garantie",$contenu);
    $contenu=array();
    $contenu[0]=array('Non','Oui');
    $contenu[1]=array('Non','Oui');
    $form->setSelect("scanner",$contenu);
    if ($maj==0) {
      $contenu="";                                 
      $contenu[0]=$modele[0][get_class($this)];  
      $contenu[1]=$modele[1][get_class($this)];  
      $form->setSelect("typeelement",$contenu);
    }
/*    if ($maj==1) {  //si maj à 1 seulement (car sinon typeelement="")
      $modeleelement=$this->val[array_search('typeelement', $this->champs)]; 
      $sql= str_replace("%MODELE%",$modeleelement,$sql_autremodele);
      $form->setSelect("idmodele",$this->selectArray($db,$sql,0," Choisir un modèle"));
    }*/
  }  
}

function setLib(&$form,$maj) {
  parent::setLib($form,$maj);
  $form->setLib('idfournisseur','Fournisseur');
  $form->setLib('bc','Bon de commande');
  $form->setLib('typeelement','Type de composant');
  $form->setLib('adressemac','Complément');
  $form->setLib('scanner','Outrepasser rapport WMI?');
}

function verifier(&$db){
  include ("../dyn/connexion.php");
  include ("../sql/".$dsn['phptype']."/".$this->table.".form.inc");
  parent::verifier();
  //verif unicité numserie
  if ($this->valF['numserie']) {  //si numserie fixé
    $sql="select idelement from element where idmodele=".$this->valF['idmodele']." and numserie like '%".$this->valF['numserie']."%'";
    if ($this->valF['idelement'])
      $sql.=" and idelement<>".$this->valF['idelement'];
    $element=$db->getOne($sql);
    if ($element) {
      $this->correct=false;
      $this->msg= $this->msg."<br>No serie déjà utilisé par l'élément ".$element;
    }
  }
}

// =================================
//         TOUT    SUPPRIMER
// =================================

function toutsupprimer($val,$idxformulaire,&$db,$DEBUG){
    $sql2="select idelement from element inner join modeleelement on element.idmodele=modeleelement.idmodele where idstation=".$idxformulaire." and classe='composant'";
    $res2 = $db->query($sql2);
    if (DB :: isError($res2))
      die($res2->getMessage().$sql2);
    else{
      if ($DEBUG == 1)
        echo " la requete ".$sql2." est exécutée<br>";
      while ($row=& $res2->fetchRow()) { //archivage des interv de la station
        $id=$row[0];
        $this->cleSecondaire($id,$db,$val,$DEBUG);
        $this->testverrou();
        if($this->correct) {
          $this->triggersupprimer($id,$db,$val,$DEBUG);
          if($this->typeCle=="A")
            $cle= $this->clePrimaire." = '".$id."'";
          else
            $cle= $this->clePrimaire." = ".$id;
          $sql= "delete from ".$this->table." where ".$cle;
          $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."Enregistrement ".$id." de la table ".
            $this->table." [".$db->affectedRows()." enregistrement supprimé]" ;
            $this->verrouille(); // *** 1.16
          } // requete maj
          $this->triggersupprimerapres($id,$db,$val,$DEBUG);
        }
      }
    }
}

}// fin de classe
?>