<?php
/**
 *
 *
 * @package openmairie_exemple
 * @version SVN : $Id: om_collectivite.class.php 2470 2013-09-09 12:21:44Z fmichon $
 */

require_once "../gen/obj/om_collectivite.class.php";

class om_collectivite extends om_collectivite_gen {

    var $maj;

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

    function setType(&$form,$maj) {
        parent::setType($form,$maj);

        if ($maj < 2) {
             $form->setType('niveau', 'select');
        }

        if ($maj == 2 or $maj == 3) {
            $form->setType('niveau', 'selectstatic');
        }
    }

    /**
     * Methode verifier
     */
    function verifier($val = array(), &$db = NULL, $DEBUG = false) {
        // On appelle la methode de la classe parent
        parent::verifier($val, $db, $DEBUG);
        // On verifie si il y a une autre collectivite multi
        if ($this->valF['niveau'] == 2) {
            if ($this->maj == 0) {
                $this->verifierniveau($db, $DEBUG, ']');
            } else {
                $this->verifierniveau($db, $DEBUG, $val['om_collectivite']);
            }
        }
    }

    function setSelect(&$form, $maj, $db, $debug) {
        $contenu = array();
        $contenu[0] = array(1, 2);
        $contenu[1] = array(_('mono'), _('multi'));
        $form->setSelect('niveau', $contenu);
    }

    /**
     * verification sur existence d une collectivite de niveau 2
     */
    function verifierniveau(&$db, $DEBUG,$id){
        $sql = "select * from ".DB_PREFIXE."om_collectivite where niveau = '2'";
        if($id!=']')
            $sql.=" and om_collectivite !='".$id."'";
        $res = $db->query($sql);
        if($DEBUG==1) echo $sql;
        if (database::isError($res))
           die($res->getMessage(). " => Echec  ".$sql);
        else{
           $nbligne=$res->numrows();
           if ($nbligne>0){
               $this->msg= $this->msg." ".$nbligne." "._("collectivite")." "._("existant").
               " "._("niveau")." 2 ! "._("vous ne pouvez avoir qu une collectivite")." ".
               _("de")."  "._("niveau")." multi ";
               $this->correct=False;
            }
        }
    }

    function setVal(&$form, $maj, $validation, &$db, $DEBUG=null) {
        parent::setVal($form, $maj, $validation, $db, $DEBUG=null);
        $this->maj=$maj;
    }

}

?>
