<?php

/**
 * lineas_paa_detalle_sigestion actions.
 *
 * @package    contratacion
 * @subpackage lineas_paa_detalle_sigestion
 * @author     Manuel Enrique Paredes Lopez
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class lineas_paa_detalle_sigestionActions extends sfActions {

    /**
     * Executes list action
     *
     * @param sfRequest $request A request object
     */
    public function executeList(sfWebRequest $request) {

        //Revisar que sea post
        //$this->forward404Unless($request->isMethod('post'));
        //Guardar los parametros del request en el log
        $this->logMessage("---BEGIN Logging request");
        foreach ($request->getPostParameters() as $key => $value) {
            $this->logMessage("request[$key] = $value");
        }
        $this->logMessage("--------------------------------------------------*  Ip: " . $_SERVER['REMOTE_ADDR']);
        foreach ($request->getGetParameters() as $key => $value) {
            $this->logMessage("request[$key] = $value");
        }
        $this->logMessage("---END Logging request");

        $sisgestion = sfConfig::get('app_sisgestion');


        /*
         * Paginacion
         */
        if (isset($request['_startRow'])) {
            $rowStart = $request['_startRow'];
        } else {
            $rowStart = 0;
        }

        if (isset($request['_endRow'])) {
            $rowEnd = $request['_endRow'];
        } else {
            $rowEnd = 75;
        }


        if (isset($request['id_anhos'])) {
            $vigencia = $request['id_anhos'];
        } else {
            $vigencia = date('Y');
        }
        //codigo_dependencia

        if (isset($request['idsisgestiondependencia'])) {
            $cod_depen = $request['idsisgestiondependencia'];
        } else {
            $cod_depen = '';
        }

        //codigo_paa

        if (isset($request['codigopaa'])) {
            $cod_paa = $request['codigopaa'];
        } else {
            $cod_paa = '';
        }


        if (isset($request['usuario'])) {
            $usuario = $request['usuario'];
        } else {
            $usuario = 'SisgestionWebsafi';
        }



        if (isset($request['password'])) {
            $password = $request['password'];
        } else {
            $password = '#ifasbew_$2019';
        }




        //Se trae de la configuracipon la url que se ha establecido en los archivos de configuración
        //$uri=sfConfig::get('app_ipServidorSigestionAutenticacion');
        //$uri=sfConfig::get('app_ipServidorSigestionLineasPaa');

        $uri = $sisgestion . '/api/RequestToken';
        $url = 'http://' . $uri;


        //Se setean los parametros para ejecución
        $parametros_post = 'Username=' . $usuario . '&Password=' . $password;

        //Se inicializa con la URL el cURL
        $sesion = curl_init($url);

        $this->logMessage("LINEAS PAA AURL Llamado: " . $url);
        $this->logMessage("LINEAS PAA Parametros: " . $parametros_post);

        //Define el tipo de ejecución, en este caso POST
        curl_setopt($sesion, CURLOPT_POST, true);
        //Se ingresan los parametos estabelcidos 
        curl_setopt($sesion, CURLOPT_POSTFIELDS, $parametros_post);
        //Parametros de retorno en cURL
        curl_setopt($sesion, CURLOPT_HEADER, false);
        curl_setopt($sesion, CURLOPT_RETURNTRANSFER, true);
        //curl_setopt($sesion, CURLOPT_TIMEOUT_MS, 0.1);
        curl_setopt($sesion, CURLOPT_NOSIGNAL, 0.1);

        //Ejecuta la petición
        $respuesta = curl_exec($sesion);
        //Se cierra la conexión
        curl_close($sesion);

        $this->logMessage("LINEAS PAA Token: " . $respuesta);

        $respuesta = str_replace('"', '', $respuesta);

        /*
         * Manejo de errores
         */
        try {

            $uridos = $sisgestion . '/api/ServicePaa';
            $urldos = 'http://' . $uridos;


            if (isset($request['idsisgestiondependencia']) && isset($request['codigopaa']) && isset($request['id_anhos'])) {

                $post = '{
	"Vigencia":' . $vigencia . ','
                        . '"CodigoDependencia":' . $cod_depen . ','
                        . '"CodigoPaa":"' . $cod_paa . '"}';
            } else {

                $post = '{
	"Vigencia":' . $vigencia . '"}';
            }




            $authorization = "Authorization: Bearer " . $respuesta;

            $sesion = curl_init($urldos);

            curl_setopt($sesion, CURLOPT_HTTPHEADER, array('Content-Type: application/json', $authorization));
            curl_setopt($sesion, CURLOPT_CUSTOMREQUEST, "POST");
            curl_setopt($sesion, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($sesion, CURLOPT_POSTFIELDS, $post);
            curl_setopt($sesion, CURLOPT_FOLLOWLOCATION, 1);
            $result = curl_exec($sesion);
            $resultt = array();
            $respuesta = array();
            curl_close($sesion);
            $resultt = json_decode($result);
            $this->logMessage("LINEAS PAA Respuesta: " . $result);



            foreach ($resultt as $res) {
                $record = array();
                foreach ($res as $key => $value) {
                    if (is_array($value)) {

                        $key = strtolower($key);
                        $re = array();

                        foreach ($value as $va) {
                            $r = array();

                            foreach ($va as $ke => $val) {
                                $r[strtolower($ke)] = $val;
                            }
                            $r['idsisgestiondependencia'] = $cod_depen;
                            $r['codigopaa'] = $cod_paa;

                            $record[] = array(
                                'numerosolicitud' => $r['numerosolicitud'],
                                'numerocdp' => $r['numerocdp'],
                                'fechacdp' => $r['fechacdp'],
                                'rubro' => $r['rubro'],
                                'valor' => $r['valor'],
                                'idsisgestiondependencia' => $r['idsisgestiondependencia'],
                                'codigopaa' => $r['codigopaa']
                            );
                        }
                    } else {
                        
                    }
                }
            }


            $this->totalRows = count($record);
            $this->startRow = $rowStart;
            $this->endRow = $rowStart + count($record);
            $this->list_data = $record;
            $this->logMessage("[lineas_paa_detalles_sigestion] Consulta exitosa.");
        } catch (Exception $e) {

            $this->status = 1;
            $this->totalRows = 0;
            $this->startRow = 0;
            $this->endRow = 0;
            $this->list_data = array();
            $this->logMessage("ERROR!!!");
            $this->logMessage($e->getMessage());
        }
    }

}
