<?php
//$Id$
//gen openMairie le 10/08/2020 10:06

require_once "../obj/election_unite.class.php";

class election_unite_centaine extends election_unite {
    // L'ajout de cette classe sert à éviter que le nom du sous-formulaire
    // et celui de l'objet soient identique. Ainsi dans le lien de retour
    // les deux éléments ne sont plus confondus et il est donc possible
    // d'accéder au formulaire de l'unité lié à la centaine pas à l'élection
    protected $_absolute_class_name = "election_unite_centaine";

    /**
     * SETTER FORM - setType.
     *
     * @param formulaire $form Instance formulaire.
     * @param integer $maj Identifant numérique de l'action.
     *
     * @return void
     */
    function setType(&$form, $maj) {
        parent::setType($form, $maj);
        // L'unité et l'élection ne sont pas modifiable
        $form->setType('emargement', "hidden");
        $form->setType('procuration', "hidden");
        $form->setType('inscrit', "hiddenstatic");
    }

    /**
     * SETTER FORM - set_form_default_values
     *
     * @param formulaire $form Instance formulaire.
     * @param integer $maj Identifant numérique de l'action.
     * @param integer $validation Marqueur de validation du formulaire.
     *
     * @return void
     */
    function set_form_default_values(&$form, $maj, $validation) {
        parent::set_form_default_values($form, $maj, $validation);
        // Remplis le nombre d'inscrit en récupérant celui de l'élection de référence
        if ($validation==0 && $maj==1) {
            $centaine = $this->f->get_element_by_id('election', $this->getVal('election'));
            $uniteRef = $this->get_election_unite(
                $centaine->getVal('election_reference'),
                $this->getVal('unite')
            );
            $form->setVal('inscrit', $uniteRef->getVal('inscrit'), $validation);
        }
    }

    /**
     * Surcharge du bouton retour des sous-formulaire pour qu'il ne soit pas affiché
     * lorsque l'on viens saisir les résultats d'une unité pour une centaine depuis
     * le contexte d'une unité de l'élection.
     */
    function retoursousformulaire(
        $idxformulaire = NULL,
        $retourformulaire = NULL,
        $val = NULL,
        $objsf = NULL,
        $premiersf = NULL,
        $tricolsf = NULL,
        $validation = NULL,
        $idx = NULL,
        $maj = NULL,
        $retour = NULL
    ) {
        // Depuis le contexte de la saisie des résultats pour une unité de la centaine
        // en passant par l'action de saisie disponible dans le formulaire de saisie d'une
        // unité de l'élection, le bouton d'affichage retour ne dois pas exister.
        // Dans tous les autres cas on affiche le bouton retour
        if (! (($maj == 1 || $maj == 3) && ($retourformulaire === "election"))) {
            parent::retoursousformulaire(
                $idxformulaire,
                $retourformulaire,
                $val,
                $objsf,
                $premiersf,
                $tricolsf,
                $validation,
                $idx,
                $maj,
                $retour
            );
        }
    }

    /**
     * Surcharge permettant de ne pas afficher le fil d'Ariane dans
     * le formulaire de saisie d'une unité de la centaine.
     * On n'affiche pas le fil d'ariane uniquement si on accède au formulaire
     * de saisie en passant par l'action de saisie du portlet d'une unité de
     * l'élection. 
     */
    function getSubFormTitle($ent) {
        if ((! empty($this->getParameter('maj'))
            && ($this->getParameter('maj') == 1
                || $this->getParameter('maj') == 3
        )) && (! empty($this->getParameter('retourformulaire'))
            && $this->getParameter('retourformulaire') == 'election'
        )) {
            return '';
        }
        return parent::getSubFormTitle($ent);
    }
}
