<?php
/**
 * Ce script définit la classe 'emplacement_archive'.
 *
 * @package opencimetiere
 * @version SVN : $Id$
 */

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

/**
 * Définition de la classe 'reprise_abandon_archive' (om_dbform).
 */
class reprise_abandon_archive extends reprise_abandon_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]);
    }

    function __construct($id, &$dnu1 = null, $dnu2 = null) {
        $this->constructeur($id);
        // Récupération des paramètres nécessaires a l'affichage des statuts et des etats
        $this->init_parameters();
    }

    function init_parameters() {
        $this->statut = array(
            '' => __("choisir ").__("statut"),
            'en_cours' => __("En cours"),
            'finalisee' => __("Finalisée"),
            'annulee' => __("Annulée"),
        );
        
        $this->etat = array(
            '' => __("choisir ").__("etat"),
            1 =>__("1 - Phase préliminaire"),
            2 => __("2 - Convocation première visite"),
            3 => __("3 - Rédaction PV1"),
            4 => __("4 - Notification/affichage PV1"),
            5 => __("5 - Convocation deuxième visite"),
            6 => __("6 - Rédaction PV2"),
            7 => __("7 - Notification/affichage PV2"),
            8 => __("8 - Délibération"),
        );
    }

    /**
     * SETTER_FORM - setSelect.
     *
     * @return void
     */
    function setSelect(&$form, $maj, &$dnu1 = null, $dnu2 = null) {
        parent::setSelect($form, $maj);
            $contenu[0]=array_keys($this->statut);
            $contenu[1]=array_values($this->statut);
            $form->setSelect("statut", $contenu);

            $contenu[0]=array_keys($this->etat);
            $contenu[1]=array_values($this->etat);
            $form->setSelect("etat", $contenu);
    }

    function setType(&$form, $maj) {
        parent::setType($form, $maj);
        
        $form->setType('emplacement', 'hidden');
        $form->setType('arrete', 'file');
        $form->setType('statut', 'selectstatic');
        $form->setType('etat', 'selectstatic');
    }

    /**
     * Permet de composer le CASE WHEN qui remplace les valeurs
     * du champ statut par sa traduction.
     * Cette méthode est principalement utilisée pour la construction du listing.
     */
    function compose_statut_reprise_trad() {
        $select_composed = "(";
        foreach ($this->statut as $statut_key => $statut_trad) {
            $select_composed .= sprintf(
                '%1$s WHEN 
                    reprise_abandon_archive.statut = \'%2$s\'
                THEN
                    \'%3$s\'
                %4$s
                ',
                $statut_key == array_keys($this->statut)[0] ? 'CASE' : '',
                $statut_key,
                __($this->statut[$statut_key]),
                $statut_key == array_keys($this->statut)[count($this->statut)-1] ? 'END' : ''
            );
        }
        return $select_composed.")";
    }

    /**
     * Permet de composer le CASE WHEN qui remplace les valeurs
     * du champ etat par sa traduction.
     * Cette méthode est principalement utilisée pour la construction du listing.
     */
    function compose_etat_reprise_trad() {
        $select_composed = "(";
        foreach ($this->etat as $etat_key => $etat_trad) {
            $select_composed .= sprintf(
                '%1$s WHEN 
                    reprise_abandon_archive.etat = \'%2$s\'
                THEN
                    \'%3$s\'
                %4$s
                ',
                $etat_key == array_keys($this->etat)[0] ? 'CASE' : '',
                $etat_key,
                __($this->etat[$etat_key]),
                $etat_key == array_keys($this->etat)[count($this->etat)-1] ? 'END' : ''
            );
        }
        return $select_composed.")";
    }
}