<?php

/**
 * adjuntos_formato_pago actions.
 *
 * @package    radicacionVirtualCuentas
 * @subpackage adjuntos_formato_pago
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class adjuntos_formato_pagoActions extends sfQuery {

    /**
     * Executes list action
     * Se cambia por execute list, para filtro de periodo de retirados - 20150305
     *
     * @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");


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

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

        //ordenar consulta
        if (isset($request['_sortBy'])) {
            $sortBy = " Order by " . $request['_sortBy'];
        } else {
            $sortBy = 'order by tab0.num_doc';
        }


        /*
         * Manejo de errores
         */
        try {
            /*
             * Variables obligatorias
             */
            //Se filtran todos lo pagos del contrato, no del contratista actual, ya que pudo tener cesion - 20180831
            //$id_contratista = $request['id_contratista'];
            $id_contrato = $request['id_contrato'];


            /*
             * Variables opcionales
             */
            //funcionario
            if (isset($request['id_numero_pago'])) {
                $whereNumeroPago = " AND tab0.id_numero_pago = " . $request['id_numero_pago'];
            } else {
                $whereNumeroPago = ' ';
            }
            //Pago
            $id_formato_pago = "";
            if (isset($request['id_formato_pago'])) {
                $whereFormatoPago = " AND tab0.id_formato_pago = " . $request['id_formato_pago'];
                $id_formato_pago = $request['id_formato_pago'];
            } else {
                $whereFormatoPago = ' ';
            }


            //sentencia sql
            $sql = <<<EOD
ALTER SESSION SET NLS_DATE_FORMAT = "YYYY-MM-DD"
EOD;
            //ejecuta y obtiene el resultado del sql
            CN_TABLE::executeSQL($sql);

            /*
             * sql que trae los resultados
             */
            $sql = <<<EOD
SELECT   
tab0.id_formato_pago as id_formato_pago, 
tab0.id_contratista as id_contratista, 
tab0.id_contrato as id_contrato, 
tab0.id_numero_pago as id_numero_pago,
tab0.fecha_ini_pago as fecha_ini_pago, 
tab0.fecha_fin_pago as fecha_fin_pago, 
tab0.valor_mensual as valor_mensual, tab0.valor_iva_reg as valor_iva_reg, 
tab0.dias_liq as dias_liq, 
tab0.valor_pagar as valor_pagar, tab0.numero_planilla as numero_planilla, 
tab0.valor_ingresos as valor_ingresos, tab0.aporte_salud as aporte_salud, 
tab0.aporte_pension as aporte_pension, tab0.aporte_fsp as aporte_fsp, 
tab0.aporte_arl as aporte_arl, tab0.id_tipo_riesgo as id_tipo_riesgo, 
tab0.aporte_volun_pen as aporte_volun_pen, tab0.aporte_volun_afc as aporte_volun_afc, 
tab0.valor_intereses_vivienda as valor_intereses_vivienda, tab0.valor_dependientes as valor_dependientes, 
tab0.valor_medicina as valor_medicina, tab0.valor_base_reten as valor_base_reten, 
tab0.valor_retencion as valor_retencion, tab0.tarifa_reten as tarifa_reten, tab0.valor_iva as valor_iva, 
tab0.tarifa_iva as tarifa_iva, tab0.valor_ica as valor_ica, tab0.tarifa_ica as tarifa_ica, 
tab0.valor_a_pagar as valor_a_pagar, tab0.valor_comisiones as valor_comisiones, 
tab0.valor_base_ica as valor_base_ica, 
tab0.fecha_log as fecha_log, 
tab0.usuario_log as usuario_log, tab0.valor_embargo as valor_embargo,
tab0.estado,
tab0.nivel_rechazo,
tab0.aprobado,
tab0.radicado,
tab0.autorizado,
tab0.revisado, 

tab1.num_contrato as num_contrato, tab1.id_anhos as id_anhos, 
tab1.fecha_contrato as fecha_contrato, 
tab1.objeto as objeto, tab1.obligaciones as obligaciones, tab1.estado as estado_contrato, 
tab1.rp_anm as rp_anm, tab1.rp_sgr as rp_sgr, tab1.rp_anm||tab1.rp_sgr as rp, 
tab1.fecha_rp as fecha_rp, 
tab1.fecha_poliza as fecha_poliza, 
tab1.valor_anm as valor_anm, tab1.cdp_anm as cdp_anm, 
tab1.fecha_cdp_anm as fecha_cdp_anm, 
tab1.valor_sgr as valor_sgr, tab1.cdp_sgr as cdp_sgr, 
tab1.fecha_cdp_sgr as fecha_cdp_sgr,
tab1.dependencia as dependencia, tab1.meses_plazo as meses_plazo, tab1.dias_plazo as dias_plazo, 
tab1.fecha_plazo as fecha_plazo, 
tab1.id_supervisor as id_supervisor, 
tab1.id_apoyo_supervisor as id_apoyo_supervisor, tab1.valor_anm+tab1.valor_sgr as valor_contrato, 
tab2.tipo_recurso as tipo_recurso, tab2.id_tipo_doc as id_tipo_doc, tab2.num_doc as num_doc, 
tab2.razon_social as razon_social, tab2.correo as correo, tab2.id_ciudad as id_ciudad, 
tab2.estado as estado_contratista, tab2.id_tipo_regimen as id_tipo_regimen, 
tab2.mas_empleados as mas_empleados, tab2.declarante_renta as declarante_renta, 
tab2.pensionado as pensionado, tab2.embargo as embargo, tab2.valor_embargo as valor_embargo_contra, 
tab2.num_doc||' - '||tab2.razon_social as completo, tab3.descripcion as tipo_regimen, 
tab3.aplica_iva as aplica_iva, tab4.numero as numero, tab4.descripcion as numero_pago, 
tab5.codigo as codigo, tab5.descripcion as descripcion_riesgo, 
tab5.valor as valor_riesgo,

tab0.ADJUNTO_SALUD,
tab0.ADJUNTO_PENSION,
tab0.ADJUNTO_FSP,
tab0.ADJUNTO_ARL,
tab0.ADJUNTO_AFC,
tab0.ADJUNTO_VOLUNT,
tab0.ADJUNTO_VIVIENDA,
tab0.ADJUNTO_DEPEN,
tab0.ADJUNTO_MEDICINA,
tab0.ADJUNTO_FACTURA,
tab0.ADJUNTO_PLANILLA_OPCIONAL,
tab0.ADJUNTO_CERT_SALUD,
tab0.ADJUNTO_ACTA_INICIO                   

FROM RVC_FORMATO_PAGO tab0 

LEFT JOIN RVC_CONTRATO tab1 ON tab0.id_contrato = tab1.id_contrato 

LEFT JOIN RVC_CONTRATISTA tab2 ON tab0.id_contratista = tab2.id_contratista 

LEFT JOIN RVC_TIPO_REGIMEN tab3 ON tab2.id_tipo_regimen = tab3.id_tipo_regimen 

LEFT JOIN RVC_NUMERO_PAGO tab4 ON tab0.id_numero_pago = tab4.id_numero_pago 

LEFT JOIN RVC_TIPO_RIESGO tab5 ON tab0.id_tipo_riesgo = tab5.id_tipo_riesgo

WHERE  
tab0.id_contrato = $id_contrato 
$whereNumeroPago  
$whereFormatoPago

ORDER BY 
num_doc , 
id_anhos , 
num_contrato , 
numero , 
numero_planilla   
EOD;

            //ejecuta y obtiene el resultado del sql
            $resultado_sql = CN_TABLE::executeSQL($sql);

            $i = 0;
            $j = 1;
            $resultado = array();


            //Tipo adjunto
            //0 = adjuntos adjuntos
            //1 = jasper actividades
            //2 = jasper formato pago
            //3 = adjuntos Declaracion Jurada
            //4 = adjuntos Anexos Actividades
            //5 = adjuntos contratistas
            //6 = adjuntos novedad
            //7 = jasper orden de pago
            //Informe de actividades
            foreach ($resultado_sql as $value) {

                //Acta de Inicio - 20180723
                if ($value['adjunto_acta_inicio'] != null) {

                    $resultado[$i]['id_adjuntos'] = $i + 1;
                    $resultado[$i]['id_formato_pago'] = $value['id_formato_pago'];
                    $resultado[$i]['num_doc'] = $value['num_doc'];
                    $resultado[$i]['num_contrato'] = $value['num_contrato'];
                    $resultado[$i]['orden'] = $j;
                    $resultado[$i]['numero_pago'] = $value['numero_pago'];
                    //$resultado[$i]['tipo'] = 'ARL';
                    $resultado[$i]['tipo'] = 'Acta de Inicio';
                    $resultado[$i]['valor_a_pagar'] = $value['valor_a_pagar'];
                    $resultado[$i]['nombre_adjunto'] = $value['adjunto_acta_inicio'];
                    $resultado[$i]['estado'] = $value['estado'];
                    $resultado[$i]['nivel_rechazo'] = $value['nivel_rechazo'];
                    $resultado[$i]['aprobado'] = $value['aprobado'];
                    $resultado[$i]['radicado'] = $value['radicado'];
                    $resultado[$i]['autorizado'] = $value['autorizado'];
                    $resultado[$i]['revisado'] = $value['revisado'];
                    $resultado[$i]['tipo_adjunto'] = 8;

                    $i++;
                }
                $j++;

                /* if ($value['adjunto_salud'] != null) {

                  $resultado[$i]['id_adjuntos'] = $i + 1;
                  $resultado[$i]['id_formato_pago'] = $value['id_formato_pago'];
                  $resultado[$i]['num_doc'] = $value['num_doc'];
                  $resultado[$i]['num_contrato'] = $value['num_contrato'];
                  $resultado[$i]['orden'] = $j;
                  $resultado[$i]['numero_pago'] = $value['numero_pago'];
                  $resultado[$i]['tipo'] = 'Salud';
                  $resultado[$i]['valor_a_pagar'] = $value['valor_a_pagar'];
                  $resultado[$i]['nombre_adjunto'] = $value['adjunto_salud'];
                  $resultado[$i]['estado'] = 'true';

                  $i++;
                  }
                  $j++;

                  if ($value['adjunto_pension'] != null) {

                  $resultado[$i]['id_adjuntos'] = $i + 1;
                  $resultado[$i]['id_formato_pago'] = $value['id_formato_pago'];
                  $resultado[$i]['num_doc'] = $value['num_doc'];
                  $resultado[$i]['num_contrato'] = $value['num_contrato'];
                  $resultado[$i]['orden'] = $j;
                  $resultado[$i]['numero_pago'] = $value['numero_pago'];
                  $resultado[$i]['tipo'] = 'Pensión';
                  $resultado[$i]['valor_a_pagar'] = $value['valor_a_pagar'];
                  $resultado[$i]['nombre_adjunto'] = $value['adjunto_pension'];
                  $resultado[$i]['estado'] = 'true';

                  $i++;
                  }
                  $j++;

                  if ($value['adjunto_fsp'] != null) {

                  $resultado[$i]['id_adjuntos'] = $i + 1;
                  $resultado[$i]['id_formato_pago'] = $value['id_formato_pago'];
                  $resultado[$i]['num_doc'] = $value['num_doc'];
                  $resultado[$i]['num_contrato'] = $value['num_contrato'];
                  $resultado[$i]['orden'] = $j;
                  $resultado[$i]['numero_pago'] = $value['numero_pago'];
                  $resultado[$i]['tipo'] = 'FSP';
                  $resultado[$i]['valor_a_pagar'] = $value['valor_a_pagar'];
                  $resultado[$i]['nombre_adjunto'] = $value['adjunto_fsp'];
                  $resultado[$i]['estado'] = 'true';

                  $i++;
                  }
                  $j++; */
                //Planilla PILA general en el campo de adjunto ARL - 20180404
                if ($value['adjunto_arl'] != null) {

                    $resultado[$i]['id_adjuntos'] = $i + 1;
                    $resultado[$i]['id_formato_pago'] = $value['id_formato_pago'];
                    $resultado[$i]['num_doc'] = $value['num_doc'];
                    $resultado[$i]['num_contrato'] = $value['num_contrato'];
                    $resultado[$i]['orden'] = $j;
                    $resultado[$i]['numero_pago'] = $value['numero_pago'];
                    //$resultado[$i]['tipo'] = 'ARL';
                    $resultado[$i]['tipo'] = 'Planilla PILA';
                    $resultado[$i]['valor_a_pagar'] = $value['valor_a_pagar'];
                    $resultado[$i]['nombre_adjunto'] = $value['adjunto_arl'];
                    $resultado[$i]['estado'] = $value['estado'];
                    $resultado[$i]['nivel_rechazo'] = $value['nivel_rechazo'];
                    $resultado[$i]['aprobado'] = $value['aprobado'];
                    $resultado[$i]['radicado'] = $value['radicado'];
                    $resultado[$i]['autorizado'] = $value['autorizado'];
                    $resultado[$i]['revisado'] = $value['revisado'];
                    $resultado[$i]['tipo_adjunto'] = 0;

                    $i++;
                }
                $j++;

                //Certificado AFC en el campo de adjunto AFC - 20180613
                if ($value['adjunto_afc'] != null) {

                    $resultado[$i]['id_adjuntos'] = $i + 1;
                    $resultado[$i]['id_formato_pago'] = $value['id_formato_pago'];
                    $resultado[$i]['num_doc'] = $value['num_doc'];
                    $resultado[$i]['num_contrato'] = $value['num_contrato'];
                    $resultado[$i]['orden'] = $j;
                    $resultado[$i]['numero_pago'] = $value['numero_pago'];
                    $resultado[$i]['tipo'] = 'Certificado AFC';
                    $resultado[$i]['valor_a_pagar'] = $value['valor_a_pagar'];
                    $resultado[$i]['nombre_adjunto'] = $value['adjunto_afc'];
                    $resultado[$i]['estado'] = $value['estado'];
                    $resultado[$i]['nivel_rechazo'] = $value['nivel_rechazo'];
                    $resultado[$i]['aprobado'] = $value['aprobado'];
                    $resultado[$i]['radicado'] = $value['radicado'];
                    $resultado[$i]['autorizado'] = $value['autorizado'];
                    $resultado[$i]['revisado'] = $value['revisado'];
                    $resultado[$i]['tipo_adjunto'] = 0;

                    $i++;
                }
                $j++;

                if ($value['adjunto_planilla_opcional'] != null) {

                    $resultado[$i]['id_adjuntos'] = $i + 1;
                    $resultado[$i]['id_formato_pago'] = $value['id_formato_pago'];
                    $resultado[$i]['num_doc'] = $value['num_doc'];
                    $resultado[$i]['num_contrato'] = $value['num_contrato'];
                    $resultado[$i]['orden'] = $j;
                    $resultado[$i]['numero_pago'] = $value['numero_pago'];
                    //$resultado[$i]['tipo'] = 'ARL';
                    $resultado[$i]['tipo'] = 'Planilla Opcional';
                    $resultado[$i]['valor_a_pagar'] = $value['valor_a_pagar'];
                    $resultado[$i]['nombre_adjunto'] = $value['adjunto_planilla_opcional'];
                    $resultado[$i]['estado'] = $value['estado'];
                    $resultado[$i]['nivel_rechazo'] = $value['nivel_rechazo'];
                    $resultado[$i]['aprobado'] = $value['aprobado'];
                    $resultado[$i]['radicado'] = $value['radicado'];
                    $resultado[$i]['autorizado'] = $value['autorizado'];
                    $resultado[$i]['revisado'] = $value['revisado'];
                    $resultado[$i]['tipo_adjunto'] = 0;

                    $i++;
                }
                $j++;

                if ($value['adjunto_cert_salud'] != null) {

                    $resultado[$i]['id_adjuntos'] = $i + 1;
                    $resultado[$i]['id_formato_pago'] = $value['id_formato_pago'];
                    $resultado[$i]['num_doc'] = $value['num_doc'];
                    $resultado[$i]['num_contrato'] = $value['num_contrato'];
                    $resultado[$i]['orden'] = $j;
                    $resultado[$i]['numero_pago'] = $value['numero_pago'];
                    $resultado[$i]['tipo'] = 'Certificado de Salud';
                    $resultado[$i]['valor_a_pagar'] = $value['valor_a_pagar'];
                    $resultado[$i]['nombre_adjunto'] = $value['adjunto_cert_salud'];
                    $resultado[$i]['estado'] = $value['estado'];
                    $resultado[$i]['nivel_rechazo'] = $value['nivel_rechazo'];
                    $resultado[$i]['aprobado'] = $value['aprobado'];
                    $resultado[$i]['radicado'] = $value['radicado'];
                    $resultado[$i]['autorizado'] = $value['autorizado'];
                    $resultado[$i]['revisado'] = $value['revisado'];
                    $resultado[$i]['tipo_adjunto'] = 0;

                    $i++;
                }
                $j++;

                if ($value['adjunto_volunt'] != null) {

                    $resultado[$i]['id_adjuntos'] = $i + 1;
                    $resultado[$i]['id_formato_pago'] = $value['id_formato_pago'];
                    $resultado[$i]['num_doc'] = $value['num_doc'];
                    $resultado[$i]['num_contrato'] = $value['num_contrato'];
                    $resultado[$i]['orden'] = $j;
                    $resultado[$i]['numero_pago'] = $value['numero_pago'];
                    $resultado[$i]['tipo'] = 'Voluntario';
                    $resultado[$i]['valor_a_pagar'] = $value['valor_a_pagar'];
                    $resultado[$i]['nombre_adjunto'] = $value['adjunto_volunt'];
                    $resultado[$i]['estado'] = $value['estado'];
                    $resultado[$i]['nivel_rechazo'] = $value['nivel_rechazo'];
                    $resultado[$i]['aprobado'] = $value['aprobado'];
                    $resultado[$i]['radicado'] = $value['radicado'];
                    $resultado[$i]['autorizado'] = $value['autorizado'];
                    $resultado[$i]['revisado'] = $value['revisado'];
                    $resultado[$i]['tipo_adjunto'] = 0;

                    $i++;
                }
                $j++;

                if ($value['adjunto_vivienda'] != null) {

                    $resultado[$i]['id_adjuntos'] = $i + 1;
                    $resultado[$i]['id_formato_pago'] = $value['id_formato_pago'];
                    $resultado[$i]['num_doc'] = $value['num_doc'];
                    $resultado[$i]['num_contrato'] = $value['num_contrato'];
                    $resultado[$i]['orden'] = $j;
                    $resultado[$i]['numero_pago'] = $value['numero_pago'];
                    $resultado[$i]['tipo'] = 'Vivienda';
                    $resultado[$i]['valor_a_pagar'] = $value['valor_a_pagar'];
                    $resultado[$i]['nombre_adjunto'] = $value['adjunto_vivienda'];
                    $resultado[$i]['estado'] = $value['estado'];
                    $resultado[$i]['nivel_rechazo'] = $value['nivel_rechazo'];
                    $resultado[$i]['aprobado'] = $value['aprobado'];
                    $resultado[$i]['radicado'] = $value['radicado'];
                    $resultado[$i]['autorizado'] = $value['autorizado'];
                    $resultado[$i]['revisado'] = $value['revisado'];
                    $resultado[$i]['tipo_adjunto'] = 0;

                    $i++;
                }
                $j++;

                if ($value['adjunto_medicina'] != null) {

                    $resultado[$i]['id_adjuntos'] = $i + 1;
                    $resultado[$i]['id_formato_pago'] = $value['id_formato_pago'];
                    $resultado[$i]['num_doc'] = $value['num_doc'];
                    $resultado[$i]['num_contrato'] = $value['num_contrato'];
                    $resultado[$i]['orden'] = $j;
                    $resultado[$i]['numero_pago'] = $value['numero_pago'];
                    $resultado[$i]['tipo'] = 'Prepagada';
                    $resultado[$i]['valor_a_pagar'] = $value['valor_a_pagar'];
                    $resultado[$i]['nombre_adjunto'] = $value['adjunto_medicina'];
                    $resultado[$i]['estado'] = $value['estado'];
                    $resultado[$i]['nivel_rechazo'] = $value['nivel_rechazo'];
                    $resultado[$i]['aprobado'] = $value['aprobado'];
                    $resultado[$i]['radicado'] = $value['radicado'];
                    $resultado[$i]['autorizado'] = $value['autorizado'];
                    $resultado[$i]['revisado'] = $value['revisado'];
                    $resultado[$i]['tipo_adjunto'] = 0;

                    $i++;
                }
                $j++;

                if ($value['adjunto_factura'] != null) {

                    $resultado[$i]['id_adjuntos'] = $i + 1;
                    $resultado[$i]['id_formato_pago'] = $value['id_formato_pago'];
                    $resultado[$i]['num_doc'] = $value['num_doc'];
                    $resultado[$i]['num_contrato'] = $value['num_contrato'];
                    $resultado[$i]['orden'] = $j;
                    $resultado[$i]['numero_pago'] = $value['numero_pago'];
                    $resultado[$i]['tipo'] = 'Factura';
                    $resultado[$i]['valor_a_pagar'] = $value['valor_a_pagar'];
                    $resultado[$i]['nombre_adjunto'] = $value['adjunto_factura'];
                    $resultado[$i]['estado'] = $value['estado'];
                    $resultado[$i]['nivel_rechazo'] = $value['nivel_rechazo'];
                    $resultado[$i]['aprobado'] = $value['aprobado'];
                    $resultado[$i]['radicado'] = $value['radicado'];
                    $resultado[$i]['autorizado'] = $value['autorizado'];
                    $resultado[$i]['revisado'] = $value['revisado'];
                    $resultado[$i]['tipo_adjunto'] = 0;

                    $i++;
                }
                $j++;

                if ($value['adjunto_depen'] != null) {

                    $resultado[$i]['id_adjuntos'] = $i + 1;
                    $resultado[$i]['id_formato_pago'] = $value['id_formato_pago'];
                    $resultado[$i]['num_doc'] = $value['num_doc'];
                    $resultado[$i]['num_contrato'] = $value['num_contrato'];
                    $resultado[$i]['orden'] = $j;
                    $resultado[$i]['numero_pago'] = $value['numero_pago'];
                    $resultado[$i]['tipo'] = 'Dependientes';
                    $resultado[$i]['valor_a_pagar'] = $value['valor_a_pagar'];
                    $resultado[$i]['nombre_adjunto'] = $value['adjunto_depen'];
                    $resultado[$i]['estado'] = $value['estado'];
                    $resultado[$i]['nivel_rechazo'] = $value['nivel_rechazo'];
                    $resultado[$i]['aprobado'] = $value['aprobado'];
                    $resultado[$i]['radicado'] = $value['radicado'];
                    $resultado[$i]['autorizado'] = $value['autorizado'];
                    $resultado[$i]['revisado'] = $value['revisado'];
                    $resultado[$i]['tipo_adjunto'] = 0;

                    $i++;
                    //Adjuntamos Documentos de los pdependientes
                    $adjunto_firmado = $value['adjunto_depen'];
                    $sql = <<<EOD
SELECT tab0.*,tp.DESCRIPCION
FROM rvc_declara_jura_novdet tab0
INNER JOIN RVC_DECLARA_JURA_NOV tab1
ON tab0.ID_DECLARA_JURA_NOV=tab1.ID_DECLARA_JURA_NOV
left join tipo_parentezco tp on tab0.ID_TIPO_PARENTEZCO=tp.ID_TIPO_PARENTEZCO
WHERE adjunto             IS NOT NULL 
and tab1.ADJUNTO_FIRMADO='$adjunto_firmado'
EOD;

                    $records = CN_TABLE::executeSQL($sql);
                    foreach ($records as $record) {

                        $j++;
                        $resultado[$i]['id_adjuntos'] = $i + 1;
                        $resultado[$i]['id_formato_pago'] = $value['id_formato_pago'];
                        $resultado[$i]['num_doc'] = $value['num_doc'];
                        $resultado[$i]['num_contrato'] = $value['num_contrato'];
                        $resultado[$i]['orden'] = $j;
                        $resultado[$i]['numero_pago'] = $value['numero_pago'];
                        $resultado[$i]['tipo'] = 'Adjunto ' . $record['descripcion'];
                        $resultado[$i]['valor_a_pagar'] = $value['valor_a_pagar'];
                        $resultado[$i]['nombre_adjunto'] = $record['adjunto'];
                        $resultado[$i]['estado'] = $value['estado'];
                        $resultado[$i]['nivel_rechazo'] = $value['nivel_rechazo'];
                        $resultado[$i]['aprobado'] = $value['aprobado'];
                        $resultado[$i]['radicado'] = $value['radicado'];
                        $resultado[$i]['autorizado'] = $value['autorizado'];
                        $resultado[$i]['revisado'] = $value['revisado'];
                        $resultado[$i]['tipo_adjunto'] = 3;

                        $i++;
                    }
                }
                $j++;


                $j = 1;
            }



            //Adjunto de actividades
            if ($id_formato_pago != "") {
                $sql = <<<EOD
SELECT 
COUNT(id_actividad_accion) as total
FROM rvc_actividad_accion raa
INNER JOIN rvc_actividad_obligacion rao
ON raa.ID_ACTIVIDAD_OBLIGACION=rao.ID_ACTIVIDAD_OBLIGACION 
where rao.ID_FORMATO_PAGO= $id_formato_pago
EOD;

                $records = CN_TABLE::executeSQL($sql);
                //Si se encuentra alguna actividad agregamos le formato de actividades al adjunto
                if ($records[0]['total'] > 0) {

                    $resultado[$i]['id_adjuntos'] = $i + 1;
                    $resultado[$i]['id_formato_pago'] = $resultado_sql[0]['id_formato_pago'];
                    $resultado[$i]['num_doc'] = $resultado_sql[0]['num_doc'];
                    $resultado[$i]['num_contrato'] = $resultado_sql[0]['num_contrato'];
                    $resultado[$i]['orden'] = count($resultado) + 1;
                    $resultado[$i]['numero_pago'] = $resultado_sql[0]['numero_pago'];
                    //$resultado[$i]['tipo'] = 'ARL';
                    $resultado[$i]['tipo'] = 'Reporte de Actividades';
                    $resultado[$i]['valor_a_pagar'] = $resultado_sql[0]['valor_a_pagar'];
                    $resultado[$i]['nombre_adjunto'] = 'Informe Actividades';
                    $resultado[$i]['estado'] = $resultado_sql[0]['estado'];
                    $resultado[$i]['nivel_rechazo'] = $resultado_sql[0]['nivel_rechazo'];
                    $resultado[$i]['aprobado'] = $resultado_sql[0]['aprobado'];
                    $resultado[$i]['radicado'] = $resultado_sql[0]['radicado'];
                    $resultado[$i]['autorizado'] = $resultado_sql[0]['autorizado'];
                    $resultado[$i]['revisado'] = $resultado_sql[0]['revisado'];
                    $resultado[$i]['tipo_adjunto'] = 1;

                    $i++;
                    $sql = <<<EOD
SELECT 
id_actividad_obligacion,
descripcion,
fecha_log,
adjunto_anexo_actividades
FROM rvc_actividad_obligacion rao
where rao.ID_FORMATO_PAGO= $id_formato_pago and ADJUNTO_ANEXO_ACTIVIDADES IS NOT NULL
EOD;
                    $records = CN_TABLE::executeSQL($sql);
                    //Añadimos los anexos de actividades si existen
                    $n = 0;
                    foreach ($records as $record) {
                        $n++;
                        $resultado[$i]['id_adjuntos'] = $i + 1;
                        $resultado[$i]['id_formato_pago'] = $resultado_sql[0]['id_formato_pago'];
                        $resultado[$i]['num_doc'] = $resultado_sql[0]['num_doc'];
                        $resultado[$i]['num_contrato'] = $resultado_sql[0]['num_contrato'];
                        $resultado[$i]['orden'] = count($resultado) + 1 + n;
                        $resultado[$i]['numero_pago'] = $resultado_sql[0]['numero_pago'];
                        $resultado[$i]['tipo'] = 'Anexo de Actividades';
                        $resultado[$i]['valor_a_pagar'] = $resultado_sql[0]['valor_a_pagar'];
                        $resultado[$i]['nombre_adjunto'] = $record['adjunto_anexo_actividades'];
                        $resultado[$i]['estado'] = $resultado_sql[0]['estado'];
                        $resultado[$i]['nivel_rechazo'] = $resultado_sql[0]['nivel_rechazo'];
                        $resultado[$i]['aprobado'] = $resultado_sql[0]['aprobado'];
                        $resultado[$i]['radicado'] = $resultado_sql[0]['radicado'];
                        $resultado[$i]['autorizado'] = $resultado_sql[0]['autorizado'];
                        $resultado[$i]['revisado'] = $resultado_sql[0]['revisado'];
                        $resultado[$i]['tipo_adjunto'] = 4;

                        $i++;
                    }
                }
                //$j++;
            }


            /**
             * Se adiciona el adjunto pensionado - 20180629
             */
            if ($id_formato_pago != "") {
                $sql = <<<EOD
select 
forpag.*,
CONT.ADJUNTO_PENSIONADO as adjunto_pensionado,
CONT.adjunto_rut as adjunto_rut,
CONT.adjunto_arl as adjunto_arl_cont,
CONT.adjunto_certif_bancaria as adjunto_certif_bancaria,
CONT.adjunto_aprobacion_supervisor as adjunto_aprobacion_supervisor

from RVC_FORMATO_PAGO forpag

join RVC_CONTRATISTA cont
on CONT.ID_CONTRATISTA = forpag.ID_CONTRATISTA

where
forpag.ID_FORMATO_PAGO = $id_formato_pago   
EOD;
                $records = CN_TABLE::executeSQL($sql);

                foreach ($records as $record) {

                    if ($record['adjunto_pensionado'] != null) {

                        $resultado[$i]['id_adjuntos'] = $i + 1;
                        $resultado[$i]['id_formato_pago'] = $resultado_sql[0]['id_formato_pago'];
                        $resultado[$i]['num_doc'] = $resultado_sql[0]['num_doc'];
                        $resultado[$i]['num_contrato'] = $resultado_sql[0]['num_contrato'];
                        $resultado[$i]['orden'] = count($resultado) + 1;
                        $resultado[$i]['numero_pago'] = $resultado_sql[0]['numero_pago'];
                        $resultado[$i]['tipo'] = 'Adjunto de Pensionado';
                        $resultado[$i]['valor_a_pagar'] = $resultado_sql[0]['valor_a_pagar'];
                        $resultado[$i]['nombre_adjunto'] = $record['adjunto_pensionado'];
                        $resultado[$i]['estado'] = $resultado_sql[0]['estado'];
                        $resultado[$i]['nivel_rechazo'] = $resultado_sql[0]['nivel_rechazo'];
                        $resultado[$i]['aprobado'] = $resultado_sql[0]['aprobado'];
                        $resultado[$i]['radicado'] = $resultado_sql[0]['radicado'];
                        $resultado[$i]['autorizado'] = $resultado_sql[0]['autorizado'];
                        $resultado[$i]['revisado'] = $resultado_sql[0]['revisado'];
                        $resultado[$i]['tipo_adjunto'] = 5;

                        $i++;
                    }

                    /**
                     * Permite adjuntar los documentos del contratista - 20180829
                     */
                    if (isset($request['tag_act_datos']) && $request['tag_act_datos'] == 1) {

                        if ($record['adjunto_rut'] != null) {

                            $resultado[$i]['id_adjuntos'] = $i + 1;
                            $resultado[$i]['id_formato_pago'] = $resultado_sql[0]['id_formato_pago'];
                            $resultado[$i]['num_doc'] = $resultado_sql[0]['num_doc'];
                            $resultado[$i]['num_contrato'] = $resultado_sql[0]['num_contrato'];
                            $resultado[$i]['orden'] = count($resultado) + 1;
                            $resultado[$i]['numero_pago'] = $resultado_sql[0]['numero_pago'];
                            $resultado[$i]['tipo'] = 'Adjunto RUT';
                            $resultado[$i]['valor_a_pagar'] = $resultado_sql[0]['valor_a_pagar'];
                            $resultado[$i]['nombre_adjunto'] = $record['adjunto_rut'];
                            $resultado[$i]['estado'] = $resultado_sql[0]['estado'];
                            $resultado[$i]['nivel_rechazo'] = $resultado_sql[0]['nivel_rechazo'];
                            $resultado[$i]['aprobado'] = $resultado_sql[0]['aprobado'];
                            $resultado[$i]['radicado'] = $resultado_sql[0]['radicado'];
                            $resultado[$i]['autorizado'] = $resultado_sql[0]['autorizado'];
                            $resultado[$i]['revisado'] = $resultado_sql[0]['revisado'];
                            $resultado[$i]['tipo_adjunto'] = 5;

                            $i++;
                        }

                        if ($record['adjunto_arl_cont'] != null) {

                            $resultado[$i]['id_adjuntos'] = $i + 1;
                            $resultado[$i]['id_formato_pago'] = $resultado_sql[0]['id_formato_pago'];
                            $resultado[$i]['num_doc'] = $resultado_sql[0]['num_doc'];
                            $resultado[$i]['num_contrato'] = $resultado_sql[0]['num_contrato'];
                            $resultado[$i]['orden'] = count($resultado) + 1;
                            $resultado[$i]['numero_pago'] = $resultado_sql[0]['numero_pago'];
                            $resultado[$i]['tipo'] = 'Adjunto ARL';
                            $resultado[$i]['valor_a_pagar'] = $resultado_sql[0]['valor_a_pagar'];
                            $resultado[$i]['nombre_adjunto'] = $record['adjunto_arl_cont'];
                            $resultado[$i]['estado'] = $resultado_sql[0]['estado'];
                            $resultado[$i]['nivel_rechazo'] = $resultado_sql[0]['nivel_rechazo'];
                            $resultado[$i]['aprobado'] = $resultado_sql[0]['aprobado'];
                            $resultado[$i]['radicado'] = $resultado_sql[0]['radicado'];
                            $resultado[$i]['autorizado'] = $resultado_sql[0]['autorizado'];
                            $resultado[$i]['revisado'] = $resultado_sql[0]['revisado'];
                            $resultado[$i]['tipo_adjunto'] = 5;

                            $i++;
                        }

                        if ($record['adjunto_certif_bancaria'] != null) {

                            $resultado[$i]['id_adjuntos'] = $i + 1;
                            $resultado[$i]['id_formato_pago'] = $resultado_sql[0]['id_formato_pago'];
                            $resultado[$i]['num_doc'] = $resultado_sql[0]['num_doc'];
                            $resultado[$i]['num_contrato'] = $resultado_sql[0]['num_contrato'];
                            $resultado[$i]['orden'] = count($resultado) + 1;
                            $resultado[$i]['numero_pago'] = $resultado_sql[0]['numero_pago'];
                            $resultado[$i]['tipo'] = 'Adjunto Certif. Bancaria';
                            $resultado[$i]['valor_a_pagar'] = $resultado_sql[0]['valor_a_pagar'];
                            $resultado[$i]['nombre_adjunto'] = $record['adjunto_certif_bancaria'];
                            $resultado[$i]['estado'] = $resultado_sql[0]['estado'];
                            $resultado[$i]['nivel_rechazo'] = $resultado_sql[0]['nivel_rechazo'];
                            $resultado[$i]['aprobado'] = $resultado_sql[0]['aprobado'];
                            $resultado[$i]['radicado'] = $resultado_sql[0]['radicado'];
                            $resultado[$i]['autorizado'] = $resultado_sql[0]['autorizado'];
                            $resultado[$i]['revisado'] = $resultado_sql[0]['revisado'];
                            $resultado[$i]['tipo_adjunto'] = 5;

                            $i++;
                        }

                        if ($record['adjunto_aprobacion_supervisor'] != null) {

                            $resultado[$i]['id_adjuntos'] = $i + 1;
                            $resultado[$i]['id_formato_pago'] = $resultado_sql[0]['id_formato_pago'];
                            $resultado[$i]['num_doc'] = $resultado_sql[0]['num_doc'];
                            $resultado[$i]['num_contrato'] = $resultado_sql[0]['num_contrato'];
                            $resultado[$i]['orden'] = count($resultado) + 1;
                            $resultado[$i]['numero_pago'] = $resultado_sql[0]['numero_pago'];
                            $resultado[$i]['tipo'] = 'Adjunto Aprob. Supervisor';
                            $resultado[$i]['valor_a_pagar'] = $resultado_sql[0]['valor_a_pagar'];
                            $resultado[$i]['nombre_adjunto'] = $record['adjunto_aprobacion_supervisor'];
                            $resultado[$i]['estado'] = $resultado_sql[0]['estado'];
                            $resultado[$i]['nivel_rechazo'] = $resultado_sql[0]['nivel_rechazo'];
                            $resultado[$i]['aprobado'] = $resultado_sql[0]['aprobado'];
                            $resultado[$i]['radicado'] = $resultado_sql[0]['radicado'];
                            $resultado[$i]['autorizado'] = $resultado_sql[0]['autorizado'];
                            $resultado[$i]['revisado'] = $resultado_sql[0]['revisado'];
                            $resultado[$i]['tipo_adjunto'] = 5;

                            $i++;
                        }
                    }
                }
            }


            /**
             * Se adiciona el adjunto novedad - 20180829
             */
            if ($id_formato_pago != "") {

                /**
                 * Permite adjuntar los documentos de novedad - 20180829
                 */
                if (isset($request['tag_novedad']) && $request['tag_novedad'] == 1) {

                    //Novedad de prorroga y terminacion 
                    $sql = <<<EOD
select 
forpag.*,
initcap_sofhouse(INITCAP(nov.descripcion_tipnovc)) as descripcion_tipnovc,
nov.adjunto

from RVC_FORMATO_PAGO forpag

join RVC_CONTRATISTA cont
on CONT.ID_CONTRATISTA = forpag.ID_CONTRATISTA

left join (
  SELECT
   aut.*,
   ROW_NUMBER() OVER (
    partition by aut.ID_CONTRATO, aut.ID_TIPO_NOVEDAD_CONT
    ORDER BY aut.ID_CONTRATO, aut.ID_TIPO_NOVEDAD_CONT, aut.fecha_log desc
   ) AS rn
  from rvc_novedad_prorr_termi_v aut
)nov
on nov.id_contrato = forpag.id_contrato
and nov.rn = 1

where
forpag.ID_FORMATO_PAGO = $id_formato_pago   
    
order by
nov.descripcion_tipnovc 
EOD;
                    $records = CN_TABLE::executeSQL($sql);

                    foreach ($records as $record) {

                        if ($record['adjunto'] != null) {

                            $resultado[$i]['id_adjuntos'] = $i + 1;
                            $resultado[$i]['id_formato_pago'] = $resultado_sql[0]['id_formato_pago'];
                            $resultado[$i]['num_doc'] = $resultado_sql[0]['num_doc'];
                            $resultado[$i]['num_contrato'] = $resultado_sql[0]['num_contrato'];
                            $resultado[$i]['orden'] = count($resultado) + 1;
                            $resultado[$i]['numero_pago'] = $resultado_sql[0]['numero_pago'];
                            $resultado[$i]['tipo'] = $record['descripcion_tipnovc'];
                            $resultado[$i]['valor_a_pagar'] = $resultado_sql[0]['valor_a_pagar'];
                            $resultado[$i]['nombre_adjunto'] = $record['adjunto'];
                            $resultado[$i]['estado'] = $resultado_sql[0]['estado'];
                            $resultado[$i]['nivel_rechazo'] = $resultado_sql[0]['nivel_rechazo'];
                            $resultado[$i]['aprobado'] = $resultado_sql[0]['aprobado'];
                            $resultado[$i]['radicado'] = $resultado_sql[0]['radicado'];
                            $resultado[$i]['autorizado'] = $resultado_sql[0]['autorizado'];
                            $resultado[$i]['revisado'] = $resultado_sql[0]['revisado'];
                            $resultado[$i]['tipo_adjunto'] = 6;

                            $i++;
                        }
                    }

                    //Novedad de cesion
                    $sql = <<<EOD
select 
forpag.*,
'Novedad Cesión' as descripcion_tipnovc,
nov.adjunto

from RVC_FORMATO_PAGO forpag

join RVC_CONTRATISTA cont
on CONT.ID_CONTRATISTA = forpag.ID_CONTRATISTA

left join (
  SELECT
   aut.*,
   ROW_NUMBER() OVER (
    partition by aut.ID_CONTRATO
    ORDER BY aut.ID_CONTRATO, aut.fecha_cesion desc, aut.fecha_log desc
   ) AS rn
  from rvc_novedad_cesion_v aut
)nov
on nov.id_contrato = forpag.id_contrato
and nov.rn = 1

where
forpag.ID_FORMATO_PAGO = $id_formato_pago   
EOD;
                    $records = CN_TABLE::executeSQL($sql);

                    foreach ($records as $record) {

                        if ($record['adjunto'] != null) {

                            $resultado[$i]['id_adjuntos'] = $i + 1;
                            $resultado[$i]['id_formato_pago'] = $resultado_sql[0]['id_formato_pago'];
                            $resultado[$i]['num_doc'] = $resultado_sql[0]['num_doc'];
                            $resultado[$i]['num_contrato'] = $resultado_sql[0]['num_contrato'];
                            $resultado[$i]['orden'] = count($resultado) + 1;
                            $resultado[$i]['numero_pago'] = $resultado_sql[0]['numero_pago'];
                            $resultado[$i]['tipo'] = $record['descripcion_tipnovc'];
                            $resultado[$i]['valor_a_pagar'] = $resultado_sql[0]['valor_a_pagar'];
                            $resultado[$i]['nombre_adjunto'] = $record['adjunto'];
                            $resultado[$i]['estado'] = $resultado_sql[0]['estado'];
                            $resultado[$i]['nivel_rechazo'] = $resultado_sql[0]['nivel_rechazo'];
                            $resultado[$i]['aprobado'] = $resultado_sql[0]['aprobado'];
                            $resultado[$i]['radicado'] = $resultado_sql[0]['radicado'];
                            $resultado[$i]['autorizado'] = $resultado_sql[0]['autorizado'];
                            $resultado[$i]['revisado'] = $resultado_sql[0]['revisado'];
                            $resultado[$i]['tipo_adjunto'] = 6;

                            $i++;
                        }
                    }

                    //Novedad de suspension
                    $sql = <<<EOD
select 
forpag.*,
initcap_sofhouse(INITCAP(tipsus.descripcion)) as descripcion_tipnovc,
nov.adjunto

from RVC_FORMATO_PAGO forpag

join RVC_CONTRATISTA cont
on CONT.ID_CONTRATISTA = forpag.ID_CONTRATISTA

left join rvc_novedad_suspension nov
on nov.id_contrato = forpag.id_contrato

left join rvc_tipo_novedad_suspension tipsus
on tipsus.id_tipo_novedad_suspension = nov.id_tipo_novedad_suspension

where
forpag.ID_FORMATO_PAGO = $id_formato_pago  
and (
    nov.fecha_ini BETWEEN forpag.fecha_ini_pago and forpag.fecha_fin_pago
    or
    nov.fecha_fin BETWEEN forpag.fecha_ini_pago and forpag.fecha_fin_pago
) 
    
order by
tipsus.descripcion 
EOD;
                    $records = CN_TABLE::executeSQL($sql);

                    foreach ($records as $record) {

                        if ($record['adjunto'] != null) {

                            $resultado[$i]['id_adjuntos'] = $i + 1;
                            $resultado[$i]['id_formato_pago'] = $resultado_sql[0]['id_formato_pago'];
                            $resultado[$i]['num_doc'] = $resultado_sql[0]['num_doc'];
                            $resultado[$i]['num_contrato'] = $resultado_sql[0]['num_contrato'];
                            $resultado[$i]['orden'] = count($resultado) + 1;
                            $resultado[$i]['numero_pago'] = $resultado_sql[0]['numero_pago'];
                            $resultado[$i]['tipo'] = $record['descripcion_tipnovc'];
                            $resultado[$i]['valor_a_pagar'] = $resultado_sql[0]['valor_a_pagar'];
                            $resultado[$i]['nombre_adjunto'] = $record['adjunto'];
                            $resultado[$i]['estado'] = $resultado_sql[0]['estado'];
                            $resultado[$i]['nivel_rechazo'] = $resultado_sql[0]['nivel_rechazo'];
                            $resultado[$i]['aprobado'] = $resultado_sql[0]['aprobado'];
                            $resultado[$i]['radicado'] = $resultado_sql[0]['radicado'];
                            $resultado[$i]['autorizado'] = $resultado_sql[0]['autorizado'];
                            $resultado[$i]['revisado'] = $resultado_sql[0]['revisado'];
                            $resultado[$i]['tipo_adjunto'] = 6;

                            $i++;
                        }
                    }
                }//fin tag_novedad
            }


            /**
             * Orden de pago tesoreria - 20180910
             */
            if ($id_formato_pago != "") {

                $sql = <<<EOD
select
forpag.*,
tabpag.id_pago_obl_form_pago,
tabpag.id_pago_obl,
tabpag.sgr

from RVC_FORMATO_PAGO forpag

join rvc_pago_obl_form_pago tabpag
on forpag.id_formato_pago = tabpag.id_formato_pago

where
forpag.id_formato_pago = $id_formato_pago   
EOD;
                $records = CN_TABLE::executeSQL($sql);

                foreach ($records as $record) {

                    $resultado[$i]['id_adjuntos'] = $i + 1;
                    $resultado[$i]['id_formato_pago'] = $resultado_sql[0]['id_formato_pago'];
                    $resultado[$i]['num_doc'] = $resultado_sql[0]['num_doc'];
                    $resultado[$i]['num_contrato'] = $resultado_sql[0]['num_contrato'];
                    $resultado[$i]['orden'] = count($resultado) + 1;
                    $resultado[$i]['numero_pago'] = $resultado_sql[0]['numero_pago'];
                    $resultado[$i]['tipo'] = 'Orden de Pago';
                    $resultado[$i]['valor_a_pagar'] = $resultado_sql[0]['valor_a_pagar'];
                    $resultado[$i]['nombre_adjunto'] = "Informe de Orden de Pago";
                    $resultado[$i]['estado'] = $resultado_sql[0]['estado'];
                    $resultado[$i]['nivel_rechazo'] = $resultado_sql[0]['nivel_rechazo'];
                    $resultado[$i]['aprobado'] = $resultado_sql[0]['aprobado'];
                    $resultado[$i]['radicado'] = $resultado_sql[0]['radicado'];
                    $resultado[$i]['autorizado'] = $resultado_sql[0]['autorizado'];
                    $resultado[$i]['revisado'] = $resultado_sql[0]['revisado'];
                    $resultado[$i]['tipo_adjunto'] = 7;
                    $resultado[$i]['id_pago_obl'] = $record['id_pago_obl'];

                    $i++;
                }
            }

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

    // Validate
    /**
     * Ejecuta una validación previa a la ejecución de una operación tipo Add
     *
     * @param sfWebRequest $request
     * @return array 
     */
    protected function validateAdd(sfWebRequest $request) {

        //valor por defecto
        $errors = null;

        /*
         *  Validar la operación, ya sea por SQL
         */

        /*
         *  Generar errores en $errors
         */

        return $errors;
    }

    /**
     * Ejecuta una validación previa a la ejecución de una operación tipo Update
     *
     * @param sfWebRequest $request
     * @return array 
     */
    protected function validateUpdate(sfWebRequest $request) {

        //valor por defecto
        $errors = null;

        /*
         *  Validar la operación, ya sea por SQL
         */

        /*
         *  Generar errores en $errors
         */

        return $errors;
    }

    /**
     * Ejecuta una validación previa a la ejecución de una operación tipo Remove
     *
     * @param sfWebRequest $request
     * @return array 
     */
    protected function validateRemove(sfWebRequest $request) {

        //valor por defecto
        $errors = null;

        /*
         *  Validar la operación, ya sea por SQL
         */

        /*
         *  Generar errores en $errors
         */

        return $errors;
    }

    /**
     * Acciones anteriores a la original
     * 
     * return sfWebRequest Changed Request with additional parameters.
     * 
     * @param type $Action ( ADD, UPDATE, REMOVE )
     * @param sfWebRequest $request
     * @return \sfWebRequest 
     */
    protected function preprocessRequest($Action, sfWebRequest $request) {

        /*
         * Se instancia la clase del manejo del log
         */
        $logger = sfContext::getInstance()->getLogger();
        $logger->info("Entro a preprocessRequest");

        /*
         * Procesar Request
         */
        //accion add
        if ($Action == "ADD") {
            
        }

        //accion update
        if ($Action == "UPDATE") {
            
        }

        //accion remove
        if ($Action == "REMOVE") {
            
        }

        return $request;
    }

    /**
     * Acciones posteriores a la original
     * 
     * return sfWebRequest Changed Request with additional parameters.
     * 
     * @param type $Action ( ADD, UPDATE, REMOVE )
     * @param sfWebRequest $request
     * @return \sfWebRequest 
     */
    protected function postprocessRequest($Action, sfWebRequest $request, $list_data_post) {

        /*
         * Se instancia la clase del manejo del log
         */
        $logger = sfContext::getInstance()->getLogger();
        $logger->info("Entro a postprocessRequest - " . $list_data_post);

        /*
         * Procesar Request
         */
        //accion add
        if ($Action == "ADD") {
            
        }

        //accion update
        if ($Action == "UPDATE") {
            
        }

        //accion remove
        if ($Action == "REMOVE") {
            
        }

        return $request;
    }

}
