<?php

class DOA_Planning
{

    public static $fichier_xsl = 'application/xsl/doa/DOA_Planning.xsl';

    public static $id_planningHC = 'PLANNING_HC';

    public static function &BuildXmlListePlannings($ID_DOA)
    {
        $array = null;
        if ($reqSql = SqlDoaPlanning::rqDOA_Planning_GetListePlanning($ID_DOA)->TrouveTous())
            foreach ($reqSql as & $value)
                $array[] = array(
                    '!CODE' => $value['ID_VERSION'],
                    '!LIB' => $value['ID_VERSION'] . ', ' . convertDateSqlToFr($value['DATE_HISTO']) . ', ' . convertHeureSqlToFr($value['HEURE_HISTO'])
                );
        return $array;
    }

    public static function GenererGantt(& $ID_DOA, $ID_VERSION)
    {
        $xml = '<DOAGanttIn LngUtilisation="' . $_SESSION['Session_Langue'] . '">
		    		<IdDOA>' . $ID_DOA . '</IdDOA>
		    		<IdVersionPlanning>' . $ID_VERSION . '</IdVersionPlanning>
				</DOAGanttIn>';
        return Wsdl::wsdlGenerique('OXAPRC_DOA_GENERER_GANTT', $xml);
    }

    public static function AfficherGantt($ID_DOA, $ID_VERSION)
    {
        if (is_null($ID_VERSION) || '' == $ID_VERSION) {
            $ID_VERSION = 0;
        }
        
        $planningHC = DOA_Planning::GenererGantt($ID_DOA, $ID_VERSION);
        if (is_array($planningHC)) {
            if (array_key_exists('head', $planningHC)) {
                // Erreur au niveau du wsdl, on envoie le message directement
                $messagePlanning = trad('Erreur WSDL');
            } else {
                if ('E' === $planningHC['Retour'])
                    $messagePlanning = $planningHC['MsgErreur'];
                else {
                    $fichierHC = $planningHC['NomFichier'];
                    $messagePlanning = '';
                }
            }
        } else
            $messagePlanning = Trad('Erreur de l\'appel au wsdl.');
        
        if ($messagePlanning) {
            echo $messagePlanning;
        } else {
            if ('MOUTHE' === $_SERVER['COMPUTERNAME']) {
                $fichierHC = STR_REPLACE('E:\\', '\\\\FIGARI\\E\\', $fichierHC);
            }
            
            echo Fichier::LireContenuFichier($fichierHC, false);
        }
    }

    public static function GetURLAffichageGantt(& $ID_DOA, $ID_VERSION)
    {
        return 'DOA_Planning.php?action=AfficherGantt&ID_VERSION=' . $ID_VERSION . '&ID_OBJET=' . urlencode($ID_DOA);
    }

    public static function BuildAccueil($ancrage)
    {
        // Affichage de l'onglet
        $clSession = DoaBibSession::getSession();
        $TYPE_OBJET = $clSession->getTypeObject();
        $ID_OBJET = $clSession->getIdObject();
        $statut = DOA::GetStatut($ID_OBJET);
        
        $array['ide']['!action'] = 'accueil';
        $array['ide']['!onclickMois'] = 'alert("Affichage par mois");';
        $array['ide']['!onclickSemaines'] = 'alert("Affichage par semaine");';
        $array['ide']['!onclickPleinEcran'] = 'alert("Affichage plein écran");';
        
        if ($listePlanning = DOA_Planning::BuildXmlListePlannings($ID_OBJET)) {
            // NE RIEN FAIRE
        } else {
            // A minima mettre la version courante car on n'a pas forcement fait un archivage
            $listePlanning = array(
                '!CODE' => '0',
                '!LIB' => Trad('En cours')
            );
        }
        
        $array['ide']['planning'] = array(
            '!name' => 'ID_VERSION',
            '!onchange' => 'Traite(\'DOA_Planning.php?action=IframeGantt\',this);',
            'option' => $listePlanning
        );
        
        $array['ide']['!onclickDefinir'] = (DOA_Referentiel::STATUT_TERMINE != $statut ? 'OpenPopup(\'DOA_Planning.php?action=DefinirPlanning\', \'definir_planning\', 1200, 600);' : '');
        
        $array['ide']['!id_planningHC'] = DOA_Planning::$id_planningHC;
        
        $ID_VERSION = 0;
        $array['ide']['!src_planningHC'] = DOA_Planning::GetURLAffichageGantt($ID_OBJET, $ID_VERSION); // 'DOA_Planning.php?action=AfficherGantt&ID_VERSION=0';
        
        $genXsl = new GenXslt(true);
        Affichage::innerHTMLPointeur($ancrage, $genXsl->XslHtml(DOA_Planning::$fichier_xsl, $array));
    }

    public static function BuildXml()
    {
        $clSession = DoaBibSession::getSession();
        
        $TYPE_OBJET = $clSession->getTypeObject();
        $ID_OBJET = $clSession->getIdObject();
    }
}
