<?php
/**
 * DBFORM - 'blocnote' - Surcharge gen.
 *
 * Ce script permet de définir la classe 'blocnote'.
 *
 * @package openads
 * @version SVN : $Id$
 */

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

class blocnote extends blocnote_gen {

    /**
     * Constructeur.
     */
    function __construct($id, &$dnu1 = null, $dnu2 = null) {
        $this->constructeur($id);
    }

    /**
     * Définition des actions disponibles sur la classe.
     *
     * @return void
     */
    function init_class_actions() {
        
        parent::init_class_actions();
        
        // ACTION - 000 - ajouter
        // 
        $this->class_actions[0]["condition"] = "is_ajoutable";
        
        // ACTION - 001 - modifier
        // 
        $this->class_actions[1]["condition"] = "is_modifiable";
        
        // ACTION - 002 - supprimer
        //
        $this->class_actions[2]["condition"] = "is_supprimable";
    }

    function setValsousformulaire(&$form,$maj,$validation,$idxformulaire,$retourformulaire,$typeformulaire){
        if ($validation==0) {
            if ($maj == 0){
                $form->setVal("dossier", $idxformulaire);
            }
        }
    }

    function setLib(&$form, $maj) {
        //
        parent::setLib($form, $maj);
        //
        $form->setLib($this->clePrimaire, _("id"));
    }

    function setType(&$form, $maj) {
        //
        parent::setType($form, $maj);
        //
        if ($maj < 2) {
            $form->setType('categorie', 'select');
            $form->setType('dossier', 'hiddenstatic');
        }else{
             $form->setType('blocnote', 'hiddenstatic');
             $form->setType('destination', 'hiddenstatic');
             $form->setType('dossier', 'hiddenstatic');
        }
        
        // 
        if ($this->getParameter("retourformulaire") == "dossier"
            || $this->getParameter("retourformulaire") == "dossier_instruction"
            || $this->getParameter("retourformulaire") == "dossier_instruction_mes_encours"
            || $this->getParameter("retourformulaire") == "dossier_instruction_tous_encours"
            || $this->getParameter("retourformulaire") == "dossier_instruction_mes_clotures"
            || $this->getParameter("retourformulaire") == "dossier_instruction_tous_clotures"
            || $this->getParameter("retourformulaire") == "dossier_contentieux_mes_instructions"
            || $this->getParameter("retourformulaire") == "dossier_contentieux_toutes_instructions") {
            //
            $form->setType('dossier', 'hidden');
        }
    }



    function setSelect(&$form, $maj,$db,$debug) {
        $contenu=array();
        $contenu[0]=array(
            _('reprise'),
            _('suivi projet'),
            _('contentieux'),
            _('divers'),
            );
        $contenu[1]=array(
            _('reprise'),
            _('suivi projet'),
            _('contentieux'),
            _('divers'),
            );
        $form->setSelect("categorie",$contenu);
    }

    /**
     * CONDITION - is_ajoutable.
     *
     * Condition pour pouvoir ajouter
     *
     * @return boolean
     */
    function is_ajoutable() {
        // Si bypass
        if ($this->f->can_bypass("blocnote", "ajouter")){
            return true;
        }
        // Test des autres conditions
        return $this->is_ajoutable_or_modifiable_or_supprimable();
    }

    /**
     * CONDITION - is_modifiable.
     *
     * Condition pour afficher le bouton modifier
     *
     * @return boolean
     */
    function is_modifiable() {
        // Si bypass
        if ($this->f->can_bypass("blocnote", "modifier")){
            return true;
        }
        // Test des autres conditions
        return $this->is_ajoutable_or_modifiable_or_supprimable();
    }

    /**
     * CONDITION - is_supprimable.
     *
     * Condition pour afficher le bouton supprimer
     * @return boolean
     */
    function is_supprimable() {
        // Si bypass
        if ($this->f->can_bypass("blocnote", "supprimer")){
            return true;
        }
        // Test des autres conditions
        return $this->is_ajoutable_or_modifiable_or_supprimable();
    }

    /**
     * Conditions pour afficher les boutons modifier et supprimer
     *
     * @return boolean
     */
    function is_ajoutable_or_modifiable_or_supprimable() {
        // Tester si le dossier est cloturé ,
        // et si l'instructeur est de la même division
        if ($this->is_instructeur_from_division_dossier() === true and
            $this->is_dossier_instruction_not_closed() === true){
            return true;
        }

        return false;
    }
}

?>
