<?php
/*
$Id: peripheriquestation.class.php,v 1.11 2008-04-08 09:56:58 fgiva Exp $
*/
require_once ("formulaire.class.php");
require_once ("peripherique.class.php");

class peripheriquestation extends peripherique {

function peripheriquestation($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('idetatelement',1); //affecte par defaut à la création
    $form->setVal('idstation', $idxformulaire);    //fixe lors ajout element à station
    $form->setVal('idorganisme',1);
  }
}
}

function setvalF($val){
  parent::setvalF($val);
  $this->valF['numero'] = $val['numero'];  //
/*  if ($val['idetatelement']>1)
    $this->valF['idstation'] = 0;   //pour desaffecter peripherique de station}
  else*/
    $this->valF['idstation'] = $val['idstation'];  //
}

function setType(&$form,$maj) {
  parent::setType($form,$maj); 
//  if ($maj == 0) //champ etat masque a la creation
//    $form->setType('idetatelement', 'hidden');
  if ($maj<2) { //en modification (seulement) et creation maintenant
    $form->setType('idstation', 'select');   //numero station
    if ($maj==0)
      $form->setType('numero', 'text');
    else {
      if ($form->val['numero'])
         $form->setType('numero', 'hiddenstatic');
      else
         $form->setType('numero', 'text');
    }
  } else
    $form->setType('numero', 'hiddenstatic');    //numero periph
}

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){
    if ($form->type["idstation"]=="select") 
      $form->setSelect("idstation",$this->selectArray($db,$sql_station,0," Aucune"));
    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"));*/
      $form->setSelect("idstation",$this->selectArray($db,$sql_station,0," Aucune"));
    }  
  }  
}

function setLib(&$form,$maj) {
  parent::setLib($form,$maj);
  $form->setLib('typeelement','Type de périphérique');
  if ($maj==1) $form->setLib('idstation','Affecté à la station');
}

function verifier(&$db){
  // obligatoire
  include ("../dyn/connexion.php");
  include ("../sql/".$dsn['phptype']."/".$this->table.".form.inc");
  parent::verifier($db);
  //verif affectation/station
  if ($this->valF['idetatelement']==1){
     //si affectation, verifier idstation <> 0
    if ($this->valF['idstation']==0) {
      $this->correct=false;
      $this->msg= $this->msg."<br>Selectionner une station!";
    }
  } else {
     //si non affectation, verifier idstation = 0
    if ($this->valF['idstation']<>0) {
      $this->correct=false;
      $this->msg= $this->msg."<br>Vous avez choisi une station";
    }
  }
  //sans numserie passer par suppression
  if ($this->valF['idetatelement']>1 && $this->valF["numserie"]=="" && $this->valF['numero']==""){
     $this->correct=false;
     $this->msg= $this->msg."<br>Desaffectation impossible! NoSérie ou numéro nécessaire.";
  }
  //tester en cas absence noserie ou numero, non existence intervention
  if ($this->valF["numserie"]=="" && $this->valF["numero"]=="" && $this->valF["idelement"]<>"") { //maj=1
    $sql_intervention.=$this->valF["idelement"];
    $res = $db->getOne($sql_intervention);
    if (DB :: isError($res))
      die($res->getMessage().$sql_intervention);
    else{
      if ($DEBUG == 1)
          echo " la requete ".$sql_intervention." est exécutée<br>";
      if ($res>0) {
        $this->correct=false;   
        $this->msg.= "<br>Interventions existantes! NoSérie ou numéro indispensable.";
      }
    }
  }
}

function setRegroupe(&$form,$maj,&$db,$idx){
  parent::setRegroupe($form,$maj,$db,$idx);
  if ($maj<2) {
    $form->setRegroupe('idetatelement','D','Affectation');
    $form->setRegroupe('idstation','F','');
  }
}

}// fin de classe
?>