<?php

// ------------------------------------------------------------------------------------------
// Double liste pour les acheteur : objet double liste
// ------------------------------------------------------------------------------------------
class DoubleListeAcheteur extends DoubleListe
{

    function __construct(& $formId, & $elementId)
    {
        DoubleListe::__construct($formId, $elementId);
        $this->nbEltPagination = 3;
    }

    // function setElementId($elementId) {
    // // $this->objet = 'ACHETEURS';
    // $this->objet = $elementId;
    // }
    function setType()
    {
        $this->typeDL = DoubleListe::TypeAcheteurs;
    }

    function initRequetePaginee()
    {
        $valeurVide = '';
        $this->requetePaginee = new RequetePagineeAcheteurs(DoubleListe::TypeAcheteurs);
        $this->requetePaginee->initPerimetre();
        $this->requetePaginee->traiteRupture($valeurVide);
        $actionRecherche = DoubleListe::$actSelectPage . '&typeDL=' . $this->typeDL . '&' . DoubleListe::$element_id . '=' . $this->elementId;
        $this->requetePaginee->setNavigationCallbacks(DoubleListe::$callback_php, $actionRecherche, $this->formId);
    }

    public function &buildXml($action = '')
    {
        //
        // Initialisation du résultat à vide
        //
        $page_init = 1;
        $valeurVide = '';
        $this->requetePaginee->getCountTotal();
        $this->requetePaginee->traiteRupture($valeurVide);
        $this->resultatInitial = $this->requetePaginee->getResultat($page_init);
        
        $array = DoubleListe::buildXml($action);
        
        if (is_array($this->resultatInitial)) {
            $options = array();
            foreach ($this->resultatInitial as & $values) {
                $options[] = array(
                    '!value' => $values['CODE'],
                    '!texte' => $values['NOM'] . ' (' . $values['CODE'] . ')'
                );
            }
            $array['infos']['liste_recherche']['liste'] = array(
                'option' => $options
            );
        }
        
        return $array;
    }

    function &buildXmlResultatRecherche(& $num_page, & $val_recherche)
    {
        $array['infos'] = DoubleListe::buildXmlResultatRecherche($num_page, $val_recherche);
        
        //
        // Préparation de l'affichage des résultats
        //
        
        $options = array();
        if (is_array($array['infos']['resultat_tmp']))
            foreach ($array['infos']['resultat_tmp'] as & $values)
                $options[] = array(
                    '!value' => $values['CODE'],
                    '!texte' => $values['NOM'] . ' (' . $values['CODE'] . ')'
                );
        
        $array['infos']['resultat'] = $options;
        unset($array['infos']['resultat_tmp']);
        
        return $array;
    }

    public function &getLibelleForValue(& $value)
    {
        $objet = 'HASTUTIL';
        $result = ControleSaisie::checkValueObjet($objet, $value);
        if (is_array($result) && array_key_exists('libelleValeur', $result) && '' != $result['libelleValeur'])
            $result = $result['libelleValeur'] . ' (' . $result['valeurModifiee'] . ')';
        else
            $result = $value;
        
        return $result;
    }
}