protected static function get_modelo_proyecto($proyecto_id)
 {
     if (!isset(self::$modelo_proyecto)) {
         $modelo = toba_modelo_catalogo::instanciacion();
         $modelo->set_db(toba::db());
         self::$modelo_proyecto = $modelo->get_proyecto(toba::instancia()->get_id(), $proyecto_id);
     }
 }
 function __construct($opciones, $id_servicio, $proyecto = null)
 {
     parent::__construct($opciones, $id_servicio, $proyecto);
     $this->wsf = new WSClient($this->opciones);
 }
    function ajax__test_configuracion($clave_param, toba_ajax_respuesta $respuesta)
    {
        toba::memoria()->desactivar_reciclado();
        //Recupero la fila del cuadro
        $parametro = toba_ei_cuadro::recuperar_clave_fila('33000078', $clave_param);
        if (is_null($parametro)) {
            //Si no existe la fila informada desde el cliente retorno.
            $respuesta->set('Esta seguro que este es un servicio correcto?');
            return false;
        }
        //Armo el payload para el servicio de eco con el random a testear
        $rnd = xml_encode(md5(rand(1, 435)));
        $payload = <<<XML
<ns1:eco xmlns:ns1="http://siu.edu.ar/toba/serv_pruebas"><texto>{$rnd}</texto></ns1:eco>
XML;
        //---------------------------------------------------------------------//
        try {
            //Lo armo asi porque esta configurado en otro proyecto entonces no puedo usar toba::servicio_web
            $servicio = toba_servicio_web_cliente::conectar($parametro['servicio_web'], array(), $this->s__filtro['proyecto']);
            $respuesta_ws = $servicio->request(new toba_servicio_web_mensaje($payload, array('action' => 'eco')));
        } catch (toba_error_servicio_web $s) {
            //Capturo errores del servicio web
            $respuesta->set('Se produjo un error inesperado en la atención del servicio, comuniquese con el proveedor del mismo. Si es un proyecto toba verifique el log de servicios web de ese proyecto (Ubicado en toba_usuarios > Auditoría > 
Logs de Servicios Web Ofrecidos) y el log general del sistema');
            toba::logger_ws()->debug($s->getMessage());
            return false;
        } catch (toba_error $e) {
            //Capturo cualquier otro error local a la creacion del pedido
            toba::logger()->debug($e->getMessage());
            $respuesta->set('Se produjo un error inesperado en la inicializacion del pedido. Verifique que la URL sea correcta (abrirla en en el navegador y ver que responda bien)');
            return false;
        }
        //Parseo el XML de la respuesta para obtener el dato y comparo con el random que envie
        $xml_rta = new SimpleXMLElement($respuesta_ws->get_payload());
        if ((string) $rnd == (string) $xml_rta->texto) {
            $respuesta->set('Ok. La configuracion es correcta');
        } else {
            toba::logger()->debug("Enviado: {$rnd}");
            toba::logger()->debug('Recibido: ' . $xml_rta->texto);
            $respuesta->set('La configuración no es correcta, o la respuesta (' . (string) $xml_rta->texto . ') no coincide con la esperada ' . $rnd . '). Revise el log');
        }
    }
 function __construct($opciones, $id_servicio, $proyecto = null)
 {
     parent::__construct($opciones, $id_servicio, $proyecto);
 }