<?php

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

    /**
     * Executes list donde actualiza adjuntos del formato de pago, genera rvc_log - 20180906
     *
     * @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 ';
        }


        $this->conn = Doctrine_Manager::getInstance()->getCurrentConnection();
        $this->conn->beginTransaction();


        /*
         * Manejo de errores
         */
        try {
            /*
             * Variables obligatorias
             */
            $id_formato_pago = $request['id_formato_pago'];

            /*
             * Variables opcionales
             */
            //adjunto_acta_inicio
            if (isset($request['adjunto_acta_inicio'])) {
                $adjunto_acta_inicio = $request['adjunto_acta_inicio'];
            } else {
                $adjunto_acta_inicio = '';
            }
            //adjunto_salud
            if (isset($request['adjunto_salud'])) {
                $adjunto_salud = $request['adjunto_salud'];
            } else {
                $adjunto_salud = '';
            }
            //adjunto_pension
            if (isset($request['adjunto_pension'])) {
                $adjunto_pension = $request['adjunto_pension'];
            } else {
                $adjunto_pension = '';
            }
            //adjunto_fsp
            if (isset($request['adjunto_fsp'])) {
                $adjunto_fsp = $request['adjunto_fsp'];
            } else {
                $adjunto_fsp = '';
            }
            //adjunto_arl
            if (isset($request['adjunto_arl'])) {
                $adjunto_arl = $request['adjunto_arl'];
            } else {
                $adjunto_arl = '';
            }
            //adjunto_planilla_opcional
            if (isset($request['adjunto_planilla_opcional'])) {
                $adjunto_planilla_opcional = $request['adjunto_planilla_opcional'];
            } else {
                $adjunto_planilla_opcional = '';
            }
            //adjunto_afc
            if (isset($request['adjunto_afc'])) {
                $adjunto_afc = $request['adjunto_afc'];
            } else {
                $adjunto_afc = '';
            }
            //adjunto_volunt
            if (isset($request['adjunto_volunt'])) {
                $adjunto_volunt = $request['adjunto_volunt'];
            } else {
                $adjunto_volunt = '';
            }
            //adjunto_vivienda
            if (isset($request['adjunto_vivienda'])) {
                $adjunto_vivienda = $request['adjunto_vivienda'];
            } else {
                $adjunto_vivienda = '';
            }
            //adjunto_depen
            if (isset($request['adjunto_depen'])) {
                $adjunto_depen = $request['adjunto_depen'];
            } else {
                $adjunto_depen = '';
            }
            //adjunto_factura
            if (isset($request['adjunto_factura'])) {
                $adjunto_factura = $request['adjunto_factura'];
            } else {
                $adjunto_factura = '';
            }
            //adjunto_medicina
            if (isset($request['adjunto_medicina'])) {
                $adjunto_medicina = $request['adjunto_medicina'];
            } else {
                $adjunto_medicina = '';
            }
            //adjunto_cert_salud
            if (isset($request['adjunto_cert_salud'])) {
                $adjunto_cert_salud = $request['adjunto_cert_salud'];
            } else {
                $adjunto_cert_salud = '';
            }

            //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);

            $resultado = array();

            /*
             * variables por defecto para el registro de log
             */
            $id_tabla = $request['id_formato_pago'];

            /*
             * obtener id maestro tabla
             */
            $id_mae_bd = CN_TABLE::consultarIdTablaBD('NO_FORMATO_PAGO');

            /**
              1	CONSULTAR
              2	ACTUALIZAR
              3	ADICIONAR
              4	ELIMINAR
              5	ANULAR
             */
            $id_ope_bd = 2;

            //id del maestro tercero
            $id_mae_ter = 1;
            if (isset($request['id_username'])) {
                $id_mae_ter = $request['id_username'];
            }

            //username
            $username = 'admin';
            if (isset($request['username'])) {
                if (!is_null($request['username']) && $request['username'] != '') {
                    $username = $request['username'];
                }
            }

            //comando de la funcionalidad
            $comando = 'sin comando';
            if (isset($request['comando'])) {
                $comando = $request['comando'];
            }

            //construir observacion
            $observacion_log = "'Se actualizo tabla de formato de pago desde la funcionalidad de adjuntos: " . $comando . "'";

            /*
             * registro de consulta en tabla de log
             */
            $sql = CN_TABLE::registroTableLog($id_tabla, $id_ope_bd, $id_mae_bd, $id_mae_ter, $username, $comando, $observacion_log);


            /**
             * Actualiza el formato de pago por id
             */
            $sql = <<<EOD
update rvc_formato_pago 
set 
adjunto_acta_inicio = nvl('$adjunto_acta_inicio',adjunto_acta_inicio),
adjunto_salud = nvl('$adjunto_salud',adjunto_salud),
adjunto_pension = nvl('$adjunto_pension',adjunto_pension),
adjunto_fsp = nvl('$adjunto_fsp',adjunto_fsp),
adjunto_arl = nvl('$adjunto_arl',adjunto_arl),
adjunto_planilla_opcional = nvl('$adjunto_planilla_opcional',adjunto_planilla_opcional),
adjunto_afc = nvl('$adjunto_afc',adjunto_afc),
adjunto_volunt = nvl('$adjunto_volunt',adjunto_volunt),
adjunto_vivienda = nvl('$adjunto_vivienda',adjunto_vivienda),
adjunto_depen = nvl('$adjunto_depen',adjunto_depen),
adjunto_factura = nvl('$adjunto_factura',adjunto_factura),
adjunto_medicina = nvl('$adjunto_medicina',adjunto_medicina),
adjunto_cert_salud = nvl('$adjunto_cert_salud',adjunto_cert_salud)
                    
where
id_formato_pago = $id_formato_pago 
EOD;
            $this->conn->execute($sql);


            /**
             * Genera log
             */
            /**
              1	CONSULTAR
              2	ACTUALIZAR
              3	ADICIONAR
              4	ELIMINAR
              5	ANULAR
             */
            $id_ope_bd = 2;

            //construir observacion
            $observacion_log = "'[adm_adj_formato_pago] Genera actualización de formato de pago adjuntos'";

            /*
             * registro de consulta en tabla de log
             */
            $sql = CN_TABLE::registroTableLog($id_tabla, $id_ope_bd, $id_mae_bd, $id_mae_ter, $username, $comando, $observacion_log);

            //COMMIT DE TODAS LAS TRANSACCIONES
            $this->conn->commit();

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

            //ROLLBACK DE TODAS LAS TRANSACCIONES EN CASO DE QUE OCURRA ALGUN ERROR
            $this->conn->rollback();
            $mensaje = "ROLLBACK DE TODAS LAS TRANSACCIONES";

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

}
