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

class terrain extends terrain_gen {

    function terrain($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('parcelle','comboD2');
            $form->setType('nom','comboG2');
            $form->setType('dossier','hiddenstatic');
        }
        if($maj==3) {
            $form->setType('dossier','hiddenstatic');
        }
    }

    function setSelect(&$form, $maj,$db,$debug) {
        // parent:: setSelect($form, $maj,$db,$debug);
        // pb d optimisation et de chargement de 41.000 parcelles -> eliminer les select
        // parcelle
        $contenu="";
        $contenu[0][0]="parcelle";// table
        $contenu[0][1]="parcelle"; // zone origine
        $contenu[1][0]="proprietaire";
        $contenu[1][1]="nom";
        $form->setSelect("parcelle",$contenu);
        $contenu="";
        $contenu[0][0]="parcelle";// table
        $contenu[0][1]="proprietaire"; // zone origine
        $contenu[1][0]="parcelle";
        $contenu[1][1]="parcelle";
        $form->setSelect("nom",$contenu);
    }

    function setGroupe(&$form,$maj){
        $form->setGroupe('parcelle','D');
        $form->setGroupe('nom','F');
    }
    
    function setValsousformulaire(&$form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire){
        if ($validation==0) {
            if ($maj == 0){
                $form->setVal("dossier", $idxformulaire);
            }
        }
    }

    function triggerajouterapres($id,&$db,$val,$DEBUG){
        // calcul terrain surface dossier
       $sql ="select sum(surface) as surface from ".DB_PREFIXE."terrain inner join ".DB_PREFIXE."parcelle on terrain.parcelle =parcelle.parcelle  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['surface']))
                $surface=0;
            else
                $surface = $row['surface'];
            $valF['terrain_surface_calcul']= $surface;
            $res1= $db->autoExecute(DB_PREFIXE.'dossier',$valF,DB_AUTOQUERY_UPDATE,$cle);
            if (database::isError($res1))
                die($res1->getMessage());
            if ($DEBUG == 1)
                echo _("requete_de_maj_effectuee")."<br>";
            $this->msg=$this->msg."<br>"._('enregistrement')." ".$val['dossier']." \"dossier\""
                    ." [ ".$db->affectedRows()." "._('enregistrement')." "._('mis a jour')." ]" ;
        }
    }

    function triggermodifierapres($id,&$db,$val,$DEBUG){
        // calcul terrain surface dossier
        $sql ="select sum(surface) as surface from ".DB_PREFIXE."terrain inner join ".DB_PREFIXE."parcelle on terrain.parcelle =parcelle.parcelle  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['surface']))
                $surface=0;
            else
                $surface = $row['surface'];
            $valF['terrain_surface_calcul']= $surface;
            $res1= $db->autoExecute(DB_PREFIXE.'dossier',$valF,DB_AUTOQUERY_UPDATE,$cle);
            if (database::isError($res1))
                die($res1->getMessage());
                if ($DEBUG == 1)
                    echo _("requete_de_maj_effectuee")."<br>";
            $this->msg=$this->msg."<br>"._('enregistrement')." ".$val['dossier']." \"dossier\""
                    ." [ ".$db->affectedRows()." "._('enregistrement')." "._('mis a jour')." ]" ;
            }    
    }


    function triggersupprimerapres($id,&$db,$val,$DEBUG){
        // calcul terrain surface dossier
        $sql ="select sum(surface) as surface from ".DB_PREFIXE."terrain inner join ".DB_PREFIXE."parcelle on terrain.parcelle =parcelle.parcelle  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['surface']))
                $surface=0;
            else
                $surface = $row['surface'];
            $valF['terrain_surface_calcul']= $surface;
            $res1= $db->autoExecute(DB_PREFIXE.'dossier',$valF,DB_AUTOQUERY_UPDATE,$cle);
            if (database::isError($res1))
                die($res1->getMessage());
            if ($DEBUG == 1)
                echo _("requete_de_maj_effectuee")."<br>";
            $this->msg=$this->msg."<br>"._('enregistrement')." ".$val['dossier']." \"dossier\""
                    ." [ ".$db->affectedRows()." "._('enregistrement')." "._('mis a jour')." ]" ;
        }
    }
    
}// fin classe
?>