<?php

/**
 * actualiza_salario actions
 *
 * @package    nomina
 * @subpackage afilia_fondo
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith 
 */
class actualiza_salarioActions 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");

        /*
         * 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 id_cen_op, num_doc';
        }


        /*
         * Manejo de errores
         */
        try {
            /*
             * Variables obligatorias
             */
            $periodo_filtro = $request['id_periodo_filtro'];
            $periodo = $request['id_periodo'];

            /*
             * Variables opcionales
             */
            //funcionario
            if (isset($request['num_doc'])) {
                $whereFuncionarioNumDoc = " AND tab0.num_doc = " . $request['num_doc'];
            } else {
                $whereFuncionarioNumDoc = ' ';
            }
            //funcionario
            if (isset($request['id_tipo_doc'])) {
                $whereFuncionarioTipoDoc = " AND tab0.id_tipo_doc = " . $request['id_tipo_doc'];
            } else {
                $whereFuncionarioTipoDoc = ' ';
            }
            //centro operacion
            if (isset($request['id_cen_op'])) {
                $whereCenOpe = " AND tab0.id_cen_op = " . $request['id_cen_op'];
            } else {
                $whereCenOpe = ' ';
            }

            //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
             * por los filtros, para totalizar las filas
             */
            $sql = <<<EOD
select count(*) as count from (

select
tab0.id_tipo_doc,
tab0.num_doc,
tab0.nombre_completo,
tab0.nombre_apellido,
tab0.componente as cargo,
tab0.area as dependencia,
tab0.asignacion_basica,
nvl(tab0.devengados,0) as devengados,
nvl(tab0.deducidos,0) as deducidos,
nvl(tab0.devengados,0)-nvl(tab0.deducidos,0) as neto,
tab0.id_periodo,
tab0.banco,
tab0.cuenta,
tab0.id_cen_op,
nvl(tab0.centro,'Sin Especificar') as centro,
(select distinct periodo.periodo from no_periodo_v periodo where periodo.id_periodo = $periodo_filtro) as periodo,
(
select distinct concep.porcentaje
from no_concepto_periodo concep
join no_param_concep param on param.id_concep_rete = concep.id_concep_nomina
where concep.num_doc = tab0.num_doc and concep.periodo = $periodo_filtro
) as retefuente

from(

select
func.id_tipo_doc,
func.num_doc,
datos.nombre_completo,
datos.nombre_apellido,
cargo.componente,
cargo.area,
cargo.asignacion_basica,
deven.valor as devengados,
deduc.valor as deducidos,
deven.id_periodo as id_periodo,
banco.descripcion as banco,
pago.num_cuenta as cuenta,
cargo.id_cen_op as id_cen_op,
cargo.centro as centro

from no_estado_func func

left join no_dp_v cargo on cargo.id_dp = func.id_dp
left join no_datos_funcionario_v datos on datos.num_doc = func.num_doc and datos.id_tipo_doc = func.id_tipo_doc
left join(

select liquida.id_tipo_doc,liquida.num_doc,liquida.id_periodo,sum(liquida.valor_liquidado) as valor
from no_liquida_nomina liquida
left join no_concep_nomina concep on concep.id_concep_nomina = liquida.id_concep_nomina
where concep.id_tipo_concepto = 1 and liquida.id_periodo = $periodo_filtro
group by liquida.id_tipo_doc,liquida.num_doc,liquida.id_periodo

) deven on deven.id_tipo_doc = func.id_tipo_doc and deven.num_doc = func.num_doc and deven.id_periodo = func.periodo
left join(

select liquida.id_tipo_doc,liquida.num_doc,liquida.id_periodo,sum(liquida.valor_liquidado) as valor
from no_liquida_nomina liquida
left join no_concep_nomina concep on concep.id_concep_nomina = liquida.id_concep_nomina
where concep.id_tipo_concepto  !=1 and liquida.id_periodo = $periodo_filtro
group by liquida.id_tipo_doc,liquida.num_doc,liquida.id_periodo

) deduc on deduc.id_tipo_doc = func.id_tipo_doc and deduc.num_doc = func.num_doc and deduc.id_periodo = func.periodo
left join no_pago_func pago on pago.id_tipo_doc = func.id_tipo_doc and pago.num_doc = func.num_doc AND pago.estado = 1
left join ts_bn banco on banco.id_bn = pago.id_bn

left join (
  SELECT
   aut.*,
   ROW_NUMBER() OVER (
    partition by aut.num_doc
    ORDER BY aut.estado DESC
   ) AS rn
  from no_nombramiento aut
)nombra
on nombra.id_tipo_doc = func.id_tipo_doc 
and nombra.num_doc = func.num_doc
and nombra.rn = 1

where func.periodo = $periodo_filtro 
and (func.actual = 1 or 
  ( func.actual = 0 and nombra.fecha_retiro 
  between to_date('01/'|| (select lpad(id_meses,2,'0') ||'/'||id_anhos from no_periodo where id_periodo = $periodo_filtro) ,'dd/mm/yyyy')
   and trunc(last_day( TO_DATE('01/'|| (SELECT LPAD(ID_MESES,2,'0') ||'/'||ID_ANHOS FROM NO_PERIODO WHERE ID_PERIODO = $periodo) ,'dd/mm/yyyy') )) + 1
  )
)

)tab0

where 1 = 1
and tab0.id_periodo is not null
$whereFuncionarioNumDoc
$whereFuncionarioTipoDoc
$whereCenOpe   

)
EOD;


            $total_record_count = CN_TABLE::executeSQL($sql);
            $total_record_count = $total_record_count[0]["count"];


            //obtener el listado de recaudos
            $sql = <<<EOD
SELECT * FROM ( SELECT row_.*, ROWNUM rownum_ FROM (

select
tab0.id_tipo_doc,
tab0.num_doc,
tab0.nombre_completo,
tab0.nombre_apellido,
tab0.componente as cargo,
tab0.area as dependencia,
tab0.asignacion_basica,
nvl(tab0.devengados,0) as devengados,
nvl(tab0.deducidos,0) as deducidos,
nvl(tab0.devengados,0)-nvl(tab0.deducidos,0) as neto,
tab0.id_periodo,
tab0.banco,
tab0.cuenta,
tab0.id_cen_op,
nvl(tab0.centro,'Sin Especificar') as centro,
(select distinct periodo.periodo from no_periodo_v periodo where periodo.id_periodo = $periodo_filtro) as periodo,
(
select distinct concep.porcentaje
from no_concepto_periodo concep
join no_param_concep param on param.id_concep_rete = concep.id_concep_nomina
where concep.num_doc = tab0.num_doc and concep.periodo = $periodo_filtro
) as retefuente

from(

select
func.id_tipo_doc,
func.num_doc,
datos.nombre_completo,
datos.nombre_apellido,
cargo.componente,
cargo.area,
cargo.asignacion_basica,
deven.valor as devengados,
deduc.valor as deducidos,
deven.id_periodo as id_periodo,
banco.descripcion as banco,
pago.num_cuenta as cuenta,
cargo.id_cen_op as id_cen_op,
cargo.centro as centro

from no_estado_func func

left join no_dp_v cargo on cargo.id_dp = func.id_dp
left join no_datos_funcionario_v datos on datos.num_doc = func.num_doc and datos.id_tipo_doc = func.id_tipo_doc
left join(

select liquida.id_tipo_doc,liquida.num_doc,liquida.id_periodo,sum(liquida.valor_liquidado) as valor
from no_liquida_nomina liquida
left join no_concep_nomina concep on concep.id_concep_nomina = liquida.id_concep_nomina
where concep.id_tipo_concepto = 1 and liquida.id_periodo = $periodo_filtro
group by liquida.id_tipo_doc,liquida.num_doc,liquida.id_periodo

) deven on deven.id_tipo_doc = func.id_tipo_doc and deven.num_doc = func.num_doc and deven.id_periodo = func.periodo
left join(

select liquida.id_tipo_doc,liquida.num_doc,liquida.id_periodo,sum(liquida.valor_liquidado) as valor
from no_liquida_nomina liquida
left join no_concep_nomina concep on concep.id_concep_nomina = liquida.id_concep_nomina
where concep.id_tipo_concepto  !=1 and liquida.id_periodo = $periodo_filtro
group by liquida.id_tipo_doc,liquida.num_doc,liquida.id_periodo

) deduc on deduc.id_tipo_doc = func.id_tipo_doc and deduc.num_doc = func.num_doc and deduc.id_periodo = func.periodo
left join no_pago_func pago on pago.id_tipo_doc = func.id_tipo_doc and pago.num_doc = func.num_doc AND pago.estado = 1
left join ts_bn banco on banco.id_bn = pago.id_bn

left join (
  SELECT
   aut.*,
   ROW_NUMBER() OVER (
    partition by aut.num_doc
    ORDER BY aut.estado DESC
   ) AS rn
  from no_nombramiento aut
)nombra
on nombra.id_tipo_doc = func.id_tipo_doc 
and nombra.num_doc = func.num_doc
and nombra.rn = 1

where func.periodo = $periodo_filtro 
and (func.actual = 1 or 
  ( func.actual = 0 and nombra.fecha_retiro
  between to_date('01/'|| (select lpad(id_meses,2,'0') ||'/'||id_anhos from no_periodo where id_periodo = $periodo_filtro) ,'dd/mm/yyyy')
   and trunc(last_day( TO_DATE('01/'|| (SELECT LPAD(ID_MESES,2,'0') ||'/'||ID_ANHOS FROM NO_PERIODO WHERE ID_PERIODO = $periodo) ,'dd/mm/yyyy') )) + 1
  )
)

)tab0

where 1 = 1
and tab0.id_periodo is not null
$whereFuncionarioNumDoc
$whereFuncionarioTipoDoc
$whereCenOpe   
    
$sortBy
          
) row_ WHERE ROWNUM <=  $rowEnd   ) where rownum_ >  $rowStart
EOD;
            //ejecuta y obtiene el resultado del sql
            $resultado = CN_TABLE::executeSQL($sql);


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

    /**
     * 
     * @param sfWebRequest $request
     */
    public function executeAdd(sfWebRequest $request) {

        $logger = sfContext::getInstance()->getLogger();
        $logger->info("Entro a executeAdd");

        /*
         * Manejar Errores
         */
        $this->conn = Doctrine_Manager::getInstance()->getCurrentConnection();
        $this->conn->beginTransaction();


        try {

            //PARAMETROS


            $periodo_filtro = $request['id_periodo'];
            $periodo = $request['id_periodo_filtro'];
            $fecha_desde_a = $request['fecha_ini'];


            /*
             * Variables opcionales
             */
            //funcionario
            if (isset($request['num_doc'])) {
                $whereFuncionarioNumDoc = " AND tab0.num_doc = " . $request['num_doc'];
            } else {
                $whereFuncionarioNumDoc = ' ';
            }
            //funcionario
            if (isset($request['id_tipo_doc'])) {
                $whereFuncionarioTipoDoc = " AND tab0.id_tipo_doc = " . $request['id_tipo_doc'];
            } else {
                $whereFuncionarioTipoDoc = ' ';
            }

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


            //ACTUALIZAR LA TABLA DE NO_CONCEPTO_FUNC ASIGNACION BASICA

            $sql = <<<EOD
select tab0.*
from no_concepto_func tab0

where tab0.fecha_desde<to_date('$fecha_desde_a','YYYY-MM-DD') 
    and tab0.id_concep_nomina = 1                     
$whereFuncionarioNumDoc $whereFuncionarioTipoDoc
EOD;

            $resultado = CN_TABLE::executeSQL($sql);
if(count($resultado)>0){
            foreach ($resultado as $resul) {

                $id_concep_func = $resul['id_concep_func'];
                $id_tipo_doc = $resul['id_tipo_doc'];
                $num_doc = $resul['num_doc'];
                $id_concep_nomina = $resul['id_concep_nomina'];
                $valor = $resul['valor'];
                $porcentaje = $resul['porcentaje'];
                $estado = $resul['estado'];
                $actual = $resul['actual'];
                $fecha_desde = $resul['fecha_desde'];
                $fecha_hasta = $resul['fecha_hasta'];

                $sql = <<<EOD
update no_concepto_func set fecha_hasta = to_date('$fecha_desde_a','YYYY-MM-DD')-1, 
    estado = 0, actual = 0 where id_concep_func = $id_concep_func      
EOD;
                CN_TABLE::executeSQL($sql);

                $sql = <<<EOD
insert into no_concepto_func (ID_TIPO_DOC,NUM_DOC,ID_CONCEP_NOMINA,VALOR,ESTADO,ACTUAL,FECHA_DESDE)
         VALUES ($id_tipo_doc,$num_doc,$id_concep_nomina,
(select nvl(tab2.asignacion_basica,0)
from no_estado_func_v tab1
left join no_dp_v tab2 ON tab2.id_dp = tab1.id_dp
where tab1.rn = 1 and tab1.num_doc = $num_doc 
    and tab1.actual = 1 and tab1.periodo = $periodo),1,1,to_date('$fecha_desde_a','YYYY-MM-DD') )
EOD;
                CN_TABLE::executeSQL($sql);
            }
}else{
            //ACTUALIZAR LA TABLA DE NO_CONCEPTO_FUNC ASIGNACION BASICA

            $sql = <<<EOD
select tab0.*
from no_concepto_func tab0

where tab0.fecha_desde>=to_date('$fecha_desde_a','YYYY-MM-DD') and tab0.id_concep_nomina=1
                     
$whereFuncionarioNumDoc
EOD;

            $resultado = CN_TABLE::executeSQL($sql);

            foreach ($resultado as $resul) {

                $id_concep_func = $resul['id_concep_func'];
                $id_tipo_doc = $resul['id_tipo_doc'];
                $num_doc = $resul['num_doc'];
                $id_concep_nomina = $resul['id_concep_nomina'];
                $valor = $resul['valor'];
                $porcentaje = $resul['porcentaje'];
                $estado = $resul['estado'];
                $actual = $resul['actual'];
                $fecha_desde = $resul['fecha_desde'];
                $fecha_hasta = $resul['fecha_hasta'];

                $sql = <<<EOD
update no_concepto_func set fecha_hasta = fecha_desde, estado= 0, actual=0 where id_concep_func = $id_concep_func      
EOD;
                CN_TABLE::executeSQL($sql);

                $sql = <<<EOD
                insert into no_concepto_func (ID_TIPO_DOC,NUM_DOC,ID_CONCEP_NOMINA,VALOR,ESTADO,ACTUAL,FECHA_DESDE)
                         VALUES ($id_tipo_doc,$num_doc,$id_concep_nomina,(select nvl(tab2.asignacion_basica,0)

from no_estado_func_v tab1
left join no_dp_v tab2 ON tab2.id_dp = tab1.id_dp
where tab1.rn=1 and tab1.num_doc = $num_doc and tab1.actual = 1 and tab1.periodo=$periodo
),1,1,to_date('$fecha_desde_a','YYYY-MM-DD'))
EOD;
                CN_TABLE::executeSQL($sql);
            }

}


//ACTUALIZAR LA TABLA DE NO_CONCEPTO_FUNC CONCEPTOS ASOCIADOS A LA ASIGNACION BASICA

            $sql = <<<EOD
update no_concepto_func tab0 set tab0.valor = 

(
select tab2.asignacion_basica

from no_estado_func_v tab1
left join no_dp_v tab2 ON tab2.id_dp = tab1.id_dp
where tab1.rn=1 and tab1.num_doc = tab0.num_doc and tab1.actual = 1 and tab1.periodo=$periodo

) * tab0.porcentaje / 100

where tab0.estado = 1 and tab0.actual = 1 


and exists (select tab1.id_concep_nomina from no_agrup_deta tab1 
    where tab1.id_concep_nomina = tab0.id_concep_nomina and tab1.id_agrup_concepto=103)

$whereFuncionarioNumDoc
EOD;

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

//ACTUALIZAR LA TABLA DE CONCEPTO_PERIODO
            //A. AQUELLOS FUNCIONARIOS QUE NO HAYAN TENIDO NINGUNA NOVEDAD DE PERSONAL


            $sql = <<<EOD
select tab0.num_doc

from(

select tab1.num_doc,tab1.periodo, count(tab1.id_concepto_periodo) AS CANTIDAD

from no_concepto_periodo tab1


where tab1.id_concep_nomina = 1

group by tab1.num_doc,tab1.periodo
)
tab0
where tab0.cantidad =1 and tab0.periodo = $periodo
                       
$whereFuncionarioNumDoc
EOD;

            $resultado = CN_TABLE::executeSQL($sql);

            foreach ($resultado as $resul) {

                $documento = $resul['num_doc'];

                $sql = <<<EOD
update no_concepto_periodo tab0 set tab0.valor = 

(
select tab2.asignacion_basica

from no_estado_func_v tab1
left join no_dp_v tab2 ON tab2.id_dp = tab1.id_dp
where tab1.rn=1 and tab1.num_doc = tab0.num_doc and tab1.actual = 1 and tab1.periodo=$periodo

)

where tab0.periodo = $periodo and tab0.id_concep_nomina = 1
and tab0.num_doc = $documento
EOD;

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

                $sql = <<<EOD
update no_concepto_periodo tab0 set tab0.valor = 

(
select tab2.asignacion_basica

from no_estado_func_v tab1
left join no_dp_v tab2 ON tab2.id_dp = tab1.id_dp
where tab1.rn=1 and tab1.num_doc = tab0.num_doc and tab1.actual = 1 and tab1.periodo=$periodo

) * tab0.porcentaje / 100

where tab0.periodo = $periodo and tab0.num_doc = $documento
and exists (select tab1.id_concep_nomina from no_agrup_deta tab1 
    where tab1.id_concep_nomina = tab0.id_concep_nomina and tab1.id_agrup_concepto=103)


EOD;

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


            //B. AQUELLOS FUNCIONARIOS QUE TUVIERON ALGUNA NOVEDAD DE PERSONAL

            $sql = <<<EOD
select tab0.num_doc

from(

select tab1.num_doc,tab1.periodo, count(tab1.id_concepto_periodo) AS CANTIDAD

from no_concepto_periodo tab1


where tab1.id_concep_nomina = 1

group by tab1.num_doc,tab1.periodo
)
tab0
where tab0.cantidad >1 and tab0.periodo = $periodo
                       
$whereFuncionarioNumDoc
EOD;

            $resultado = CN_TABLE::executeSQL($sql);

            foreach ($resultado as $resul) {

                $documento = $resul['num_doc'];

                $sql = <<<EOD
update no_concepto_periodo tab0 set tab0.valor = 

(
select tab2.asignacion_basica

from no_estado_func_v tab1
left join no_dp_v tab2 ON tab2.id_dp = tab1.id_dp
where tab1.rn=1 and tab1.num_doc = tab0.num_doc and tab1.actual = 1 and tab1.periodo=$periodo

)

where tab0.periodo = $periodo and tab0.id_concep_nomina = 1
and tab0.num_doc = $documento 
   
and tab0.id_concepto_periodo IN(

select max(conc.id_concepto_periodo) ID_CONCEPTO_PERIODO

from no_concepto_periodo conc

where conc.num_doc=$documento and conc.id_concep_nomina = 1 and conc.periodo = $periodo

)
              
              
EOD;

                CN_TABLE::executeSQL($sql);

                $sql = <<<EOD
update no_concepto_periodo tab0 set tab0.valor = 

(
select tab2.asignacion_basica

from no_novedad_personal tab1
left join no_dp_v tab2 ON tab2.id_dp = tab1.id_dp_ini
where tab1.num_doc = tab0.num_doc and tab1.id_periodo=$periodo

)

where tab0.periodo = $periodo and tab0.id_concep_nomina = 1
and tab0.num_doc = $documento 
   
and tab0.id_concepto_periodo IN(

select min(conc.id_concepto_periodo) ID_CONCEPTO_PERIODO

from no_concepto_periodo conc

where conc.num_doc=$documento and conc.id_concep_nomina = 1 and conc.periodo = $periodo

)
              
              
EOD;

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


                $sql = <<<EOD
update no_concepto_periodo tab0 set tab0.valor = 

(
select tab2.asignacion_basica

from no_estado_func_v tab1
left join no_dp_v tab2 ON tab2.id_dp = tab1.id_dp
where tab1.rn=1 and tab1.num_doc =  $documento and tab1.actual = 1 and tab1.periodo=$periodo

) * tab0.porcentaje / 100

where tab0.periodo = $periodo  and exists (select tab1.id_concep_nomina 
    from no_agrup_deta tab1 where tab1.id_concep_nomina = tab0.id_concep_nomina 
        and tab1.id_agrup_concepto=103)
and tab0.num_doc = $documento 
   
and tab0.id_concepto_periodo IN(

select max(conc.id_concepto_periodo) ID_CONCEPTO_PERIODO

from no_concepto_periodo conc

where conc.num_doc=$documento and exists (select tab1.id_concep_nomina 
    from no_agrup_deta tab1 where tab1.id_concep_nomina = conc.id_concep_nomina 
        and tab1.id_agrup_concepto=103) and conc.periodo = $periodo

)

EOD;

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

                $sql = <<<EOD
update no_concepto_periodo tab0 set tab0.valor = 

(
select tab2.asignacion_basica

from no_novedad_personal tab1
left join no_dp_v tab2 ON tab2.id_dp = tab1.id_dp_ini
where tab1.num_doc = tab0.num_doc and tab1.id_periodo=$periodo
) * tab0.porcentaje / 100

where tab0.periodo = $periodo 
    and exists (select tab1.id_concep_nomina from no_agrup_deta tab1 where tab1.id_concep_nomina = tab0.id_concep_nomina and tab1.id_agrup_concepto=103)
and tab0.num_doc = $documento 
   
and tab0.id_concepto_periodo IN(

select min(conc.id_concepto_periodo) ID_CONCEPTO_PERIODO

from no_concepto_periodo conc

where conc.num_doc=$documento and exists (select tab1.id_concep_nomina from no_agrup_deta tab1 
    where tab1.id_concep_nomina = conc.id_concep_nomina and tab1.id_agrup_concepto=103) 
        and conc.periodo = $periodo

)

EOD;

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

            } 

            $this->conn->commit();

            $records = array();

            $this->totalRows = 0;
            $this->startRow = 0;
            $this->endRow = 0;
            $this->list_data = $records;
            $this->logMessage("[actualiza_salario] Consulta exitosa.");
        } catch (Exception $e) {

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

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

}
