<?php

class DocumentsRattachesGestFourn extends DocumentsRattaches
{

    public static $idCategorie = 'CODE_CAT';

    public static $idNePasRelancer = 'NePasRelancer';

    public static $idPJCommande = 'PJCommande';

    private $codeFrs;

    private $CODE_CAT;

    private $doc_canevas;

    private $docExiste;

    function __construct(& $codeFrs, & $doc_canevas = null)
    {
        DocumentsRattaches::__construct();
        $contexte = 'GEST_FOURNISS';
        $this->setContexte($contexte);
        $this->setTypeItem($contexte);
        $this->docExiste = false;
        $this->codeFrs = $codeFrs;
        if (! is_null($doc_canevas) && '' != $doc_canevas) {
            $this->doc_canevas = $doc_canevas;
            $infosDoc = explode('|', $doc_canevas);
            $CATEGORIE = $infosDoc[0];
            $ID1 = $infosDoc[1];
            $titreDocinfo = SqlGestFourniss::rqGetFournissListeDocsRattaches($CATEGORIE, $ID1)->Trouve1();
            $this->CODE_CAT = $CATEGORIE;
            $this->setTitreDocument($titreDocinfo['TITRE']);
            
            // Spec 3571 : si un document existe déjà avec la mention "sans objet", il faut passer en mode modification
            $infoExistance = SqlGestFourniss::rqGetFournissInfosDocCanevas($this->codeFrs, $CATEGORIE, $ID1)->Trouve1();
            if (is_array($infoExistance)) {
                $this->docExiste = true;
                $this->addChampCache('Modifier', true);
            }
        } else {
            $this->doc_canevas = '';
            $this->CODE_CAT = '';
            $this->titreDoc = '';
        }
    }

    function &buildXml()
    {
        //
        // Sous-titre de la popup
        //
        $this->setCodeItem($this->codeFrs);
        $clFour = new Fournisseur($this->codeFrs);
        $libelleCode = trad('Fournisseur') . ', ' . ((is_null($clFour->getEC()) || $clFour->getEC() == '') ? $clFour->getRS() : $clFour->getEC()) . ' (' . $this->codeFrs . ')';
        $this->setTitrePremiereLigne($libelleCode);
        
        $this->addChampCache('codeFrs', $this->codeFrs);
        $this->addChampCache('doc_canevas', $this->doc_canevas);
        $this->setIdBloc($this->codeFrs);
        
        //
        // On rappelle la classe mère
        //
        $array = DocumentsRattaches::buildXml();
        
        //
        // Catégorie
        //
        $id = DocumentsRattachesGestFourn::$idCategorie;
        $libelle = Trad('Catégorie');
        $options = array();
        $options[] = array(
            '!value' => '',
            '!texte' => Trad('Choisir dans la liste') . ' :'
        );
        
        $CODE_TABLE = 'FOURNISS';
        $reqSqlcategories = SqlGestFourniss::rqGetFournissListeCategories($CODE_TABLE)->TrouveTous();
        if (is_array($reqSqlcategories))
            foreach ($reqSqlcategories as & $values) // EDP Ajout référence
                $options[] = array(
                    '!value' => $values['CODE_CAT'],
                    '!texte' => $values['LIBELLE_CAT']
                );
        
        if ('' != $this->CODE_CAT) {
            $actif = false;
            $valeur = $this->CODE_CAT;
        } else {
            $actif = true;
            $valeur = '';
        }
        $compXsl = new ComposantXslSelection($id, $actif);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible(false);
        $compXsl->setListeOptions($options);
        $compXsl->setMinWidth($this->minWidth);
        $compXsl->setValeur($valeur);
        $array['infos'][$id] = $compXsl->buildXml();
        
        //
        // Ne pas relancer
        //
        $id = DocumentsRattachesGestFourn::$idNePasRelancer;
        $libelle = Trad('Ne pas relancer');
        $compXsl = new ComposantXslSelection($id);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible(false);
        $array['infos'][$id] = $compXsl->buildXml();
        
        //
        // Ajouter en PJ des commandes
        //
        $id = DocumentsRattachesGestFourn::$idPJCommande;
        $libelle = Trad('Ajouté en PJ des commandes');
        $compXsl = new ComposantXslSelection($id);
        $compXsl->setLibelle($libelle);
        $compXsl->setLibelleVisible(false);
        $array['infos'][$id] = $compXsl->buildXml();
        
        return $array;
    }
}