<?php
//$Id$ 
//gen openMairie le 08/11/2012 14:59

require_once ("../gen/obj/demandeur.class.php");

class demandeur extends demandeur_gen {

    var $required_tag = array("particulier_nom",
                          "personne_morale_denomination",
                          "personne_morale_raison_sociale");
    function demandeur($id,&$db,$debug) {
        $this->constructeur($id,$db,$debug);
    }// fin constructeur
    
    /*
    * Pays par défaut : France
    */
    function setVal(&$form, $maj, $validation, &$db) {
        parent::setVal($form, $maj, $validation, $db);
        if($maj == 0) {
             $form->setVal("pays",'France');
        }
    }

    /*
    * Pays par défaut : France
    */
    function setValsousformulaire(&$form, $maj, $validation, $idxformulaire, $retourformulaire, $typeformulaire, &$dnu1 = null, $dnu2 = null) {
       parent::setValsousformulaire($form, $maj, $validation, $idxformulaire, $retourformulaire, $typeformulaire, $dnu1, $dnu2);
        if($maj == 0) {
             $form->setVal("pays",'France');
        }
    }

    /**
     * Surcharge de la méthode de vérification
     **/
    function verifier($val, &$db, $DEBUG) {
        parent::verifier($val, $db, $DEBUG);
        // le nom du particulier est obligatoire
        if($this->valF['qualite'] == "particulier" AND $this->valF['particulier_nom'] == "") {
            $this->correct = false;
            $this->addToMessage(_("Le champ")." <span class=\"bold\">".
                                _("particulier_nom")."</span> "._("est obligatoire."));
        }

        // la dénomination ou la raison sociale est obligatoire pour une personne morale
        if($this->valF['qualite'] == "personne_morale" 
           AND $this->valF['personne_morale_denomination'] == "" 
                AND $this->valF['personne_morale_raison_sociale'] == "") {
            $this->correct = false;
            $this->addToMessage(_("Un des champs")." <span class=\"bold\">".
                                _("personne_morale_denomination")."</span> ou <span class=\"bold\">".
                                _("personne_morale_raison_sociale")."</span> "._("doit etre rempli."));
        }

    }

    /*
     * Select pour les champs qualite et type_demandeur
     */
    function setType(&$form,$maj) {
        parent::setType($form,$maj);
        if ($maj < 2) { //ajouter et modifier
            
            $form->setType('type_demandeur', 'select');
            $form->setType('qualite', 'select');
            if($maj == 0 AND $this->getParameter("idx_demandeur") != "") {
                $form->setType('frequent','hidden');
                $form->setType('qualite','selectdisabled');
                $form->setType('particulier_nom','textdisabled');
                $form->setType('particulier_prenom','textdisabled');
                $form->setType('particulier_date_naissance','datedisabled');
                $form->setType('particulier_commune_naissance','textdisabled');
                $form->setType('particulier_departement_naissance','textdisabled');
                $form->setType('personne_morale_denomination','textdisabled');
                $form->setType('personne_morale_raison_sociale','textdisabled');
                $form->setType('personne_morale_siret','textdisabled');
                $form->setType('personne_morale_categorie_juridique','textdisabled');
                $form->setType('personne_morale_nom','textdisabled');
                $form->setType('personne_morale_prenom','textdisabled');
                $form->setType('particulier_civilite','selectdisabled');
                $form->setType('personne_morale_civilite','selectdisabled');
                $form->setType('telephone_fixe','textdisabled');
                $form->setType('telephone_mobile','textdisabled');
                $form->setType('fax','textdisabled');
                $form->setType('indicatif','textdisabled');
                $form->setType('courriel','textdisabled');

            }
        }
        $form->setType('demandeur', 'hidden');

    }
    
    /*
     * Select pour le type_demandeur et qualite
     */
    function setSelect(&$form, $maj,&$db,$debug) {
        parent::setSelect($form, $maj,$db,$debug);
        
            
        /* type_demandeur*/
        $contenu=array();

        $contenu[0][0]="";
        $contenu[1][0]=_('choisir')." "._('type_demandeur');
        $contenu[0][2]="petitionnaire";
        $contenu[1][2]=_('petitionnaire');
        $contenu[0][1]="delegataire";
        $contenu[1][1]=_('autre correspondant');
        
        $form->setSelect("type_demandeur",$contenu);
        
        /* qualite*/
        $contenu=array();

        $contenu[0][0]="particulier";
        $contenu[1][0]=_('particulier');
        $contenu[0][1]="personne_morale";
        $contenu[1][1]=_('personne morale');
        
        $form->setSelect("qualite",$contenu);
    }
    
