<?php

class VisuWorflowAOSaisieRep extends VisuWorflowAO
{

    public function __construct($typeSuivi, $no_doc)
    {
        $this->TYPE = 'E';
        $this->NOM = 'SaisieReponseAO';
        $this->LIBELLE = trad('Saisie réponse');
        
        $this->info_DA = SqlDa::getInfoOnEnteteDA($no_doc)->Trouve1();
        $this->liste_AO = SqlDa::getListeAoOnDA($no_doc)->TrouveTous();
        $this->initETAT($typeSuivi, $no_doc);
        
        if ($this->ETAT) {
            $this->initSTATUT($typeSuivi, $no_doc);
        }
    }

    protected function getArrayInfos($no_doc)
    {
        $this->arrayInfos = array();
        $tmpListeEvt = SqlAo::rqGetAOEventements($no_doc)->TrouveTous();
        if (is_array($tmpListeEvt))
            foreach ($tmpListeEvt as &$evt)
                if ('REP' == $evt['CODE'])
                    $this->arrayInfos[] = $evt;
    }

    public function initSTATUT(& $typeSuivi, & $no_doc)
    {
        $this->STATUT = 'N';
        // Si le workflow est appelé depuis une DA
        if (TypeSuivi::DA == $typeSuivi) {
            // Si la DA est une DA pour chiffrage ou bien si des AO existe sur cette DA alors l'objet AO est affiché
            if (is_array($this->liste_AO))
                foreach ($this->liste_AO as & $AO)
                    $this->DATA[] = $this->initDATA($AO['NO_AO']);
            
            $statutTermine = false;
            foreach ($this->DATA as $data_ao)
                if ('00000000' != $data_ao['ENTETE']['VALCHXFOU']) {
                    $statutTermine = true;
                    break;
                }
            if ($statutTermine) {
                $this->STATUT = 'T';
            } else {
                // On verifie les réponses des fournisseurs : en a-t-on reçu ?
                $reqSql = SqlAo::rqAOGetNbReponse($no_doc)->Trouve1();
                if (is_array($reqSql))
                    if ($reqSql['nb'] > 0)
                        // Il existe au moins une réponse d'un fournisseur
                        $this->STATUT = 'C';
            }
        }
    }
}
