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

class consultation extends consultation_gen {

    function consultation($id,&$db,$debug) {
        $this->constructeur($id,$db,$debug);
    }// fin constructeur
    
    function setValFAjout($val){
        $this->valF['service'] = $val['service'];
    }
    function setvalF($val){
        parent::setvalF($val);      
        // cles secondaires numerique (contrainte integrite  pgsql)
        if($val['avis']=='') $this->valF['avis']= null;
    }
    function setValsousformulaire(&$form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire){
        if ($validation==0) {
            if ($maj == 0){
              $form->setVal("dossier", $idxformulaire);
            }
        }
    }

    function setType(&$form,$maj) {
        parent::setType($form,$maj);
        if ($maj < 2) { //ajouter et modifier [add and modify]
            if($maj==0){ // add
                $form->setType('date_envoi', 'date2');
                $form->setType('service', 'select');
                $form->setType('date_limite', 'hidden');
                $form->setType('date_retour', 'hidden');
                $form->setType('avis', 'hidden');
            }else{   // modify
                $form->setType('date_envoi', 'hiddenstaticdate');
                $form->setType('service', 'selectdisabled');
                $form->setType('date_limite', 'date2');
                $form->setType('date_retour', 'date2');
                $form->setType('avis', 'select');
            }
            $form->setType('consultation', 'hiddenstatic');
            $form->setType('dossier', 'hiddenstatic');
        }
    }

    // TRIGGER AVANT MODIFICATION DE DONNEES
    // trigger before modification data
    function triggerajouter($id,&$db,$val,$DEBUG) {
        // mise a jour instruction avec evenement [return delay]
        if (!$this->valF['date_envoi']==""){
            $sql= "select delai from ".DB_PREFIXE."service where service ='".$this->valF['service']."'";
            $delai = $db->getOne($sql);
            $this->valF['date_limite'] =  $this->moisdate($this->valF['date_envoi'],$delai);
            $this->msg=$this->msg."<br>"._("delai")." ".
               _("retour")." ".$delai." "._("mois")." -> ".
               _("retour")." ".$this->valF['date_limite']."<br>";
        }
    }

    // =============================================
    // calcul de date avec ajout de mois (delais)
    // [add months (delay) and calculation final date]
    // limite ? => voir fonction instruction
    // =============================================
    function moisdate($date,$delaimois) {
        // rajout de mois à une date (moins de 12)
        $temp = explode("-" , $date);
        $jour = (int) $temp[2];
        $mois = (int) $temp[1];
        $annee = (int) $temp[0];
        $mois=$mois+$delaimois;
        // calcul mois annee
        if($mois>12){
            $mois=$mois-12;
            $annee=$annee+1;
        }
         // Calcul du nombre de jours dans le mois sélectionné
         switch($mois) {
            case "2":
                if ($annee % 4 == 0 && $annee % 100 != 0 || $annee % 400 == 0)
                    $jourmax = 29;
                else
                    $jourmax = 28;
            break;
            case "4":
            case "6":
            case "9":
            case "11":
                $jourmax = 30;
                break;
            default:
                $jourmax = 31;
        }
        if ($jour > $jourmax)
            $jour = $jourmax;
        return $annee."-".$mois."-".$jour ;
    }

}// fin classe
?>