<?php

/**
 * gen_archivos_siif_nacion actions.
 *
 * @package    nomina
 * @subpackage gen_archivos_siif_nacion
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class gen_archivos_siif_nacionActions extends sfActions {

    /**
     * Servicio de list
     * lista los datos del informe
     * @param sfWebRequest $request
     */
    public function executeList(sfWebRequest $request) {

        //Guardar los parametros del request en el log
        $this->logMessage("---BEGIN Logging request");
        foreach ($request->getPostParameters() as $key => $value) {
            $this->logMessage("request[$key] = $value");
        }
        foreach ($request->getGetParameters() as $key => $value) {
            $this->logMessage("request[$key] = $value");
        }
        $this->logMessage("---END Logging request");

        /*
         * manejo de errores
         */
        try {

            /*
             * Obtener variables del request
             */
            /*
             * Variables globales
             */
            //id_periodo
            $id_periodo = $request['id_periodo_filtro'];
            $id_periodo_actual = $request['id_periodo'];

            /*
             * Opcionales
             */
            //Funcionario num_doc
            $num_doc = null;
            $whereFuncionarioNumDoc = "";
            if (isset($request['num_doc'])) {
                $num_doc = $request['num_doc'];
                $whereFuncionarioNumDoc = " AND liq.num_doc = '" . $request['num_doc'] . "'";
            }
            //Funcionario id_tipo_doc 
            $id_tipo_doc = null;
            $whereFuncionarioTipoDoc = "";
            if (isset($request['id_tipo_doc'])) {
                $id_tipo_doc = $request['id_tipo_doc'];
                $whereFuncionarioTipoDoc = " AND liq.id_tipo_doc = " . $request['id_tipo_doc'];
            }


            /*
             * Array de resultados
             */
            $resultado = array();

            //obtener registros de consulta
            $sql = <<<EOD
select 
con.codigo,
liq.valor_liquidado,
con.id_acreedor,
ter.num_doc

from no_liquida_nomina liq

join no_concep_nomina con
on liq.id_concep_nomina = con.id_concep_nomina

left join interceros_v ter
on ter.id_mae_ter = con.id_acreedor

where liq.id_periodo = $id_periodo
$whereFuncionarioNumDoc
$whereFuncionarioTipoDoc  

order by
liq.num_doc 
EOD;


            //realiza la conexion a la base de datos
            $conn = Doctrine_Manager::connection();
            $resultado = $conn->execute($sql)->fetchAll();

            $this->totalRows = count($resultado);
            $this->logMessage("[gen_archivos_siif_nacion] Total Filas: " . count($resultado));
            $this->startRow = 0;
            $this->endRow = count($resultado);
            $this->list_data = $resultado;


            /*
             * variables para tipo de archivo de salida
             */
            $this->type = "xml";
        } catch (Exception $e) {

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

            /*
             * variables para tipo de archivo de salida
             */
            $this->type = "xml";
        }
    }

}
