<?php

/**
 * Classe dédiée à la gestion de l'objet du workflow : AO Sign
 */
class VisuWorflowAOPanierSign extends VisuWorflowAOPanier
{

    public function __construct($typeSuivi, $no_doc)
    {
        $this->TYPE = 'A';
        $this->NOM = 'AOSign';
        $this->LIBELLE = trad('APPRO AO');
        
        $this->initETAT($typeSuivi, $no_doc);
        
        if ($this->ETAT) {
            $this->getArrayInfos($no_doc);
            $this->getInfosEntete($no_doc);
            $this->initSTATUT($typeSuivi, $no_doc);
        }
    }

    public function initETAT($typeSuivi, & $no_doc)
    {
        switch ($typeSuivi) {
            case TypeSuivi::AO_PANIER:
                if (Param::isWorkflowAO()) {
                    $this->ETAT = 1;
                } else
                    $this->ETAT = 0;
                break;
            default:
                $this->ETAT = 0;
                break;
        }
    }

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

    public function &initDATA(& $no_doc)
    {
        $data['ENTETE'] = $this->infosEntete;
        $data['ENTETE']['STATUT'] = AO_panier::getAoStatus($data['ENTETE']['DTE_VALID_AO'], $data['ENTETE']['VALCHXFOU']);
        $data['ENTETE']['ACTION']['IMP_AO'] = "CallUrl('suivi_doc.php','action=PDF_non_Chiffre&typ_doc=AO&no_doc={$no_doc}');";
        
        // On recupère les informations liées aux événements sur les AO
        if (is_array($this->arrayInfos)) {
            foreach ($this->arrayInfos as &$evt) {
                $evt['LIBELLE'] = AO_panier::getLibelleEvenement($evt['CODE']);
                $evt['DTE'] = convertDateSqlToFr($evt['DTE']);
                $evt['HEURE'] = convertHeureSqlToFr($evt['HEURE']);
            }
            $data['LISTE_EVE'] = & $this->arrayInfos;
        }
        return $data;
    }
}
