<?php
require_once ("formulaireparc.class.php");
require_once ("dbform.class.php");

class dbFormparc extends dbForm {
  
var $nature;  //selection dans classe ex:interco,mairie,... ou cartemere,processeur,...
  
function constructeur($id,&$db,$DEBUG) {
  parent::constructeur($id,$db,$DEBUG);
} // fin constructeur

function bouton($maj,$val=null){
  parent::bouton($maj);
}

function boutonsousformulaire($datasubmit,$maj,$val=null){
  if(file_exists("../dyn/custom/var.inc")) {
    include("../dyn/custom/var.inc");
  } else {
    include("../dyn/var.inc");
  }
  if (!$this->correct){
    switch ($maj) {
      case 0:
        $bouton = "Ajouter";
        break;
      case 1:
        $bouton = "Modifier";
        break;
      case 2:
        $bouton = "Supprimer";
        break;
      case 3:
        $bouton = "Tout Supprimer";
    }
    echo "<tr><td><br></td></tr><tr><td colspan=2><center><input type='button' value='".
    $bouton." ".ucwords($this->table)."' style=".$styleBouton.
    " onclick=\"affichersform('$datasubmit')\">";
  }
}

function message($val=null){
  parent::message();
}

function setSubmit($maj,$aff,$validation,$idx,$premier,$recherche,$tricol) {
if ($idx=="]" )
    echo "<form method=\"POST\" action=\"form.php?obj=".get_class($this)."&nat=".$this->nature."&validation=".$validation."&tri=".$tricol."\"  name=f1>";
    // pas de passage de idx => ajout
else
    if($maj==1)       // modifier
    echo "<form method=\"POST\" action=\"form.php?obj=".get_class($this)."&nat=".$this->nature."&validation=".$validation.
    "&idx=".$idx."&premier=".$premier."&recherche=".$recherche."&tri=".$tricol."\" name=f1>"; // passage de idx
    else              // supprimer
    echo "<form method=\"POST\" action=\"form.php?obj=".get_class($this)."&nat=".$this->nature."&validation=".$validation.
    "&ids=1"."&idx=".$idx."&premier=".$premier."&recherche=".$recherche."&tri=".$tricol."\" name=f1>"; // passage de idx
}
 
function formulaire($enteteTab, $validation, $maj,&$db, $postVar,$aff, $DEBUG,$idx,$premier,$recherche,$tricol){  
//surcharge pour setval(...$db..$idx), formulaireparc(onkeyup et onclick) et 
//passages nature par nat 
//ajout setSubmit pour différencier station et peripherique 
//                  où ...&nat=".$this->nature
//passage tricolonne tableau par $tricol
//passage $db,$idx à setType, setGroupe, setRegroupe
$DEBUG=0;
$this->setSubmit($maj,$aff,$validation,$idx,$premier,$recherche,$tricol);
$validation--; // compatibilite anterieure
$form = new formulaireparc($enteteTab, $validation, $maj, $this->champs,$this->val,$this->longueurMax); //parc fred
//--------------------------------------------------------------------------
// valorisation des variables formulaires
//--------------------------------------------------------------------------
$this->setVal($form,$maj,$validation,$db,$idx);     //ajout $db et $idx
$this->setType($form,$maj,$db,$idx) ;  //ajout $db et $idx 
$this->setLib($form,$maj) ;
$this->setTaille($form,$maj) ;
$this->setMax($form,$maj) ;
$this->setSelect($form,$maj,$db,$DEBUG) ;
$this->setOnchange($form,$maj) ;
$this->setOnkeyup($form,$maj) ;
$this->setOnclick($form,$maj) ;
$this->setGroupe($form,$maj,$db,$idx) ;  //ajout $db et $idx
$this->setRegroupe($form,$maj,$db,$idx) ;  //ajout $db et $idx
//--------------------------------------------------------------------------
// affichage du formulaire
// -------------------------------------------------------------------------
$form->entete();
$form->recupererPostvar($this->champs,$validation,$postVar,$DEBUG);
// validation ==============================================================
if ($validation>0) {
       if ($maj==2){
          $db->autoCommit(false);
          $this->supprimer($form->val,$db,$DEBUG);
          $db->commit() ;
          }else{
          if($maj==1) {
              $this->modifier($form->val,$db,$DEBUG);
              $db->commit() ;
              }else{
              $db->autoCommit(false);
              $this->ajouter($form->val,$db,$DEBUG) ;
              $db->commit() ;
}}}
$form->afficher($this->champs,$validation,$DEBUG,$this->correct);
// Affichage du bouton, message et retour
$this->message($form->val);
$this->bouton($maj,$form->val);
$this->retour($premier,$recherche,$tricol);
$form->enpied();
//fin du formulaire
echo "</form>";
} // fin formulaire

function retour($premier,$recherche,$tricol){
// =============================================================================
// $premier = page de retour
// $recherche = critere de recherche retour
// =============================================================================
//surcharge pour passage de get_class($this) plutot que $this->table
//et pour $tricol
if (!$this->correct){
     echo "<a href=\"tab.php?obj=".get_class($this).
     "&nat=".$this->nature."&tri=".$tricol.
     "&premier=".$premier."&recherche=".$recherche.
     "\">";
     // * 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."&tri=".$tricol.
     "&premier=".$premier."&recherche=".$recherche.
     "\">";
     // * 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 retoursousformulaire($idxformulaire,$retourformulaire,$val,$objsf,$premiersf,$tricolsf){ 
//surcharge pour passage $objsf et $premiersf
//et pour $tricolsf
if (!$this->correct){
     echo "<a onclick=\"activer('$objsf','$premiersf')\" href='#ancresoustab'>";
     // * 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 onclick=\"activer('$objsf','$premiersf')\" href='#ancresoustab'>";
     // * 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 setVal(&$form,$maj,$validation,&$db,$idx=0){  //ajout $db et $idx  
}
function setType(&$form,$maj,&$db,$idx=0) {  //ajout $db et $idx  
}
function setGroupe(&$form,$maj,&$db,$idx=0){  //ajout $db et $idx  
}
function setRegroupe(&$form,$maj,&$db,$idx=0){ //ajout $db et $idx  
}

function setValsousformulaire(&$form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire,&$db){
}

function setOnkeyup(&$form,$maj) {
}

function setOnclick(&$form,$maj){
}

function sousformulaire($enteteTab,$validation,$maj,&$db,$postVar,$DEBUG,$idx,$idxformulaire,$retourformulaire,$typeformulaire,$objsf,$premiersf,$tricolsf){
//surcharche pour passage $premiersf utilisé dans liens sousform
//et retoursousformulaire
//$obj renommé $objsf
//$aff (inutilisé) supprimé
//passage $db à setValsousformulaire
//formulaireparc(onkeyup et onclick)
//passage tricolonne soustableau par $tricolsf
//passage $db,$idx à setType, setGroupe, setRegroupe
$DEBUG=0;
$datasubmit=""; //sousformulaire généré par ajax

if ($idx=="]")
  // pas de passage de idx => ajout ou vidage
  if($maj==0) // ajouter
    $datasubmit="objsf=$objsf&premiersf=$premiersf&retourformulaire=$retourformulaire&idxformulaire=$idxformulaire&trisf=$tricolsf".
    "&validation=$validation";
  else  // tout supprimer
    $datasubmit="objsf=$objsf&premiersf=$premiersf&retourformulaire=$retourformulaire&idxformulaire=$idxformulaire&trisf=$tricolsf".
    "&validation=$validation&ids=2";
else
  if($maj==1)   // modifier
    $datasubmit="objsf=$objsf&premiersf=$premiersf&retourformulaire=$retourformulaire&idxformulaire=$idxformulaire&trisf=$tricolsf".
    "&validation=$validation&idx=$idx"; // passage de idx
  else  // supprimer
    $datasubmit="objsf=$objsf&premiersf=$premiersf&retourformulaire=$retourformulaire&idxformulaire=$idxformulaire&trisf=$tricolsf".
    "&validation=$validation&ids=1&idx=$idx"; // passage de idx

echo "<form method=\"POST\" action=\"\" onsubmit=\"affichersform('$datasubmit'); return false\" name=f2>";
$validation--; // compatibilite anterieure
$form = new formulaireparc($enteteTab, $validation, $maj, $this->champs,$this->val,$this->longueurMax);
//--------------------------------------------------------------------------
// valorisation des variables formulaires
//--------------------------------------------------------------------------
$this->setValsousformulaire($form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire,$db);
$this->setType($form,$maj,$db,$idx) ;  //ajout $db et $idx
$this->setLib($form,$maj) ;
$this->setTaille($form,$maj) ;
$this->setMax($form,$maj) ;
$this->setSelect($form,$maj,$db,$DEBUG) ;
$this->setOnchange($form,$maj) ;
$this->setOnkeyup($form,$maj) ;
$this->setOnclick($form,$maj) ;
$this->setGroupe($form,$maj,$db,$idx) ;  //ajout $db et $idx  
$this->setRegroupe($form,$maj,$db,$idx) ; //ajout $db et $idx  
//--------------------------------------------------------------------------
// affichage du formulaire
// -------------------------------------------------------------------------
$form->entete();
$form->recupererPostvarsousform($this->champs,$validation,$postVar,$DEBUG);
// validation ==============================================================
if ($validation>0) {
       if ($maj==3){
          $db->autoCommit(false);
          $this->toutsupprimer($form->val,$idxformulaire,$db,$DEBUG);
          $db->commit() ;
          }else{
          if ($maj==2){
             $db->autoCommit(false);
             $this->supprimer($form->val,$db,$DEBUG);
             $db->commit() ;
             }else{
             if($maj==1) {
                 $this->modifier($form->val,$db,$DEBUG);
                 $db->commit() ;
                 }else{
                 $db->autoCommit(false);
                 $this->ajouter($form->val,$db,$DEBUG) ;
                 $db->commit() ;
}}}}
$form->afficher($this->champs,$validation,$DEBUG,$this->correct);
// Affichage du bouton, message et retour
$this->message($form->val);
//$this->boutonsousformulaire($maj,$idxformulaire,$retourformulaire);
$this->boutonsousformulaire($datasubmit,$maj,$form->val);
$this->retoursousformulaire($idxformulaire,$retourformulaire,$form->val,$objsf,$premiersf,$tricolsf);
$form->enpied();
//fin du formulaire
echo "</form>";
} // fin sousformulaire

function selectArray(&$db,$sql,$val0=null,$elem0=null) {
  include ("../dyn/connexion.php");
  include ("../sql/".$dsn['phptype']."/".$this->table.".form.inc");
  $contenu="";
  $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>";
    if (!is_null($val0)) {
      $contenu[0][0]=$val0;
      $contenu[1][0]=$elem0;
      $k=1;
    } else $k=0;
    while ($row=& $res->fetchRow()){
      $contenu[0][$k]=$row[0];
      $contenu[1][$k]=$row[1];
      $k++;
    }
    $res->free();
    return $contenu;
  }
}

}// fin de classe
?>