    /*
     * Ajoute l'action javascript sur le select de la qualité
     */
    function setOnchange(&$form,$maj){
        parent::setOnchange($form,$maj);
        
        $form->setOnchange("qualite","changeDemandeurType('qualite');");
    }

    /**
     * Ajout d'un champs caché permettant de linker l'id du demandeur
     * recement ajouté
     **/
    function sousFormSpecificContent($maj) {
        $id_demandeur = $this->getVal("demandeur");
        if(isset($this->valF["demandeur"]) AND !empty($this->valF["demandeur"])) {
            echo "<input id=\"id_retour\" name=\"idRetour\" type=\"hidden\" value=\"".
                    $this->valF["demandeur"]."\" />";
        } elseif(isset($id_demandeur) AND !empty($id_demandeur) AND $maj == 110) {
            echo "<input id=\"id_retour\" name=\"idRetour\" type=\"hidden\" value=\"".
                    $this->getVal("demandeur")."\" />";
        }
    }
    /**
     * Surcharge du lien de retour permettant de linker l'id du demandeur
     * recement ajouté
     **/
    function retoursousformulaire($idxformulaire, $retourformulaire, $val,
                                  $objsf, $premiersf, $tricolsf, $validation,
                                  $idx, $maj, $retour) {
        if($retourformulaire === "demande") {
            echo "\n<a class=\"retour\" ";
            echo "href=\"#\">";
            //
            echo _("Retour");
            //
            echo "</a>\n";
        } else {
            parent::retoursousformulaire($idxformulaire, $retourformulaire, $val,
                                  $objsf, $premiersf, $tricolsf, $validation,
                                  $idx, $maj, $retour);
        }
    }

    /**
     * Ajout du paramètre principal
     */
    function getDataSubmitSousForm() {
        /*Création du lien de validation du sous-formulaire*/
        $datasubmit = "";
        $datasubmit .= "../scr/sousform.php";
        $datasubmit .= "?";
        $datasubmit .= "obj=".get_class($this);
        $datasubmit .= "&amp;validation=".$this->getParameter("validation");
        if ($this->getParameter("idx") != "]") {
            //
            if ($this->getParameter("maj") == 1) { // modifier
                $datasubmit .= "&amp;action=1";
                $datasubmit .= "&amp;idx=".$this->getParameter("idx");
            } else { // supprimer
                $datasubmit .= "&amp;action=2";
                $datasubmit .= "&amp;idx=".$this->getParameter("idx");
            }
        }
        $datasubmit .= "&amp;premiersf=".$this->getParameter("premiersf");
        $datasubmit .= "&amp;retourformulaire=".$this->getParameter("retourformulaire");
        $datasubmit .= "&amp;trisf=".$this->getParameter("tricolsf");
        $datasubmit .= "&amp;idxformulaire=".$this->getParameter("idxformulaire");
        $datasubmit .= "&amp;principal=".$this->getParameter("principal");
        //
        return $datasubmit;
    }

