<?php
/*
$Id: modeleelement.class.php,v 1.4 2006-11-02 13:53:52 fgiva Exp $
*/
require_once ("formulaire.class.php");
require_once ("dbformparc.class.php");   

class modeleelement extends dbFormparc {

var $table="modeleelement";
var $clePrimaire= "idmodele";
var $typeCle= "N" ;
var $classe;

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

function setvalF($val){
$this->valF['classe'] = $this->classe;
$this->valF['idmodele'] = $val['idmodele'];
$this->valF['nature'] = $val['nature'];
$this->valF['libmodele'] = $val['libmodele'];
$this->valF['idmarque'] = $val['idmarque'];
}
// pas d initialisation valF pour la cle primaire
function setValFAjout($val){
}
// initialisation valF pour la cle primaire

function setId($db){
// id automatique nextid
$this->valF['idmodele'] = $db->nextId($this->table);
}

function verifierAjout(){
}

function verifier(){
$this->correct=True;
// obligatoire
if ($this->valF['libmodele']==""){
   $this->correct=false;
   $this->msg= $this->msg."<br>Description obligatoire";
}

}//verifier

// cle secondaire
function cleSecondaire($id,$db,$val,$debug) {
  $this->rechercheInstances($id,$db,$debug) ;
}

/*function retour($premier,$recherche,$tricol){
// =============================================================================
// $premier = page de retour
// $recherche = critere de recherche retour
// =============================================================================
//surcharge pour passage get_class($this) par nat (ex:processeur,ecran,...)
if (!$this->correct){
   echo "<a href=\"tab.php?obj=get_class($this)".get_class($this)."&nat=".$this->nature.
   "&premier=".$premier."&recherche=".$recherche."&tri=".$tricol.
   "\">";
   // * custom *
    if(file_exists("../dyn/custom/img/retour.png")) {
       echo "<img src='../dyn/custom/img/retour.png' align='top' hspace='10' border='0'>";
    }
    else {
       echo"<img src='../img/retour.png' align='top' hspace='10' border='0'>";
    }
    //*
    echo "</a></center></td> </tr>";
}else{
  echo "<tr><td><br></td></tr><tr><td colspan=2><center><a href=\"tab.php?obj=".get_class($this)."&nat=".$this->nature.
   "&premier=".$premier."&recherche=".$recherche."&tri=".$tricol.
   "\">";
   // * custom *
    if(file_exists("../dyn/custom/img/retour.png")) {
       echo "<img src='../dyn/custom/img/retour.png' align='top'  border='0'>";
    }
    else {
       echo"<img src='../img/retour.png' align='top'  border='0'>";
    }
    //*
    echo "</a></center></td> </tr>";
}}*/

function setSelect(&$form, $maj,$db,$debug) {
  include ("../dyn/connexion.php");
  include ("../sql/".$dsn['phptype']."/".$this->table.".form.inc");
  if($maj<2){
    $contenu="";
    if (is_a($this,"modelelogiciel")) $sql=$sql_editeur;
    else $sql=$sql_marque;
    $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>";
      $contenu[0][0]=0;
      $contenu[1][0]=" GENERIQUE ";
      $k=1;
      while ($row=& $res->fetchRow()){
        $contenu[0][$k]=$row[0];
        $contenu[1][$k]=$row[1];
        $k++;
      }
      $res->free();
      $form->setSelect("idmarque",$contenu);
    }
  }
}

function setType(&$form,$maj) {
//$form->setType('libmodele','text');  par defaut
  if ($maj < 2) { //ajouter et modifier
    if($maj==0) {
      $form->setType('idmodele', 'hidden');
    }else{
      $form->setType('idmodele', 'hiddenstatic');
    }
    $form->setType('idmarque','select');
  }else{ // supprimer  jamais le cas
    $form->setType('idmodele', 'hiddenstatic');
  }
  $form->setType('nature', 'hiddenstatic');
  $form->setType('taille', 'hidden');
  $form->setType('vitesse','hidden');
  $form->setType('typecomp','hidden');
  $form->setType('frequence','hidden');
  $form->setType('couleur', 'hidden');
  $form->setType('reseau', 'hidden');
  $form->setType('nbpci','hidden');
  $form->setType('nbpcie','hidden');
  $form->setType('nbagp','hidden');
  $form->setType('nbbank', 'hidden');
  $form->setType('connecteur', 'hidden');
  $form->setType('format','hidden');
  $form->setType('integre','hidden');
  $form->setType('chemin','hidden');
  $form->setType('rank','hidden');
}

function setTaille(&$form,$maj){
//$form->setTaille('emplacement', 8);

}

function setLib(&$form,$maj) {
  $form->setLib('idmodele','Id');
  $form->setLib('libmodele','Description');
  $form->setLib('idmarque','Marque/Editeur');
  $form->setLib('typecomp','Type');
}

function setMax(&$form,$maj){
//$form->setMax('emplacement',8 );
}

function setVal(&$form,$maj,$validation,&$db){
if ($validation==0) {
  if ($maj == 0){
      $form->setVal('nature', $this->nature);
}
}}

//function setSelect(&$form, $maj,$db,$debug) {
//}

//function setGroupe(&$form,$maj){
//}

//function setLib(&$form,$maj) {
//}

//function setOnchange(&$form,$maj){
//}

//(recherche instances  avant suppression) non definie ds cl filles
function rechercheInstances($id,$db,$debug){
  $this->correct=True;
  $atable=array("station","stationrebut","element","elementrebut");
  foreach ($atable as $table) {
    $sql = "select * from ".$table." where idmodele = ".$id;
    $res = $db->query($sql);
    if($debug==1) echo $sql;
    if (DB :: isError($res))
      die($res->getMessage(). " => Echec  ".$sql);
    else{
      $nbligne=$res->numrows();
      $this->msg = $this->msg." il y a ".$nbligne.
      " enregistrement(s) en lien dans la table ".$table." pour le modele[".
      $id."]";
      if ($nbligne>0)
        $this->correct=false;
    }
  }  
}

}// fin de classe
?>