<?php
//$Id$
//gen openMairie le 17/02/2020 15:31

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

class contrat_archive extends contrat_archive_gen {

    /**
     * Définition des actions disponibles sur la classe.
     *
     * @return void
     */
    function init_class_actions() {
        parent::init_class_actions();
        // ACTION - 001 - modifier
        // -> modification impossible
        unset($this->class_actions[1]);
        // ACTION - 002 - supprimer
        // -> suppression impossible
        unset($this->class_actions[2]);
        // ACTION - 003 - consulter
        // Ajout de la vérification de collectivité
        $this->class_actions[3]['condition'][] = "is_user_from_allowed_collectivite";
    }

    /**
     * Retourne la collectivité du contrat archivé.
     * 
     * Surcharge de la méthode parent pour récupérer la collectivité
     * via une jointure SQL avec l'emplacement archivé.
     *
     * @return int|null L'identifiant de la collectivité ou null
     */
    function get_collectivite() {
        // Si le contrat archivé n'existe pas, on retourne null
        if ($this->exists() !== true) {
            return null;
        }
        
        // Récupération de la collectivité via jointure avec emplacement_archive
        $sql = sprintf(
            "SELECT emplacement_archive.om_collectivite
            FROM %scontrat_archive
            INNER JOIN %semplacement_archive ON contrat_archive.emplacement = emplacement_archive.emplacement
            WHERE contrat_archive.contrat = %s",
            DB_PREFIXE,
            DB_PREFIXE,
            intval($this->getVal($this->clePrimaire))
        );
        
        $res = $this->f->db->getOne($sql);
        $this->addToLog(__METHOD__."(): db->getOne(\"".$sql."\");", VERBOSE_MODE);
        
        if ($this->f->isDatabaseError($res, true)) {
            return null;
        }
        
        return $res;
    }
}
