<?php

class AO_Panier_ChoixFour_BlocNote
{

    const id_form = 'form_ao_bloc_note';

    private $no_ao;

    private $infos_ao;

    private $note_ao;

    function __construct(& $no_ao)
    {
        $no_ao_tmp = trim($no_ao);
        if ('' != $no_ao_tmp) {
            $this->no_ao = $no_ao_tmp;
            // recherche les informations du bloc notes de l'AO
            $reqSql = SqlAo::rqGetAO_BlocNote($no_ao_tmp)->Trouve1();
            $this->note_ao = (is_array($reqSql)) ? $reqSql['CONTMEMO'] : '';
        }
    }

    /**
     * Construction de la popup pour afficher la note
     * 
     * @return string
     */
    function &buildXml()
    {
        $array = array();
        $array['ao'] = array();
        
        //
        // Formulaire
        //
        $array['ao']['form']['!id'] = AO_Panier_ChoixFour_BlocNote::id_form;
        
        //
        // La note
        //
        $id = 'zoneNote';
        $actionNote = 'checkNote';
        $action = AO_Panier_ChoixFour::getJSUrlActionForm($actionNote, $this->no_ao);
        $format = 'A3000';
        $isVisible = true;
        
        $isInited = true; // EDP Initialisation de la variable car sinon l'instruction suivante plante en warning ....
        $btn = new ComposantXslTexte($id, $isInited, $format);
        $btn->setRowsCols(10, 65);
        $btn->setValeur($this->note_ao);
        $btn->setLongueurMax(3000);
        $btn->setAction($action);
        $array['ao']['note'] = $btn->buildXml();
        
        //
        // Bouton enregistrer
        //
        
        $idBtn = 'enregistrerNote';
        $lblBtn = Trad('Enregistrer');
        $actionBtn = AO_Panier_ChoixFour::getJSUrlActionForm($idBtn, $this->no_ao);
        $titleBtn = Trad('Enregistrer');
        $btn = new ComposantXslAction($idBtn);
        $btn->setAction($actionBtn);
        $btn->setLibelle($lblBtn);
        $btn->setTitle($titleBtn);
        $btn->setEstPrimaire(true);
        $array['ao']['enregistrer'] = $btn->buildXml();
        
        $array['action'] = 'AfficheNote';
        $array['popup_title'] = strBuild(Trad('Note de l\'appel d\'offre N° @1@'), $this->no_ao);
        
        return $array;
    }

    public static function checkValue(& $data)
    { // Toujours et encore retour qui n'est pas une variable donc pas de reference
        $format = $data['_format'];
        $value = $data['val'];
        
        // On passe par la vérification standard
        $resultatTest = ControleSaisie::checkValueFormat($format, $value);
        $valeurModifiee = $resultatTest['valeurModifiee'];
        $messageErreur = $resultatTest['messageErreur'];
        
        /**
         * Pour les tests unitaire ca a du etre difficle car code trouvé
         * return array(
         * 'valeurModifiee' => $valeurModifiee,
         * '$messageErreur' => $messageErreur
         * );
         * et remplace par ci-dessou
         */
        return array(
            'valeurModifiee' => $valeurModifiee,
            'messageErreur' => $messageErreur
        );
    }

    public static function &Wsdl($no_ao, $zone)
    {
        $xml = '<MAJBlocNoteAOIn LngUtilisation="' . utilisateur::getLangue() . '">
            <Utilisateur>' . utilisateur::getCode() . '</Utilisateur>
            <NumAO>' . $no_ao . '</NumAO>
            <Note>' . htmlspecialchars($zone) . '</Note>
			</MAJBlocNoteAOIn>';
        return Wsdl::wsdlGenerique('SRM_AO_MAJ_BLOCNOTE', $xml);
    }
}