    /**
     * Synthèse des demandeurs pour le formulaire de la demande
     */
    function afficherSynthese($type, $linkable) {
        switch ($type) {
            case 'petitionnaire_principal':
                $legend = _("Petitionnaire principal :");
                break;

            case 'delegataire':
                $legend = _("Autre correspondant :");
                break;
            
            case 'petitionnaire':
                $legend = _("Petitionnaire :");
                break;
        }
        
        // Conteneur du demandeur
        echo "<div class=\"".$type." col_3\" id=\"".$type."_".$this->val[array_search('demandeur', $this->champs)]."\">\n";
        echo "<div class=\"legend_synthese_demandeur\">\n";
        echo $legend;
        echo "</div>\n";
        echo "<div class=\"synthese_demandeur\">\n";
        if($linkable) {
            echo "<a href=\"#\" onclick=\"removeDemandeur('".
                $type."_".$this->val[array_search('demandeur', $this->champs)].
                "'); return false;\">
                <span class=\"demandeur_del om-icon om-icon-16 om-icon-fix delete-16\" title=\"".
                _("Supprimer le demandeur")."\">"._("Supprimer le demandeur")."</span>
                </a>";
        }
        
        // Valeur de formulaire à retourner
        echo "<input type=\"hidden\" class=\"demandeur_id\" name=\"".$type.
                                        (($type == "petitionnaire")? "[]":"" ).
            "\" value=\"".$this->val[array_search('demandeur', $this->champs)]."\" />\n";
            
        // Lien de modification du demandeur
        if($linkable) {
            echo "<a class=\"edit_demandeur\" href=\"#\"
                onclick=\"editDemandeur('".$this->val[array_search('type_demandeur', $this->champs)]."',".
                                        $this->val[array_search('demandeur', $this->champs)].",'".
                                        $type."',".
                                        $type."_".$this->val[array_search('demandeur', $this->champs)].
                                        ");return false;\">\n";
        }
        
        // Affichage des infos du demandeur
        if($this->val[array_search('qualite', $this->champs)] == 'particulier') {
            if(!empty($this->val[array_search('particulier_civilite', $this->champs)])) {
                $sql = "SELECT libelle FROM ".DB_PREFIXE."civilite WHERE civilite=".
                            $this->val[array_search('particulier_civilite', $this->champs)];
                $civilite = $this->db->getone($sql);
                $this->f->addToLog("afficherSynthese() : db->getone(\"".$sql."\");", VERBOSE_MODE);
                if ( database::isError($civilite)){
                    die();
                }
                echo $civilite." ";
            }
            echo $this->val[array_search('particulier_nom', $this->champs)]." ".
                $this->val[array_search('particulier_prenom', $this->champs)]."<br/>\n";
        } else {
            echo $this->val[array_search('personne_morale_raison_sociale', $this->champs)]." ".
                $this->val[array_search('personne_morale_denomination', $this->champs)]."<br/>\n";
                if(!empty($this->val[array_search('personne_morale_civilite', $this->champs)])) {
                    $sql = "SELECT libelle FROM ".DB_PREFIXE."civilite WHERE civilite=".
                                $this->val[array_search('personne_morale_civilite', $this->champs)];
                    $civilite = $this->f->db->getone($sql);
                    $this->f->addToLog("afficherSynthese() : db->getone(\"".$sql."\");", VERBOSE_MODE);
                    if ( database::isError($civilite)){
                        die();
                    }
                    echo $civilite." ";
                }
                echo $this->val[array_search('personne_morale_nom', $this->champs)]." ".
                $this->val[array_search('personne_morale_prenom', $this->champs)]."<br/>\n";
        }
        echo (($this->val[array_search('numero', $this->champs)] != "")? 
            $this->val[array_search('numero', $this->champs)]." " : "").
        (($this->val[array_search('voie', $this->champs)] != "")? 
            $this->val[array_search('voie', $this->champs)]." " : "").
        (($this->val[array_search('complement', $this->champs)] != "")? 
            $this->val[array_search('complement', $this->champs)]." " : "")."<br/>\n".
        (($this->val[array_search('code_postal', $this->champs)] != "")? 
            $this->val[array_search('code_postal', $this->champs)]." " : "").
        (($this->val[array_search('localite', $this->champs)] != "")? 
            $this->val[array_search('localite', $this->champs)]." " : "").
        (($this->val[array_search('bp', $this->champs)] != "")? 
            $this->val[array_search('bp', $this->champs)]." " : "").
        (($this->val[array_search('cedex', $this->champs)] != "")? 
            $this->val[array_search('cedex', $this->champs)]." " : "")."<br/>\n".
        (($this->val[array_search('telephone_fixe', $this->champs)] != "")? 
            $this->val[array_search('telephone_fixe', $this->champs)]." " : "").
        (($this->val[array_search('telephone_mobile', $this->champs)] != "")? 
            $this->val[array_search('telephone_mobile', $this->champs)]." " : "");
        if($linkable) {
            echo "</a>\n";
        }
        echo "</div>\n";
        echo "</div>\n";
    }

}// fin classe
?>