<?php

/**
 * dependencias_sigestion actions.
 *
 * @package    contratacion
 * @subpackage dependencias_sigestion
 * @author     Manuel Enrique Paredes Lopez
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class dependencias_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['vigencia'])) {
            $vigencia = $request['vigencia'];
        } else {
            $vigencia = 2020;
        }
        
        
        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("DEPENDENCIAS  Llamado: ".$url);
        $this->logMessage("DEPENDENCIAS 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("DEPENDENCIAS Token: ".$respuesta);
        
        $respuesta=str_replace('"','',$respuesta);
        
        /*
         * Manejo de errores
         */
        try {
            
             $uridos=$sisgestion.'/api/ServicePaa/dependencias';
             $urldos='http://'.$uridos;
             
            $post = '';
            //$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, "GET");
            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,true);
            $this->logMessage("DEPENDENCIAS Respuesta: ".$result);
         
            
            
            foreach ($resultt as $res){
                $record = array();
                foreach ($res as $key=>$value){
                    
                    $key= strtolower($key);
                    $record[strtolower($key)]=$value;
                    
                }
                $respuesta[]=$record;
            }
            
            
            


            $this->totalRows = count($respuesta);
            $this->startRow = $rowStart;
            $this->endRow = $rowStart + count($respuesta);
            $this->list_data = $respuesta;
            $this->logMessage("[dependencias_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());
        }
    }

}
