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

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

class om_logo extends om_logo_gen {

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

    function setType(&$form, $maj) {
        //
        parent::setType($form, $maj);
        // ajouter et modifier
        if ($maj == 0 || $maj == 1) {
            //
            if ($this->retourformulaire == 'om_collectivite') {
                $form->setType('fichier', 'upload2');
            } else {
                $form->setType('fichier', 'upload');
            }
        }
        if ($maj == 2) {
            $form->setType('fichier', 'filestatic');
        }
        if ($maj == 3) {
            $form->setType('fichier', 'file');
        }
    }

    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 un autre id 'actif' pour la collectivite
        if ($this->valF['actif'] == "Oui") {
            //
            if ($this->getParameter("maj") == 0) {
                //
                $this->verifieractif($db, $val, $DEBUG, "]");
            } else {
                //
                $this->verifieractif($db, $val, $DEBUG, $val[$this->clePrimaire]);
            }
        }
    }

    /**
     * verification sur existence d un etat deja actif pour la collectivite
     */
    function verifieractif(&$db, $val, $DEBUG, $id) {
        //
        $table = "om_logo";
        $primary_key = "om_logo";
        //
        $sql = " SELECT ".$table.".".$primary_key." ";
        $sql .= " FROM ".DB_PREFIXE."".$table." ";
        $sql .= " WHERE ".$table.".id='".$val['id']."' ";
        $sql .= " AND ".$table.".om_collectivite='".$val['om_collectivite']."' ";
        $sql .= " AND ".$table.".actif IS TRUE ";
        if ($id != "]") {
            $sql .=" AND ".$table.".".$primary_key."<>'".$id."' ";
        }
        //
        $res = $this->db->query($sql);
        $this->addToLog("db->query(\"".$sql."\");", VERBOSE_MODE);
        //
        if (database::isError($res)) {
            //
            die($res->getMessage()." => Echec  ".$sql);
        } else {
            //
            $nbligne = $res->numrows();
            if ($nbligne > 0) {
                $this->correct = false;
                $msg = $nbligne." ";
                $msg .= _("logo(s) existant(s) dans l'etat actif. Il ".
                          "n'est pas possible d'avoir plus d'un logo");
                $msg .= " \"".$val["id"]."\" "._("actif par collectivite.");
                $this->addToMessage($msg);
            }
        }
    }

}

?>
