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

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

/**
 * Définition de la classe 'transfert' (om_dbform).
 *
 * Surcharge de la classe 'operation'.
 */
class transfert extends operation {

    /**
     * @var string
     */
    protected $_absolute_class_name = "transfert";

    /**
     *
     */
    var $categorie = "transfert";

    /**
     * @var array
     */
    var $required_field = array(
        "operation",
        "numdossier",
        "date",
        "heure",
        "etat",
        "categorie",
        "emplacement",
        "emplacement_transfert",
    );

    /**
     *
     */
    function setType(&$form, $maj) {
        //
        parent::setType($form, $maj);
        //
        if ($maj < 2) { //ajouter et modifier
            $form->setType('emplacement_transfert', 'autocomplete');
        }
        if ($maj == 3) {
            $form->setType('emplacement_transfert', 'selectstatic');
        }
    }

    /**
     * Configuration du widget de formulaire autocomplete du champ 'emplacement_transfert'.
     *
     * @return array
     */
    function get_widget_config__emplacement_transfert__autocomplete() {
        return array(
            // Surcharge visée pour l'ajout
            'obj' => "emplacement_transfert",
            // Table de l'objet
            'table' => "emplacement",
            // Permission d'ajouter
            'droit_ajout' => false,
            // Critères de recherche
            'criteres' => array(
                "'n°'||emplacement.emplacement" => __("n° de l'emplacement (ex : n°12)"),
                "emplacement.emplacement" => __("identifiant de l'emplacement (ex : 12)"),
                "emplacement.famille" => __("famille (ex : DUPONT)"),
            ),
            // Tables liées
            'jointures' => array(
            ),
            // Colonnes ID et libellé du champ
            // (si plusieurs pour le libellé alors une concaténation est faite)
            'identifiant' => "emplacement.emplacement",
            //
            'libelle' => array(
                "('n°'||emplacement.emplacement||' - Famille : '||emplacement.famille)",
            ),
            'group_by' => array(
            ),
            //
            'link_selection' => false,
        );
    }

    /**
     *
     * @return void
     */
    function setSelect(&$form, $maj, &$dnu1 = null, $dnu2 = null) {
        //
        parent::setSelect($form, $maj);
        //
        if ($maj < 2) {
            // AUTOCOMPLETE emplacement
            $form->setSelect(
                "emplacement_transfert",
                $this->get_widget_config__emplacement_transfert__autocomplete()
            );
        }
    }

    /**
     *
     * @return void
     */
    function setLib(&$form, $maj) {
        parent::setLib($form, $maj);
        //
        $form->setLib('emplacement', __("origine"));
        $form->setLib('emplacement_transfert', __("destination"));
    }
}
