<?php
//$Id$ 
//gen openMairie le 10/02/2011 20:32 
require_once ("../gen/obj/destination_shon.class.php");

class destination_shon extends destination_shon_gen {

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

    function setType(&$form,$maj) {
        parent :: setType($form,$maj);
        if ($maj < 2) { //ajouter et modifier
          $form->setType('dossier', 'hiddenstatic');
          $form->setType('shon', 'hiddenstatic');
        }
    }

	function setLib(&$form,$maj) {
        parent::setLib($form,$maj);
		$form->setLib('shon_anterieure',_('shon existante avant travaux'));
		$form->setLib('shon_demolie',_('shon demolie ou transformee en shob'));
		$form->setLib('shon_anterieure_supprimee',_('shon supprimee par changement de destination'));
		$form->setLib('shon_nouvelle_transformee',_('shon creee par changement de destination'));
		$form->setLib('shon_nouvelle',_('shon construite'));
		$form->setLib('shon_shob_transformee',_('shon creee par transformation de shob en shon'));
	}

	function setOnchange(&$form,$maj) {
        parent::setOnchange($form,$maj); 
		$form->setOnchange('shon_anterieure','VerifNumdec(this)');
		$form->setOnchange('shon_demolie','VerifNumdec(this)');
		$form->setOnchange('shon_anterieure_supprimee','VerifNumdec(this)');
		$form->setOnchange('shon_nouvelle_transformee','VerifNumdec(this)');
		$form->setOnchange('shon_nouvelle','VerifNumdec(this)');
		$form->setOnchange('shon_shob_transformee','VerifNumdec(this)');
	}

    
    function triggerajouter($id,&$db,$val,$DEBUG){
        $this->calculshon($val);
    }
    
    
    function triggerajouterapres($id,&$db,$val,$DEBUG){
    /// calcul shon dossier  [calculate shon dossier]
       $sql ="select sum(shon) as shon from ".DB_PREFIXE.
             "destination_shon where dossier ='".$val['dossier']."'" ;
       $res=$db->query($sql);
       if (database :: isError($res))
          die($res->getMessage()."erreur  ".$sql);
       while ($row=& $res->fetchRow( DB_FETCHMODE_ASSOC)){
          $cle= " dossier = '".$val['dossier']."'";
          if(!is_numeric($row['shon']))
              $surface=0;
          else
              $surface = $row['shon'];
            $valF['shon_calcul']= $surface;
          $res1= $db->autoExecute(DB_PREFIXE.'dossier',$valF,DB_AUTOQUERY_UPDATE,$cle);
          if (database::isError($res1))
            die($res1->getMessage());
                  if ($DEBUG == 1)
                  echo "La requête de mise à jour est effectuée.<br>";
                  $this->msg=$this->msg."<br>"._('enregistrement').
                  " ".$val['dossier']." "._('table')." dossier "
                    ." [".$db->affectedRows()." "._('enregistrement')." ".
                    _('mis_a_jour')."]" ;
          }
    }
    
    function triggermodifier($id,&$db,$val,$DEBUG){
        $this->calculshon($val);
    }
    
    
    function triggermodifierapres($id,&$db,$val,$DEBUG)
    {
    // calcul shon dossier [calculate shon dossier]
        $sql ="select sum(shon) as shon from ".DB_PREFIXE.
        "destination_shon where dossier ='".$val['dossier']."'" ;
        $res=$db->query($sql);
         if (database::isError($res))
            die($res->getMessage());
        while ($row=& $res->fetchRow( DB_FETCHMODE_ASSOC)){
          $cle= " dossier = '".$val['dossier']."'";
          if(!is_numeric($row['shon']))
              $surface=0;
          else
              $surface = $row['shon'];
          $valF['shon_calcul']= $surface;
          $res1= $db->autoExecute(DB_PREFIXE.'dossier',$valF,DB_AUTOQUERY_UPDATE,$cle);
          if (database::isError($res1))
            die($res1->getMessage());
          if ($DEBUG == 1)
            echo "La requête de mise à jour est effectuée.<br>";
                  $this->msg=$this->msg."<br>"._('enregistrement').
                    " ".$val['dossier']." "._('table')." dossier ".
                    " [".$db->affectedRows()." "._('enregistrement')." ".
                    _('mis_a_jour')."]" ;
        }
    }
    
    function triggersupprimerapres($id,&$db,$val,$DEBUG)
    {
    // calcul shon dossier [calculate shon dossier]
        $sql ="select sum(shon) as shon from ".DB_PREFIXE."destination_shon where dossier ='"
        .$val['dossier']."'" ;
        $res=$db->query($sql);
        if (database::isError($res))
            die($res->getMessage());
        while ($row=& $res->fetchRow( DB_FETCHMODE_ASSOC)){
            $cle= " dossier = '".$val['dossier']."'";
            if(!is_numeric($row['shon']))
              $surface=0;
            else
              $surface = $row['shon'];
            $valF['shon_calcul']= $surface;
            $res1= $db->autoExecute(DB_PREFIXE.'dossier',$valF,DB_AUTOQUERY_UPDATE,$cle);
            if (database::isError($res1))
            die($res1->getMessage());
            if ($DEBUG == 1)
                echo "La requête de mise à jour est effectuée.<br>";
            $this->msg=$this->msg."<br>"._('enregistrement').
                    " ".$val['dossier']." "._('table')." dossier ".
                    " [".$db->affectedRows()." "._('enregistrement')." ".
                    _('mis_a_jour')."]" ;
        }
    }

    function setValsousformulaire(&$form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire){
        if ($validation==0) {
            if ($maj == 0){
                $form->setVal("dossier", $idxformulaire);
            }
        }
    }
    
    function calculshon($val){
        $this->valF['shon']= $val['shon_nouvelle']+$val['shon_shob_transformee']+$val['shon_nouvelle_transformee']
                - $val['shon_demolie']- $val['shon_anterieure_supprimee'];
        //$val['shon']."***";
    }
    


   
}// fin classe
?>