<?php

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

    /**
     * Metodo list de accesos
     *
     * @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");


        /*
         * Manejo de errores
         */
        try {

            /*
             * Variables Obligatorias
             */
            $id_titulo = $request['id_titulo'];
            //TIPO ROL PERSONA TITULAR
            $tipo_rol_titular=26;

            $sql = <<<EOD
select 

titper.*

from rmn_titulo_persona_mv titper

join (
  SELECT 
   titper.*,
   ROW_NUMBER() OVER (
    PARTITION BY titper.id_titulo
    ORDER BY titper.id_titulo_persona ASC
   ) AS rn
  from rmn_titulo_persona_mv titper
  where titper.actual = 1 AND titper.ID_ROL_TITULO=$tipo_rol_titular
)tab
on titper.id_titulo_persona = tab.id_titulo_persona
and titper.id_titular = tab.id_titular
and tab.rn = 1

where titper.id_titulo = $id_titulo

order by
titper.id_titulo_persona 
EOD;

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

                   // Solo registra log la primera vez de consulta
                //if ($rowStart == 0) {
                    //Operaciones: 1-CONSULTAR, 2-ACTUALIZAR, 3-ADICIONAR, 4-ELIMINAR, 5-ANULAR
                    $id_ope_bd = 1;
                    //obtener id maestro tabla
                    $id_mae_bd = CN_TABLE::consultarIdTablaBD('rmn_titulo_persona');
                    //registro de consulta en tabla de log- la observacion puede o no enviarse ($request, $id_ope_bd, $id_mae_bd, $observacion)
                    $sql = CN_TABLE::registrarLog($request, $id_ope_bd, $id_mae_bd);
           //     }
            
            $this->status = 0;
            $this->list_data = $records;
            $this->logMessage("[PRIMER_TITULO_PERSONA] Consulta exitosa.");
        } catch (Exception $e) {
            $this->status = -1;
            $this->list_data = array();
            $this->logMessage("[PRIMER_TITULO_PERSONA] Consulta Erronea.");
        }
    }

}
