<?php

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

        /*
         * Manejo de errores
         */
        try {


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

            /*
             * Variables de filtro
             */
            $id_ts_pc_fp = $request['id_ts_pc_fp'];

            if ($id_ts_pc_fp != 1) {
                if(isset($request['id_bn']) && isset($request['id_cb']) && isset($request['num_doc'])){

                    $id_bn = $request['id_bn'];
                    $id_cb = $request['id_cb'];
                    $num_doc = $request['num_doc'];
                    $fecha_doc = $request['fecha_doc'];

                    /*
                     * si ya existe una combinación de No. Documento, Banco, cuenta, Fecha
                     * si la factura esta activa con los datos anteriores.
                     */
                    //sentencia sql
                    $sql = <<<EOD
    select 
    facpos.estado,
    facpag.* 
    from ca_factura_pago facpag
    join ca_factura_pos facpos
    on facpos.id_factura = facpag.id_factura
    where 
    facpag.num_doc = '$num_doc' and facpos.estado = 1
    and facpag.id_bn = $id_bn and facpag.id_cb = $id_cb
    and facpag.fecha_doc = to_date('$fecha_doc','YYYY-MM-DD')
EOD;
                    //ejecuta el sql
                    $resultado = CN_TABLE::executeSQL($sql);

                    $this->list_data = $resultado;
                    $this->logMessage("[validar_doc_pos] Ya existe para el banco y la cuenta seleccionados, el numero de documento en otra factura.");
                }else{
                    $this->list_data = array();
                    $this->logMessage("[validar_doc_pos] No se establecio banco,cuenta y numero de documento.");
                }
            } else {

                $this->list_data = array();
                $this->logMessage("[validar_doc_pos] Efectivo.");
            }
        } catch (Exception $e) {

            $mensaje = "[validar_doc_pos] ERROR!!!";

            $this->status = 1;
            $this->mensajeError = $mensaje;
            $this->list_data = array();
            $this->logMessage($mensaje);
            $this->logMessage($e->getMessage());
        }
    }

}
