<?php

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

    /**
     * Anexo de columnas y filtros nuevos del informe - 20150515
     * @param sfWebRequest $request
     */
    public function executePdf(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");

        /*
         * Variables obligatorias
         */
        $id_anhos = $request['id_anhos'];
        $id_proyecto = $request['id_proyecto'];
        $id_firma = $request['id_firma'];
        $fecha_ini = $request['fecha_ini'];
        $fecha_fin = $request['fecha_fin'];


        /*
         * Variables opcionales
         */
        $whereNoPago = "";
        if (isset($request['no_pago'])) {
            $whereNoPago = " AND tab0.no_pago = " . $request['no_pago'];
        }
        $whereNoCaja = "";
        $no_caja = "Todas";
        if (isset($request['no_caja'])) {
            $no_caja = $request['no_caja'];
            $whereNoCaja = " AND tab0.no_caja = " . $request['no_caja'];
            $whereMenorNoCaja = "and tab4.no_caja < " . $request['no_caja'];
        }
        $whereNoComision = "";
        if (isset($request['no_comision'])) {
            $whereNoComision = " AND tab0.no_comision = " . $request['no_comision'];
        }
        $whereNoResolucion = "";
        if (isset($request['no_resolucion'])) {
            $whereNoResolucion = " AND tab0.no_resolucion = " . $request['no_resolucion'];
        }

        $consul = Doctrine_Manager::getInstance()->connection();

        $sql = "select * from proyectos where id=" . $id_proyecto;
        $st = $consul->execute($sql);
        $cajas = $st->fetchAll();

        $descripcion_caja = $cajas[0]['DESCRIPCION'];


        $pdf = new CDPDF('L', 'mm', 'letter');
        $pdf->SetFont('Times', 'B', 8);
        $pdf->SetFillColor(255);
        $pdf->SetTextColor(0);
        $pdf->setTipo("1");
        $pdf->setTitulo("RELACIÓN DE PAGOS CAJA MENOR");
        // Header
        $pdf->AddPage();

        $pdf->SetFont('Times', 'B', 14);

        $html = '<p style="text-align:center"><b> RELACIÓN DE PAGOS CAJA MENOR ' . $descripcion_caja . '<br/>520-1000-1-0-2-2 ADMINISTRACIÓN SISTEMA NACIONAL DE CIENCIA Y TECNOLOGIA.<br/>CAJA Nº ' . $no_caja . '</b></p>';
        //$html = '<p style="text-align:center"><b>RELACION DE PAGOS ' . $descripcion_caja . ' ' . $id_anhos . '<br/>520-1000-1-0-2-2 ADMINISTRACION SISTEMA NACIONAL DE CIENCIA Y TECNOLOGIA.<br/>CAJA No. ' . $no_caja . '</b></p>';

        $pdf->SetFont('Times', 'B', 7);

        $valor_asignado = 0;

        $saldo = 0;

        /**
         * Traer el valor inicial del proyecto
         */
        //sentencia sql
        $sql = <<<EOD
select sum(tab0.valor_asignado) as valor
from COM_DETALLE_PRESUP tab0
where tab0.ID_PROYECTO = $id_proyecto 
EOD;
        $st = $consul->execute($sql);
        $detalle = $st->fetchAll();

        $valor_asignado = $detalle[0]['VALOR'];

        /**
         * TRAER SALDO ACTUAL
         */
        //sentencia sql
        $sql = <<<EOD
SELECT 
NVL(sum(VALOR_PAGO),0) PAGOS, 
NVL(SUM(VALOR_ANULA),0) ANULA_PAGOS, 
NVL(SUM(VALOR_REIN),0) REINTEGROS, 
NVL(SUM(ANUL_REIN),0) ANULA_REIN,
NVL(SUM(VALOR_REEM),0) VALOR_REEM,
NVL(SUM(ANUL_REEM),0) ANUL_REEM
                
FROM(

    select distinct 
    tab0.ID_PAGO_EGRESO,
    nvl(tab0.VALOR_NETO,0) VALOR_PAGO,
    nvl(tab1.valor,0) VALOR_ANULA,
    nvl(tab2.valor,0) VALOR_REIN,
    nvl(tab3.valor,0) ANUL_REIN,
    nvl(tab4.valor,0) VALOR_REEM,
    nvl(tab5.valor,0) ANUL_REEM
    
    from COM_PAGO_EGRESO tab0
    
    left join(    
        select tab0.id_pago_egreso,sum(tab0.VALOR_NETO) VALOR    
        from COM_PAGO_EGRESO tab0
        where tab0.ID_ANHOS = $id_anhos and tab0.estado=0
        GROUP BY tab0.id_pago_egreso
    )tab1 ON tab1.id_pago_egreso = tab0.id_pago_egreso
    
    left join(    
        select tab0.id_pago_egreso,sum(tab0.VALOR_TOTAL) VALOR    
        from COM_REINTEGRO tab0
        where tab0.ID_ANHOS = $id_anhos AND TAB0.ESTADO=1
        GROUP BY tab0.id_pago_egreso    
    )tab2 ON tab2.id_pago_egreso = tab0.id_pago_egreso
    
    left join(    
        select tab0.id_pago_egreso,sum(tab0.VALOR_TOTAL) VALOR    
        from COM_REINTEGRO tab0
        where tab0.ID_ANHOS = $id_anhos AND TAB0.ESTADO=0
        GROUP BY tab0.id_pago_egreso
    )tab3 ON tab3.id_pago_egreso = tab0.id_pago_egreso
    
    left join(    
        select 
        det.id_pago_egreso,
        sum(nvl(det.valor_reembolso,0)) as valor
        from com_reembolso reem
        left join com_deta_reembolso det
        on reem.id_reembolso = det.id_reembolso
        where 
        reem.id_anhos = $id_anhos
        and reem.estado = 1
        and det.id_pago_egreso is not null
        group by
        det.id_pago_egreso
    )tab4 ON tab4.id_pago_egreso = tab0.id_pago_egreso
    
    left join(    
        select 
        det.id_pago_egreso,
        sum(nvl(det.valor_reembolso,0)) as valor
        from com_reembolso reem
        left join com_deta_reembolso det
        on reem.id_reembolso = det.id_reembolso
        where 
        reem.id_anhos = $id_anhos
        and reem.estado = 0
        and det.id_pago_egreso is not null
        group by
        det.id_pago_egreso
    )tab5 ON tab5.id_pago_egreso = tab0.id_pago_egreso
    
    join COM_CUENTA tab4 ON tab4.id_cuenta = tab0.id_cuenta $whereMenorNoCaja
    
    join com_resolucion res on res.id_resolucion = tab4.id_resolucion
    
    join com_comision comm on comm.id_comision = res.id_comision 
    
    where 
    tab0.ID_ANHOS = $id_anhos
    and comm.id_proyecto = $id_proyecto

)   
EOD;
        //echo $sql;
        //die();    
        $st = $consul->execute($sql);
        $saldos = $st->fetchAll();

        $pagos_saldo = $saldos[0]['PAGOS'];
        $anu_pa_saldo = $saldos[0]['ANULA_PAGOS'];
        $reintegro_saldo = $saldos[0]['REINTEGROS'];
        $rein_anu_saldo = $saldos[0]['ANULA_REIN'];
        $reembolso_saldo = $saldos[0]['VALOR_REEM'];
        $reem_anu_saldo = $saldos[0]['ANUL_REEM'];

        //Se calcula saldo sin pagos y con reembolso - 20160829
        //$saldo = $valor_asignado - $pagos_saldo + $anu_pa_saldo + $reintegro_saldo - $rein_anu_saldo;
        $saldo = $valor_asignado + $reintegro_saldo - $rein_anu_saldo + $reembolso_saldo - $reem_anu_saldo;


        $html.='<table border="1" width="100%">';

        $html.='<tr>';
        $html.='<td style="text-align:left;width:71%" colspan="11"></td>';
        $html.='<td style="text-align:center;width:23%" colspan="4" bgcolor="#C0C0C0">CONSTITUCIÓN DE CAJA MENOR</td>';
        $html.='<td style="text-align:right;width:6%" bgcolor="#C0C0C0">' . number_format($valor_asignado) . '</td>';
        $html.='</tr>';
        
        //20170519 se agregan los reembolsos hechos a la caja
        $html.='<tr>';
        $html.='<td style="text-align:left;width:71%" colspan="11"></td>';
        $html.='<td style="text-align:center;width:23%" colspan="4" bgcolor="#C0C0C0">REEMBOLSOS </td>';
        $html.='<td style="text-align:right;width:6%">' . number_format($reembolso_saldo - $reem_anu_saldo) . '</td>';
        $html.='</tr>';

        $html.='<tr>';
        $html.='<td style="text-align:left;width:71%" colspan="11"></td>';
        $html.='<td style="text-align:center;width:23%" colspan="4" bgcolor="#C0C0C0">TOTAL + REINTEGROS</td>';
        $html.='<td style="text-align:right;width:6%">' . number_format($saldo) . '</td>';
        $html.='</tr>';

        $html.='<tr>';
//        $html.='<td style="text-align:center;width:4%"><b>No. Pago</b></td>';
        $html.='<td style="text-align:center;width:5%; vertical-align:middle" bgcolor="#C0C0C0"><b>FECHA</b></td>';
        $html.='<td style="text-align:center;width:5%" bgcolor="#C0C0C0"><b>NUMERO COMISIÓN</b></td>';
//        $html.='<td style="text-align:center;width:5%" bgcolor="#C0C0C0"><b>Fecha Comis</b></td>';
        $html.='<td style="text-align:center;width:10%" bgcolor="#C0C0C0"><b>F.C.I</b></td>';
        $html.='<td style="text-align:center;width:3%" bgcolor="#C0C0C0"><b>RES</b></td>';
        $html.='<td style="text-align:center;width:5%" bgcolor="#C0C0C0"><b>FECHA</b></td>';
        $html.='<td style="text-align:center;width:14%" bgcolor="#C0C0C0"><b>BENEFICIARIO</b></td>';
        $html.='<td style="text-align:center;width:6%" bgcolor="#C0C0C0"><b>IDENTIFIC</b></td>';
        $html.='<td style="text-align:center;width:4%" bgcolor="#C0C0C0"><b>CO</b></td>';
        $html.='<td style="text-align:center;width:7%" bgcolor="#C0C0C0"><b>TIPO</b></td>';
        $html.='<td style="text-align:center;width:6%" bgcolor="#C0C0C0"><b>CUENTA</b></td>';
        $html.='<td style="text-align:center;width:6%" bgcolor="#C0C0C0"><b>BANCO</b></td>';
        $html.='<td style="text-align:center;width:11%" bgcolor="#C0C0C0"><b>BANCO</b></td>';
        $html.='<td style="text-align:center;width:6%" bgcolor="#C0C0C0"><b>EGRESO</b></td>';
        $html.='<td style="text-align:center;width:3%" bgcolor="#C0C0C0"><b>Ret. IVA</b></td>';
        $html.='<td style="text-align:center;width:3%" bgcolor="#C0C0C0"><b>Ret. ICA</b></td>';
        $html.='<td style="text-align:center;width:6%" bgcolor="#C0C0C0"><b>SALDO</b></td>';
        $html.='</tr>';


        $pdf->SetFont('Times', '', 7);

        /**
         * Se cambia SQL por los nuevos filtros - 20150514
         */
        /*
          $sql = "select to_char(tab0.FECHA_PAGO,'dd-mm-yyyy') as FECHA_PAGO,tab9.no_comision as numero,tab6.DESCRIPCION AS FCI,
          tab2.NO_RESOLUCION AS RES, to_char(tab2.FECHA_RESOLUCION,'dd-mm-yyyy')AS FECHA_RESOL,
          tab4.NOMBRE AS BENEFICIARIO,tab4.NUM_DOC AS IDENTIF, tab5.CODIGO_CO AS CO,
          tab7.DESCRIPCION AS TIPO_CUENTA,tab4.NUMERO_CUENTA,tab8.CODIGO AS COD_BANCO,
          tab8.DESCRIPCION AS BANCO,tab0.VALOR_NETO AS EGRESO

          from COM_PAGO_EGRESO tab0
          JOIN COM_CUENTA tab1 ON tab1.ID_CUENTA = tab0.ID_CUENTA
          JOIN COM_RESOLUCION tab2 ON tab2.ID_RESOLUCION = tab1.ID_RESOLUCION
          JOIN COM_COMISIONADO tab3 on tab3.ID_COMISION = tab2.ID_COMISION and tab3.ID_TERCERO = tab1.ID_TERCERO
          JOIN COM_TERCERO tab4 ON tab4.ID_TERCERO = tab3.ID_TERCERO
          JOIN TIPO_DOCUMENTO tab5 ON tab5.ID_TIPO_DOC = tab4.ID_TIPO_DOC
          JOIN COM_TIPO_COMISIONADO tab6 ON tab6.TIPTER = tab4.TIPTER
          LEFT JOIN TS_TC tab7 ON tab7.ID = tab4.TIPO_CUENTA
          LEFT JOIN TS_BN tab8 ON tab8.ID_BN = tab4.BANCO
          LEFT JOIN COM_COMISION tab9 ON tab9.id_comision = tab2.id_comision


          where tab0.ID_ANHOS = " . $id_anhos . " and tab1.no_caja= $no_caja";
         */
        //20170531 se agrego condision para que si esta anulado el pago muestre valor 0 y no afecte el estado de cuenta
        $sql = <<<EOD
select tab0.* from(
    select 
    tab0.id_anhos,
    tab0.no_pago,
    tab0.fecha_pago as fecha_pago_date,
    to_char(tab0.fecha_pago,'dd/mm/yyyy') as fecha_pago,
    tab9.no_comision as no_comision,
    to_char(tab9.fecha_solicitud,'dd/mm/yyyy') as fecha_solicitud,
    tab6.descripcion as fci,
    tab2.no_resolucion as no_resolucion, 
    to_char(tab2.fecha_resolucion,'dd/mm/yyyy') as fecha_resol,
    tab4.nombre as beneficiario,
    tab4.num_doc as identif, 
    nvl(tab5.codigo_co,1) as co,
    tab7.descripcion as tipo_cuenta,
    tab4.numero_cuenta,
    tab8.codigo as cod_banco,
    tab8.descripcion as banco,
    case when tab0.estado=0 then 0 else tab0.valor_neto end as egreso,
    tab1.no_caja,
    nvl(riva.valor_imp,0) as valor_riva,
    nvl(rica.valor_imp,0) as valor_rica
                
    from com_pago_egreso tab0
    join com_cuenta tab1 on tab1.id_cuenta = tab0.id_cuenta
    join com_resolucion tab2 on tab2.id_resolucion = tab1.id_resolucion
    join com_comisionado tab3 on tab3.id_comision = tab2.id_comision and tab3.id_tercero = tab1.id_tercero
    join com_tercero tab4 on tab4.id_tercero = tab3.id_tercero
    join tipo_documento tab5 on tab5.id_tipo_doc = tab4.id_tipo_doc
    join com_tipo_comisionado tab6 on tab6.tipter = tab4.tipter
    left join ts_tc tab7 on tab7.id = tab4.tipo_cuenta
    left join ts_bn tab8 on tab8.id_bn = tab4.banco
    join com_comision tab9 on tab9.id_comision = tab2.id_comision 
    left join (select * from com_comisionado_imp where id_ts_im=(select valor from com_param_control_comis where parametro='COD_IMP_RETIVA')) riva 
  on riva.id_comision=tab3.id_comision and riva.id_tercero=tab3.id_tercero
  
  left join (select * from com_comisionado_imp where id_ts_im=(select valor from com_param_control_comis where parametro='COD_IMP_RETICA')) rica 
  on rica.id_comision=tab3.id_comision and rica.id_tercero=tab3.id_tercero

    where
    tab9.id_proyecto = $id_proyecto
    and tab0.fecha_pago between to_date( '$fecha_ini' , 'yyyy-mm-dd' ) and to_date( '$fecha_fin' , 'yyyy-mm-dd' )
                        
)tab0

where 
tab0.id_anhos = $id_anhos 
$whereNoPago $whereNoCaja
$whereNoComision $whereNoResolucion 

order by tab0.fecha_pago_date, tab0.no_pago    
EOD;

        $st = $consul->execute($sql);
        $pagos = $st->fetchAll();
        $total_pagos = 0;
        foreach ($pagos as $pagos_dia) {

            $saldo -= $pagos_dia['EGRESO'];
            $total_pagos += $pagos_dia['EGRESO'];

            $html.='<tr>';
//            $html.='<td style="text-align:center;width:4%">' . $pagos_dia['NO_PAGO'] . '</td>';
            $html.='<td style="text-align:center;width:5%">' . $pagos_dia['FECHA_PAGO'] . '</td>';
            $html.='<td style="text-align:center;width:5%">' . $pagos_dia['NO_COMISION'] . '</td>';
//            $html.='<td style="text-align:center;width:5%">' . $pagos_dia['FECHA_SOLICITUD'] . '</td>';
            $html.='<td style="text-align:center;width:10%">' . $pagos_dia['FCI'] . '</td>';
            $html.='<td style="text-align:center;width:3%">' . $pagos_dia['NO_RESOLUCION'] . '</td>';
            $html.='<td style="text-align:center;width:5%">' . $pagos_dia['FECHA_RESOL'] . '</td>';
            $html.='<td style="text-align:left;width:14%">' . $pagos_dia['BENEFICIARIO'] . '</td>';
            $html.='<td style="text-align:center;width:6%">' . $pagos_dia['IDENTIF'] . '</td>';
            $html.='<td style="text-align:center;width:4%">' . $pagos_dia['CO'] . '</td>';
            $html.='<td style="text-align:left;width:7%">' . $pagos_dia['TIPO_CUENTA'] . '</td>';
            $html.='<td style="text-align:center;width:6%">' . $pagos_dia['NUMERO_CUENTA'] . '</td>';
            $html.='<td style="text-align:center;width:6%">' . $pagos_dia['COD_BANCO'] . '</td>';
            $html.='<td style="text-align:left;width:11%">' . $pagos_dia['BANCO'] . '</td>';
            $html.='<td style="text-align:right;width:6%">' . number_format($pagos_dia['EGRESO']) . '</td>';
            $html.='<td style="text-align:right;width:3%">' . number_format($pagos_dia['VALOR_RIVA']) . '</td>';
            $html.='<td style="text-align:right;width:3%">' . number_format($pagos_dia['VALOR_RICA']) . '</td>';
            $html.='<td style="text-align:right;width:6%">' . number_format($saldo) . '</td>';

            $html.='</tr>';
        }

        $html.='<tr>';
        $html.='<td style="text-align:right;width:82%" colspan="12"><b>TOTAL </b></td>';
        $html.='<td style="text-align:center;width:6%">' . number_format($total_pagos) . '</td>';
        $html.='<td style="text-align:right;width:12%" colspan="3"></td>';
        $html.='</tr>';
        $html.='</table><br/><br/><br/>';


        $sql = "select * from COM_FIRMA where id_firma=" . $id_firma;
        $st = $consul->execute($sql);
        $firmas = $st->fetchAll();

        $firma = $firmas[0]['NOMBRE'];
        $cargo = $firmas[0]['CARGO'];

        $html.='<p style="text-align:left"><b>AUTORIZACIÓN GIRO:</b></p><br/><br/>';

        $html.='<p style="text-align:center"><b>' . $firma . '</b><br/><b>' . $cargo . '</b></p>';


        $pdf->writeHTML($html, true, false, true, false, '');

        $pdf->Output("inf_relacion_pagos", "D");
        die();
        exit();
    }

    public function executeExcel(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");

        /*
         * Variables obligatorias
         */
        $id_anhos = $request['id_anhos'];
        $id_proyecto = $request['id_proyecto'];
        $id_firma = $request['id_firma'];
        $fecha_ini = $request['fecha_ini'];
        $fecha_fin = $request['fecha_fin'];


        /*
         * Variables opcionales
         */
        $whereNoPago = "";
        if (isset($request['no_pago'])) {
            $whereNoPago = " AND tab0.no_pago = " . $request['no_pago'];
        }
        $whereNoCaja = "";
        $no_caja = "Todas";
        if (isset($request['no_caja'])) {
            $no_caja = $request['no_caja'];
            $whereNoCaja = " AND tab0.no_caja = " . $request['no_caja'];
            $whereMenorNoCaja = "and tab4.no_caja < " . $request['no_caja'];
        }
        $whereNoComision = "";
        if (isset($request['no_comision'])) {
            $whereNoComision = " AND tab0.no_comision = " . $request['no_comision'];
        }
        $whereNoResolucion = "";
        if (isset($request['no_resolucion'])) {
            $whereNoResolucion = " AND tab0.no_resolucion = " . $request['no_resolucion'];
        }


        $consul = Doctrine_Manager::getInstance()->connection();

        $sql = "select * from proyectos where id=" . $id_proyecto;
        $st = $consul->execute($sql);
        $cajas = $st->fetchAll();

        $descripcion_caja = $cajas[0]['DESCRIPCION'];

        $html = '<table cellpadding="5" width="100%"><tr><td colspan="2" width="20%" rowspan="4"></td>';
        //$html = '<table cellpadding="5" width="100%"><tr><td colspan="2" width="20%" rowspan="4"><img src="../../web/images/LogoEmpresa.png" width="80" height="40" /></td>';
        //$html .= '<td width="60%" rowspan="4" colspan="10" align="center"><b>RELACION DE PAGOS ' . $descripcion_caja . ' ' . $id_anhos . '<br/>520-1000-1-0-2-2 ADMINISTRACION SISTEMA NACIONAL DE CIENCIA Y TECNOLOGIA.<br/>CAJA No. ' . $no_caja . '</b></td>';
        $html .= '<td width="60%" rowspan="4" colspan="10" align="center"><b>RELACION DE PAGOS CAJA MENOR '.$descripcion_caja.'</b></td>';
        $html .= '<td colspan="2" width="20%" align="center">CODIGO A301PR01I1F7</td></tr>';
        $html .= '<tr><td colspan="2 width="20%" align="center">Version 00</td></tr>';
        $html .= '<tr><td colspan="2 width="20%" align="center">Fecha: ' . date("Y-m-d") . '</td></tr>';
        $html .= '<tr><td colspan="2 width="20%" align="center">Pagina 1 de 1</td></tr>';
        $html .='</table>';

//        $html = '<table border="2" width="100%">';
//        $html .= '<tr><td width="80%" rowspan="4">'
//                . '<img width="150px" height="55px" src="images/LogoEmpresa.png" /></td>';
//        //. '<img width="100px" height="55px" src="images/nuevo_pais.jpg"/>';
//        $html .= '<td width="54%" align="center" rowspan="4"><b>RELACIÓN DE PAGOS CAJA MENOR</td>';
//        $html .= '<td width="20%" align="center">CODIGO A301PR01I1F7</td></tr>';
//        $html .= '<tr><td width="20%" align="center">Versión 00</td></tr>';
//        $html .= '<tr><td width="20%" align="center">Fecha: ' . date("Y-m-d") . '</td></tr>';
//        $html .= '<tr><td width="20%" align="center">Página ' . $this->getAliasNumPage() . ' de ' . $this->getAliasNbPages() . '</td></tr>';
//        $html .='</table>';




        /* $html='<p style="text-align:center"><b>RELACION DE PAGOS '.$descripcion_caja.' '.$id_anhos.'<br/>520-1000-1-0-2-2 ADMINISTRACION SISTEMA NACIONAL DE CIENCIA Y TECNOLOGIA.<br/>CAJA No. '.$no_caja.'</b></p>';
         */


        $valor_asignado = 0;

        $saldo = 0;

        /**
         * Traer el valor inicial del proyecto
         */
        //sentencia sql
        $sql = <<<EOD
select sum(tab0.valor_asignado) as valor
from COM_DETALLE_PRESUP tab0
where tab0.ID_PROYECTO = $id_proyecto 
EOD;
        $st = $consul->execute($sql);
        $detalle = $st->fetchAll();

        $valor_asignado = $detalle[0]['VALOR'];

        /**
         * TRAER SALDO ACTUAL
         */
        //sentencia sql
        $sql = <<<EOD
SELECT 
NVL(sum(VALOR_PAGO),0) PAGOS, 
NVL(SUM(VALOR_ANULA),0) ANULA_PAGOS, 
NVL(SUM(VALOR_REIN),0) REINTEGROS, 
NVL(SUM(ANUL_REIN),0) ANULA_REIN,
NVL(SUM(VALOR_REEM),0) VALOR_REEM,
NVL(SUM(ANUL_REEM),0) ANUL_REEM
                
FROM(

    select distinct 
    tab0.ID_PAGO_EGRESO,
    nvl(tab0.VALOR_NETO,0) VALOR_PAGO,
    nvl(tab1.valor,0) VALOR_ANULA,
    nvl(tab2.valor,0) VALOR_REIN,
    nvl(tab3.valor,0) ANUL_REIN,
    nvl(tab4.valor,0) VALOR_REEM,
    nvl(tab5.valor,0) ANUL_REEM
    
    from COM_PAGO_EGRESO tab0
    
    left join(    
        select tab0.id_pago_egreso,sum(tab0.VALOR_NETO) VALOR    
        from COM_PAGO_EGRESO tab0
        where tab0.ID_ANHOS = $id_anhos and tab0.estado=0
        GROUP BY tab0.id_pago_egreso
    )tab1 ON tab1.id_pago_egreso = tab0.id_pago_egreso
    
    left join(    
        select tab0.id_pago_egreso,sum(tab0.VALOR_TOTAL) VALOR    
        from COM_REINTEGRO tab0
        where tab0.ID_ANHOS = $id_anhos AND TAB0.ESTADO=1
        GROUP BY tab0.id_pago_egreso    
    )tab2 ON tab2.id_pago_egreso = tab0.id_pago_egreso
    
    left join(    
        select tab0.id_pago_egreso,sum(tab0.VALOR_TOTAL) VALOR    
        from COM_REINTEGRO tab0
        where tab0.ID_ANHOS = $id_anhos AND TAB0.ESTADO=0
        GROUP BY tab0.id_pago_egreso
    )tab3 ON tab3.id_pago_egreso = tab0.id_pago_egreso
    
    left join(    
        select 
        det.id_pago_egreso,
        sum(nvl(det.valor_reembolso,0)) as valor
        from com_reembolso reem
        left join com_deta_reembolso det
        on reem.id_reembolso = det.id_reembolso
        where 
        reem.id_anhos = $id_anhos
        and reem.estado = 1
        and det.id_pago_egreso is not null
        group by
        det.id_pago_egreso
    )tab4 ON tab4.id_pago_egreso = tab0.id_pago_egreso
    
    left join(    
        select 
        det.id_pago_egreso,
        sum(nvl(det.valor_reembolso,0)) as valor
        from com_reembolso reem
        left join com_deta_reembolso det
        on reem.id_reembolso = det.id_reembolso
        where 
        reem.id_anhos = $id_anhos
        and reem.estado = 0
        and det.id_pago_egreso is not null
        group by
        det.id_pago_egreso
    )tab5 ON tab5.id_pago_egreso = tab0.id_pago_egreso
    
    join COM_CUENTA tab4 ON tab4.id_cuenta = tab0.id_cuenta $whereMenorNoCaja
    
    join com_resolucion res on res.id_resolucion = tab4.id_resolucion
    
    join com_comision comm on comm.id_comision = res.id_comision 
    
    where 
    tab0.ID_ANHOS = $id_anhos
    and comm.id_proyecto = $id_proyecto

)   
EOD;
        //echo $sql;
        //die();    
        $st = $consul->execute($sql);
        $saldos = $st->fetchAll();

        $pagos_saldo = $saldos[0]['PAGOS'];
        $anu_pa_saldo = $saldos[0]['ANULA_PAGOS'];
        $reintegro_saldo = $saldos[0]['REINTEGROS'];
        $rein_anu_saldo = $saldos[0]['ANULA_REIN'];
        $reembolso_saldo = $saldos[0]['VALOR_REEM'];
        $reem_anu_saldo = $saldos[0]['ANUL_REEM'];

        //Se calcula saldo sin pagos y con reembolso - 20160829
        //$saldo = $valor_asignado - $pagos_saldo + $anu_pa_saldo + $reintegro_saldo - $rein_anu_saldo;
        $saldo = $valor_asignado + $reintegro_saldo - $rein_anu_saldo + $reembolso_saldo - $reem_anu_saldo;


        $html.='<table width="100%">';

        $html.='<tr><td style="text-align:left;width:100%" colspan="14"> </td></tr>';
        $html.='<tr><td style="text-align:center;width:100%" colspan="14" align="center"><b>520-1000-1-0-2-2 ADMINISTRACION SISTEMA NACIONAL DE CIENCIA Y TECNOLOGIA.</b></td></tr>';
        $html.='<tr><td style="text-align:center;width:100%" colspan="14" align="center"><b>CAJA No. ' . $no_caja . '</b></td></tr>';
        $html.='<tr><td style="text-align:left;width:100%" colspan="14"> </td></tr>';

        $html.='<tr>';
        $html.='<td style="text-align:left;width:71%" colspan="11"></td>';
        $html.='<td style="text-align:center;width:23%" colspan="4" bgcolor="#C0C0C0" align="center">CONSTITUCION DE CAJA MENOR</td>';
        $html.='<td style="text-align:right;width:6%" bgcolor="#C0C0C0">' . number_format($valor_asignado, 2, ',', '.') . '</td>';
        $html.='</tr>';
        
        $html.='<tr>';
        $html.='<td style="text-align:left;width:71%" colspan="11"></td>';
        $html.='<td style="text-align:center;width:23%" colspan="4" bgcolor="#C0C0C0" align="center">REEMBOLSOS</td>';
        $html.='<td style="text-align:right;width:6%" bgcolor="#C0C0C0">' . number_format($reembolso_saldo - $reem_anu_saldo, 2, ',', '.') . '</td>';
        $html.='</tr>';

        $html.='<tr>';
        $html.='<td style="text-align:left;width:71%" colspan="11"></td>';
        $html.='<td style="text-align:center;width:23%" colspan="4" bgcolor="#C0C0C0" align="center">TOTAL + REINTEGROS</td>';
        $html.='<td style="text-align:right;width:6%">' . number_format($saldo, 2, ',', '.') . '</td>';
        $html.='</tr>';


        $html.='<tr>';
//        $html.='<td style="text-align:center;width:4%"><b>No. Pago</b></td>';
        $html.='<td style="text-align:center;width:5%; vertical-align:middle" bgcolor="#C0C0C0" align="center"><b>FECHA</b></td>';
        $html.='<td style="text-align:center;width:5%" bgcolor="#C0C0C0" align="center"><b>NUMERO COMISIÓN</b></td>';
//        $html.='<td style="text-align:center;width:5%" bgcolor="#C0C0C0" align="center"><b>Fecha Comis</b></td>';
        $html.='<td style="text-align:center;width:10%" bgcolor="#C0C0C0" align="center"><b>F.C.I</b></td>';
        $html.='<td style="text-align:center;width:3%" bgcolor="#C0C0C0" align="center"><b>RES</b></td>';
        $html.='<td style="text-align:center;width:5%" bgcolor="#C0C0C0" align="center"><b>FECHA</b></td>';
        $html.='<td style="text-align:center;width:14%" bgcolor="#C0C0C0" align="center"><b>BENEFICIARIO</b></td>';
        $html.='<td style="text-align:center;width:6%" bgcolor="#C0C0C0" align="center"><b>IDENTIFIC</b></td>';
        $html.='<td style="text-align:center;width:4%" bgcolor="#C0C0C0" align="center"><b>CO</b></td>';
        $html.='<td style="text-align:center;width:7%" bgcolor="#C0C0C0" align="center"><b>TIPO</b></td>';
        $html.='<td style="text-align:center;width:6%" bgcolor="#C0C0C0" align="center"><b>CUENTA</b></td>';
        $html.='<td style="text-align:center;width:6%" bgcolor="#C0C0C0" align="center"><b>BANCO</b></td>';
        $html.='<td style="text-align:center;width:11%" bgcolor="#C0C0C0" align="center"><b>BANCO</b></td>';
        $html.='<td style="text-align:center;width:6%" bgcolor="#C0C0C0" align="center"><b>EGRESO</b></td>';
        $html.='<td style="text-align:center;width:3%" bgcolor="#C0C0C0"><b>RET. IVA</b></td>';
        $html.='<td style="text-align:center;width:3%" bgcolor="#C0C0C0"><b>RET. ICA</b></td>';
        $html.='<td style="text-align:center;width:6%" bgcolor="#C0C0C0" align="center"><b>SALDO</b></td>';
        $html.='</tr>';



        /**
         * Se cambia SQL por los nuevos filtros - 20150514
         */
        /*
          $sql = "select to_char(tab0.FECHA_PAGO,'dd-mm-yyyy')FECHA_PAGO,tab9.no_comision as numero,tab6.DESCRIPCION AS FCI,
          tab2.NO_RESOLUCION AS RES, to_char(tab2.FECHA_RESOLUCION,'dd-mm-yyyy')AS FECHA_RESOL,
          tab4.NOMBRE AS BENEFICIARIO,tab4.NUM_DOC AS IDENTIF, tab5.CODIGO_CO AS CO,
          tab7.DESCRIPCION AS TIPO_CUENTA,tab4.NUMERO_CUENTA,tab8.CODIGO AS COD_BANCO,
          tab8.DESCRIPCION AS BANCO,tab0.VALOR_NETO AS EGRESO

          from COM_PAGO_EGRESO tab0
          JOIN COM_CUENTA tab1 ON tab1.ID_CUENTA = tab0.ID_CUENTA
          JOIN COM_RESOLUCION tab2 ON tab2.ID_RESOLUCION = tab1.ID_RESOLUCION
          JOIN COM_COMISIONADO tab3 on tab3.ID_COMISION = tab2.ID_COMISION and tab3.ID_TERCERO = tab1.ID_TERCERO
          JOIN COM_TERCERO tab4 ON tab4.ID_TERCERO = tab3.ID_TERCERO
          JOIN TIPO_DOCUMENTO tab5 ON tab5.ID_TIPO_DOC = tab4.ID_TIPO_DOC
          JOIN COM_TIPO_COMISIONADO tab6 ON tab6.TIPTER = tab4.TIPTER
          LEFT JOIN TS_TC tab7 ON tab7.ID = tab4.TIPO_CUENTA
          LEFT JOIN TS_BN tab8 ON tab8.ID_BN = tab4.BANCO
          LEFT JOIN COM_COMISION tab9 ON tab9.id_comision = tab2.id_comision


          where tab0.ID_ANHOS = " . $id_anhos . " and tab1.no_caja= $no_caja";
         */
        //20170531 se agrego condision para que si esta anulado el pago muestre valor 0 y no afecte el estado de cuenta
        $sql = <<<EOD
select tab0.* from(
    select 
    tab0.id_anhos,
    tab0.no_pago,
    tab0.fecha_pago as fecha_pago_date,
    to_char(tab0.fecha_pago,'dd/mm/yyyy') as fecha_pago,
    tab9.no_comision as no_comision,
    to_char(tab9.fecha_solicitud,'dd/mm/yyyy') as fecha_solicitud,
    tab6.descripcion as fci,
    tab2.no_resolucion as no_resolucion, 
    to_char(tab2.fecha_resolucion,'dd/mm/yyyy') as fecha_resol,
    tab4.nombre as beneficiario,
    tab4.num_doc as identif, 
    nvl(tab5.codigo_co,1) as co,
    tab7.descripcion as tipo_cuenta,
    tab4.numero_cuenta,
    tab8.codigo as cod_banco,
    tab8.descripcion as banco,
    case when tab0.estado=0 then 0 else tab0.valor_neto end as egreso,
    tab1.no_caja,
    nvl(riva.valor_imp,0) as valor_riva,
    nvl(rica.valor_imp,0) as valor_rica
    
    from com_pago_egreso tab0
    join com_cuenta tab1 on tab1.id_cuenta = tab0.id_cuenta
    join com_resolucion tab2 on tab2.id_resolucion = tab1.id_resolucion
    join com_comisionado tab3 on tab3.id_comision = tab2.id_comision and tab3.id_tercero = tab1.id_tercero
    join com_tercero tab4 on tab4.id_tercero = tab3.id_tercero
    join tipo_documento tab5 on tab5.id_tipo_doc = tab4.id_tipo_doc
    join com_tipo_comisionado tab6 on tab6.tipter = tab4.tipter
    left join ts_tc tab7 on tab7.id = tab4.tipo_cuenta
    left join ts_bn tab8 on tab8.id_bn = tab4.banco
    join com_comision tab9 on tab9.id_comision = tab2.id_comision 
                
    left join (select * from com_comisionado_imp where id_ts_im=(select valor from com_param_control_comis where parametro='COD_IMP_RETIVA')) riva 
  on riva.id_comision=tab3.id_comision and riva.id_tercero=tab3.id_tercero
  
  left join (select * from com_comisionado_imp where id_ts_im=(select valor from com_param_control_comis where parametro='COD_IMP_RETICA')) rica 
  on rica.id_comision=tab3.id_comision and rica.id_tercero=tab3.id_tercero

    where
    tab9.id_proyecto = $id_proyecto
    and tab0.fecha_pago between to_date( '$fecha_ini' , 'yyyy-mm-dd' ) and to_date( '$fecha_fin' , 'yyyy-mm-dd' )
                        
)tab0

where 
tab0.id_anhos = $id_anhos 
$whereNoPago $whereNoCaja
$whereNoComision $whereNoResolucion 

order by tab0.fecha_pago_date, tab0.no_pago     
EOD;


        $st = $consul->execute($sql);
        $pagos = $st->fetchAll();
        $total_pagos = 0;
        foreach ($pagos as $pagos_dia) {

            $saldo -= $pagos_dia['EGRESO'];
            $total_pagos += $pagos_dia['EGRESO'];

            $html.='<tr>';
//            $html.='<td style="text-align:center;width:4%">' . $pagos_dia['NO_PAGO'] . '</td>';
            $html.='<td style="text-align:center;width:5%">' . $pagos_dia['FECHA_PAGO'] . '</td>';
            $html.='<td style="text-align:center;width:5%">' . $pagos_dia['NO_COMISION'] . '</td>';
//            $html.='<td style="text-align:center;width:5%">' . $pagos_dia['FECHA_SOLICITUD'] . '</td>';
            $html.='<td style="text-align:center;width:10%">' . $pagos_dia['FCI'] . '</td>';
            $html.='<td style="text-align:center;width:3%">' . $pagos_dia['NO_RESOLUCION'] . '</td>';
            $html.='<td style="text-align:center;width:5%">' . $pagos_dia['FECHA_RESOL'] . '</td>';
            $html.='<td style="text-align:left;width:14%">' . $pagos_dia['BENEFICIARIO'] . '</td>';
            $html.='<td style="text-align:center;width:6%">' . $pagos_dia['IDENTIF'] . '</td>';
            $html.='<td style="text-align:center;width:4%">' . $pagos_dia['CO'] . '</td>';
            $html.='<td style="text-align:left;width:7%">' . $pagos_dia['TIPO_CUENTA'] . '</td>';
            $html.='<td style="text-align:center;width:6%">' . $pagos_dia['NUMERO_CUENTA'] . '</td>';
            $html.='<td style="text-align:center;width:6%">' . $pagos_dia['COD_BANCO'] . '</td>';
            $html.='<td style="text-align:left;width:11%">' . $pagos_dia['BANCO'] . '</td>';
            $html.='<td style="text-align:right;width:6%">' . number_format($pagos_dia['EGRESO'], 2, ',', '.') . '</td>';
            $html.='<td style="text-align:right;width:3%">' . number_format($pagos_dia['VALOR_RIVA'],2, ',', '.') . '</td>';
            $html.='<td style="text-align:right;width:3%">' . number_format($pagos_dia['VALOR_RICA'],2, ',', '.') . '</td>';
            $html.='<td style="text-align:right;width:6%">' . number_format($saldo, 2, ',', '.') . '</td>';

            $html.='</tr>';
        }

        $html.='<tr>';
        $html.='<td style="text-align:right;width:82%" colspan="12" align="right"><b>TOTAL </b></td>';
        $html.='<td style="text-align:center;width:6%"><b>' . number_format($total_pagos, 2, ',', '.') . '</b></td>';
        $html.='<td style="text-align:right;width:12%" colspan="3"></td>';
        $html.='</tr>';
        $html.='</table><br/><br/><br/>';


        $sql = "select * from COM_FIRMA where id_firma=" . $id_firma;
        $st = $consul->execute($sql);
        $firmas = $st->fetchAll();

        $firma = $firmas[0]['NOMBRE'];
        $cargo = $firmas[0]['CARGO'];

        $html.='<p style="text-align:left"><b>AUTORIZACION GIRO:</b></p><br/><br/>';

        //$html.='<p style="text-align:center" align="center"><b>' . $firma . '</b><br/><b>' . $cargo . '</b></p>';
        $html.='<table width="100%">';
        $html.='<tr><td style="text-align:left;width:100%" colspan="14"> </td></tr>';
        $html.='<tr><td style="text-align:center;width:100%" colspan="14" align="center"><b>' . $firma . '</b></td></tr>';
        $html.='<tr><td style="text-align:center;width:100%" colspan="14" align="center"><b>' . $cargo . '</b></td></tr>';
        $html.='<tr><td style="text-align:left;width:100%" colspan="14"> </td></tr>';
        $html.='</table><br/><br/><br/>';

        $nombre = "inf_relacion_pagos.xls";
        header("Content-type: application/vnd.ms-excel; name='excel'");
        header("Content-Disposition: filename=" . $nombre);
        header("Pragma: no-cache");
        header("Expires: 0");
        echo $html;
        die();
        exit();
    }

}
