<?php
##############################################################################################
# ************************************* Modificaciones ************************************* #
##############################################################################################
#13/02/2018 | Erica G. | Arreglo Para Que Salgan Cheque, Banco, Egresos Sin Afectación
#31/08/2017 | Erica G. | Archivo Creado
##############################################################################################
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=Informe_Relacion_Egresos_Sin_Presupuesto.xls");
require_once("../Conexion/conexion.php");
require_once("../Conexion/ConexionPDO.php");
require_once("../jsonPptal/funcionesPptal.php");
session_start();
$anno = $_SESSION['anno'];
$con = new ConexionPDO();
$conexion = $_SESSION['conexion'];
#************Datos Recibe************#
$fechaIn = $_REQUEST['fechaini'];
$fechaFi = $_REQUEST['fechafin'];
$fechaI  = fechaC($fechaIn);
$fechaF  = fechaC($fechaFi);
if (empty($_REQUEST['sltTi'])) {
    $terceroI = 0;
} else {
    $terceroI = $_REQUEST['sltTi'];
}

if (empty($_REQUEST['sltTf'])) {
    $terceroF = 9;
} else {
    $terceroF = $_REQUEST['sltTf'];
}

#************Datos Compañia************#
$compania = $_SESSION['compania'];
$rowC = $con->Listar("SELECT ter.id_unico,
            ter.razonsocial,
            UPPER(ti.nombre),
            ter.numeroidentificacion,
            dir.direccion,
            tel.valor,
            ter.ruta_logo
            FROM gf_tercero ter
            LEFT JOIN 	gf_tipo_identificacion ti ON ter.tipoidentificacion = ti.id_unico
            LEFT JOIN   gf_direccion dir ON dir.tercero = ter.id_unico
            LEFT JOIN 	gf_telefono  tel ON tel.tercero = ter.id_unico
            WHERE ter.id_unico = $compania");
// $resultC = $mysqli->query($sqlC);
// $rowC = mysqli_fetch_row($resultC);
$razonsocial = $rowC[0][1];
$nombreIdent = $rowC[0][2];
$numeroIdent = $rowC[0][3];
$direccinTer = $rowC[0][4];
$telefonoTer = $rowC[0][5];



?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Relación Egresos Sin Presupuesto</title>
</head>

<body>
    <table width="100%" border="1" cellspacing="0" cellpadding="0">
        <tr>
            <th colspan="13" align="center"><strong>
                    <br />&nbsp;
                    <br /><?php echo $razonsocial ?>
                    <br /><?php echo $nombreIdent . ' : ' . $numeroIdent . "<br/>" . $direccinTer . ' Tel:' . $telefonoTer ?>
                    <br />&nbsp;
                    <br />RELACION EGRESOS SIN PRESUPUESTO
                    <br /> Fechas entre <?php echo $fechaIn . ' y ' . $fechaFi; ?>
                    <br />&nbsp;

            </th>
        </tr>
        <tr>
            <td align="center" rowspan="2"><strong>FECHA</strong></td>
            <td align="center" rowspan="2"><strong>TIPO EGRESO</strong></td>
            <td align="center" rowspan="2"><strong>NÚMERO EGRESO</strong></td>
            <td align="center" rowspan="2"><strong>BENEFICIARIO</strong></td>
            <td align="center" rowspan="2"><strong>CÉDULA O NIT</strong></td>
            <td align="center" rowspan="2"><strong>DETALLE PAGO</strong></td>
            <td align="center" rowspan="2"><strong>VALOR COMPROBANTE PAGO</strong></td>
            <td align="center" rowspan="2"><strong>DESCUENTOS</strong></td>
            <td align="center" colspan="2"><strong>NETO PAGADO</strong></td>
            <td align="center" rowspan="2"><strong>BANCO</strong></td>
            <td align="center" rowspan="2"><strong>N° DE CUENTA</strong></td>
            <td align="center" rowspan="2"><strong>NÚMERO DE CHEQUE</strong></td>

        </tr>
        <tr>
            <td align="center"><strong>DÉBITO</strong></td>
            <td align="center"><strong>CRÉDITO</strong></td>
        </tr>
        <?php
        #**********Buscar Egresos Entre valores recibidos************###
        if ($terceroF == 9) {
            switch ($conexion) {
                case 1:
                    $egresos = $con->Listar("SELECT
                        cp.id_unico,
                        DATE_FORMAT(cp.fecha, '%d/%m/%Y'),
                        cp.numero,
                        tp.sigla,
                        IF(CONCAT_WS(' ',
                        t.nombreuno,
                        t.nombredos,
                        t.apellidouno,
                        t.apellidodos) IS NULL 
                        OR CONCAT_WS(' ',
                        t.nombreuno,
                        t.nombredos,
                        t.apellidouno,
                        t.apellidodos) = '',
                        (t.razonsocial),
                        CONCAT_WS(' ',
                        t.nombreuno,
                        t.nombredos,
                        t.apellidouno,
                        t.apellidodos)) AS NOMBRE,
                        t.numeroidentificacion,
                        t.digitoverficacion,
                        cp.descripcion,
                        tcb.razonsocial,
                        cb.numerocuenta,
                        IF((SELECT GROUP_CONCAT(DISTINCT ' ', dcm.numero)
                        FROM gf_detalle_comprobante_mov dcm
                        WHERE dcm.comprobantecnt = dc.id_unico) IS NULL,'ND',
                        (SELECT GROUP_CONCAT(DISTINCT ' ', dcm.numero)
                        FROM gf_detalle_comprobante_mov dcm
                        WHERE dcm.comprobantecnt = dc.id_unico)) AS 'No. De Cheque',
                        (SELECT SUM(IF(dcv.valor < 0,dcv.valor * -1,dcv.valor))
                        FROM gf_detalle_comprobante dcv
                        LEFT JOIN gf_cuenta cd ON dcv.cuenta = cd.id_unico
                        WHERE dcv.comprobante = cp.id_unico AND cd.clasecuenta = 11 
                        AND(( cd.naturaleza = 1 AND dcv.valor < 0) 
                        OR(cd.naturaleza = 2 AND dcv.valor > 0))) AS 'NetoPagado',
                        (IF((c.naturaleza=1 AND dc.valor>0) OR (c.naturaleza=2 AND dc.valor<0),(IF(dc.valor < 0,dc.valor * -1,dc.valor)), 0 )) as 'Débito', 
                        (IF((c.naturaleza=1 AND dc.valor<0) OR (c.naturaleza=2 AND dc.valor>0),(IF(dc.valor < 0,dc.valor * -1,dc.valor)), 0 )) as 'Credito' 
                        FROM gf_comprobante_cnt cp
                        LEFT JOIN gf_tipo_comprobante tp ON cp.tipocomprobante = tp.id_unico
                        LEFT JOIN gf_tercero t ON t.id_unico = cp.tercero
                        LEFT JOIN gf_comprobante_pptal cpp ON cpp.numero = cp.numero AND tp.comprobante_pptal = cpp.tipocomprobante
                        LEFT JOIN gf_detalle_comprobante dc ON dc.comprobante = cp.id_unico
                        LEFT JOIN gf_cuenta c ON dc.cuenta = c.id_unico
                        LEFT JOIN gf_cuenta_bancaria cb ON c.id_unico = cb.cuenta
                        LEFT JOIN gf_tercero tcb ON cb.banco = tcb.id_unico
                        WHERE cp.fecha BETWEEN '$fechaI' AND '$fechaF' 
                        AND t.numeroidentificacion >= '$terceroI' 
                        AND tp.clasecontable = 14 AND c.clasecuenta = 11 
                        AND cp.parametrizacionanno = $anno 
                        AND (SELECT COUNT(dt.id_unico) FROM gf_detalle_comprobante_pptal dt 
                        WHERE dt.comprobantepptal = cpp.id_unico) =0 
                        ORDER BY cp.fecha, cp.numero ASC ");
                    break;
                case 2:
                    $egresos = $con->Listar("SELECT
                    cp.id_unico,
                    TO_CHAR(cp.fecha, 'DD/MM/YYYY'),
                    cp.numero,
                    tp.sigla,
                    CASE WHEN TRIM(t.nombreuno || ' ' || t.nombredos || ' ' || t.apellidouno || ' ' || t.apellidodos) IS NULL OR
                    TRIM(t.nombreuno || ' ' || t.nombredos || ' ' || t.apellidouno || ' ' || t.apellidodos) = ''
                    THEN t.razonsocial
                    ELSE TRIM(t.nombreuno || ' ' || t.nombredos || ' ' || t.apellidouno || ' ' || t.apellidodos)
                    END AS NOMBRE,
                    t.numeroidentificacion,
                    t.digitoverficacion,
                    cp.descripcion,
                    tcb.razonsocial,
                    cb.numerocuenta,
                    (SELECT CASE
                    WHEN LISTAGG(DISTINCT dcm.numero, ' ') WITHIN GROUP (ORDER BY dcm.numero) IS NULL THEN 'ND'
                    ELSE LISTAGG(DISTINCT dcm.numero, ' ') WITHIN GROUP (ORDER BY dcm.numero) END
                     FROM gf_detalle_comprobante_mov dcm
                     WHERE dcm.comprobantecnt = dc.id_unico) AS No. De Cheque,
                    (SELECT SUM( CASE
                    WHEN dcv.valor < 0 THEN dcv.valor * -1
                    ELSE dcv.valor END)
                     FROM gf_detalle_comprobante dcv
                     LEFT JOIN gf_cuenta cd ON dcv.cuenta = cd.id_unico
                     WHERE dcv.comprobante = cp.id_unico
                    AND cd.clasecuenta = 11
                    AND ((cd.naturaleza = 1 AND dcv.valor < 0) OR (cd.naturaleza = 2 AND dcv.valor > 0))
                    ) AS NetoPagado,
                    CASE WHEN (c.naturaleza = 1 AND dc.valor > 0) OR (c.naturaleza = 2 AND dc.valor < 0) THEN
                    CASE WHEN dc.valor < 0 THEN dc.valor * -1
                    ELSE dc.valor
                    END ELSE 0
                    END AS Debito,
                    CASE WHEN (c.naturaleza = 1 AND dc.valor < 0) OR (c.naturaleza = 2 AND dc.valor > 0) THEN
                    CASE WHEN dc.valor < 0 THEN dc.valor * -1
                    ELSE dc.valor END
                    ELSE 0
                    END AS Credito
                    FROM gf_comprobante_cnt cp
                    LEFT JOIN gf_tipo_comprobante tp ON cp.tipocomprobante = tp.id_unico
                    LEFT JOIN gf_tercero t ON t.id_unico = cp.tercero
                    LEFT JOIN gf_comprobante_pptal cpp ON cpp.numero = cp.numero AND tp.comprobante_pptal = cpp.tipocomprobante
                    LEFT JOIN gf_detalle_comprobante dc ON dc.comprobante = cp.id_unico
                    LEFT JOIN gf_cuenta c ON dc.cuenta = c.id_unico
                    LEFT JOIN gf_cuenta_bancaria cb ON c.id_unico = cb.cuenta
                    LEFT JOIN gf_tercero tcb ON cb.banco = tcb.id_unico
                    WHERE cp.fecha BETWEEN '$fechaI' AND '$fechaF'
                    AND t.numeroidentificacion >= '$terceroI' 
                    AND tp.clasecontable = 14
                    AND c.clasecuenta = 11
                    AND cp.parametrizacionanno =  $anno 
                    AND (SELECT COUNT(dt.id_unico) FROM gf_detalle_comprobante_pptal dt
                    WHERE dt.comprobantepptal = cpp.id_unico) = 0
                    ORDER BY cp.fecha, cp.numero ASC");
                    break;
                default:
                    # code...
                    break;
            }
        } else {
            switch ($conexion) {
                case 1:
                    $egresos = $con->Listar("SELECT
                        cp.id_unico,
                        DATE_FORMAT(cp.fecha, '%d/%m/%Y'),
                        cp.numero,
                        tp.sigla,
                        IF(CONCAT_WS(' ',
                        t.nombreuno,
                        t.nombredos,
                        t.apellidouno,
                        t.apellidodos) IS NULL 
                        OR CONCAT_WS(' ',
                        t.nombreuno,
                        t.nombredos,
                        t.apellidouno,
                        t.apellidodos) = '',
                        (t.razonsocial),
                        CONCAT_WS(' ',
                        t.nombreuno,
                        t.nombredos,
                        t.apellidouno,
                        t.apellidodos)) AS NOMBRE,
                        t.numeroidentificacion,
                        t.digitoverficacion,
                        cp.descripcion,
                        tcb.razonsocial,
                        cb.numerocuenta,
                        IF((SELECT GROUP_CONCAT(DISTINCT ' ', dcm.numero)
                        FROM gf_detalle_comprobante_mov dcm
                        WHERE dcm.comprobantecnt = dc.id_unico) IS NULL,'ND',
                        (SELECT GROUP_CONCAT(DISTINCT ' ', dcm.numero)
                        FROM gf_detalle_comprobante_mov dcm
                        WHERE dcm.comprobantecnt = dc.id_unico)) AS 'No. De Cheque',
                        (SELECT SUM(IF(dcv.valor < 0,dcv.valor * -1,dcv.valor))
                        FROM gf_detalle_comprobante dcv
                        LEFT JOIN gf_cuenta cd ON dcv.cuenta = cd.id_unico
                        WHERE dcv.comprobante = cp.id_unico AND cd.clasecuenta = 11 
                        AND(( cd.naturaleza = 1 AND dcv.valor < 0) 
                        OR(cd.naturaleza = 2 AND dcv.valor > 0))) AS 'Neto Pagado',
                        (IF((c.naturaleza=1 AND dc.valor>0) OR (c.naturaleza=2 AND dc.valor<0),(IF(dc.valor < 0,dc.valor * -1,dc.valor)), 0 )) as 'Débito', 
                        (IF((c.naturaleza=1 AND dc.valor<0) OR (c.naturaleza=2 AND dc.valor>0),(IF(dc.valor < 0,dc.valor * -1,dc.valor)), 0 )) as 'Credito' 
                        FROM gf_comprobante_cnt cp
                        LEFT JOIN gf_tipo_comprobante tp ON cp.tipocomprobante = tp.id_unico
                        LEFT JOIN gf_tercero t ON t.id_unico = cp.tercero
                        LEFT JOIN gf_comprobante_pptal cpp ON cpp.numero = cp.numero AND tp.comprobante_pptal = cpp.tipocomprobante
                        LEFT JOIN gf_detalle_comprobante dc ON dc.comprobante = cp.id_unico
                        LEFT JOIN gf_cuenta c ON dc.cuenta = c.id_unico
                        LEFT JOIN gf_cuenta_bancaria cb ON c.id_unico = cb.cuenta
                        LEFT JOIN gf_tercero tcb ON cb.banco = tcb.id_unico
                        WHERE cp.fecha BETWEEN '$fechaI' AND '$fechaF' 
                        AND t.numeroidentificacion BETWEEN '$terceroI' AND '$terceroF' 
                        AND tp.clasecontable = 14 AND c.clasecuenta = 11 
                        AND cp.parametrizacionanno = $anno 
                        AND (SELECT COUNT(dt.id_unico) FROM gf_detalle_comprobante_pptal dt 
                        WHERE dt.comprobantepptal = cpp.id_unico) =0 
                        ORDER BY cp.fecha, cp.numero ASC ");
                    break;
                case 2:
                    $egresos = $con->Listar("SELECT cp.id_unico,
                    TO_CHAR(cp.fecha, 'DD/MM/YYYY'),
                    cp.numero,
                    tp.sigla,
                    LTRIM(t.nombreuno || ' ' || t.nombredos || ' ' || t.apellidouno || ' ' || t.apellidodos || ' ' || t.razonsocial)
                    AS NOMBRE,
                    t.numeroidentificacion,
                    t.digitoverficacion,
                    cp.descripcion,
                    tcb.razonsocial,
                    cb.numerocuenta,
                    CASE WHEN (SELECT LISTAGG(dcm.numero, ' ') WITHIN GROUP (ORDER BY dcm.numero)
                    FROM gf_detalle_comprobante_mov dcm
                    WHERE dcm.comprobantecnt = dc.id_unico) IS NULL 
                    THEN 'ND'
                    ELSE (SELECT LISTAGG(dcm.numero, ' ') WITHIN GROUP (ORDER BY dcm.numero)
                    FROM gf_detalle_comprobante_mov dcm
                    WHERE dcm.comprobantecnt = dc.id_unico)
                    END AS NumCheque,
                    (SELECT SUM(CASE WHEN dcv.valor < 0 THEN dcv.valor * -1 ELSE dcv.valor END)
                    FROM gf_detalle_comprobante dcv
                    LEFT JOIN gf_cuenta cd ON dcv.cuenta = cd.id_unico
                    WHERE dcv.comprobante = cp.id_unico AND cd.clasecuenta = 11 
                    AND ((cd.naturaleza = 1 AND dcv.valor < 0) OR (cd.naturaleza = 2 AND dcv.valor > 0))) AS NetoPagado,
                    (CASE
                    WHEN (c.naturaleza = 1 AND dc.valor > 0) OR (c.naturaleza = 2 AND dc.valor < 0) THEN
                    CASE WHEN dc.valor < 0 THEN dc.valor * -1 ELSE dc.valor END
                    ELSE 0
                    END) AS Debito, (CASE WHEN (c.naturaleza = 1 AND dc.valor < 0) OR (c.naturaleza = 2 AND dc.valor > 0) THEN
                    CASE WHEN dc.valor < 0 THEN dc.valor * -1 ELSE dc.valor END
                    ELSE 0 END) AS Credito 
                    FROM gf_comprobante_cnt cp
                    LEFT JOIN gf_tipo_comprobante tp ON cp.tipocomprobante = tp.id_unico
                    LEFT JOIN gf_tercero t ON t.id_unico = cp.tercero
                    LEFT JOIN gf_comprobante_pptal cpp ON cpp.numero = cp.numero AND tp.comprobante_pptal = cpp.tipocomprobante
                    LEFT JOIN gf_detalle_comprobante dc ON dc.comprobante = cp.id_unico
                    LEFT JOIN gf_cuenta c ON dc.cuenta = c.id_unico
                    LEFT JOIN gf_cuenta_bancaria cb ON c.id_unico = cb.cuenta
                    LEFT JOIN gf_tercero tcb ON cb.banco = tcb.id_unico
                    WHERE cp.fecha BETWEEN '$fechaI' AND '$fechaF' 
                    AND t.numeroidentificacion BETWEEN '$terceroI' AND '$terceroF' 
                    AND tp.clasecontable = 14 AND c.clasecuenta = 11 
                    AND cp.parametrizacionanno = $anno
                    AND (SELECT COUNT(dt.id_unico) FROM gf_detalle_comprobante_pptal dt 
                    WHERE dt.comprobantepptal = cpp.id_unico) = 0 
                    ORDER BY cp.fecha, cp.numero ASC");
                    break;
                default:
                    # code...
                    break;
            }
        }
        #echo $egresos;
        // $egresos = $mysqli->query($egresos);
        if (count($egresos) > 0) {
            $x = 0;
            // while ($row = mysqli_fetch_row($egresos)) {
            for ($row = 0; $row < count($egresos); $row++) {

                if (empty($egresos[$row][6])) {
                    $tercero = $egresos[$row][5];
                } else {
                    $tercero = $egresos[$row][5] . ' - ' . $egresos[$row][6];
                }
                ##***Imprimir los datos del egreso 
        ?>
                <tr>
                    <td align="left"><?php echo $egresos[$row][1] ?></td>
                    <td align="left"><?php echo mb_strtoupper($egresos[$row][3]) ?></td>
                    <td align="left"><?php echo $egresos[$row][2] ?></td>
                    <td align="left"><?php echo ucwords(mb_strtolower($egresos[$row][4])) ?></td>
                    <td align="left"><?php echo $tercero ?></td>
                    <td align="left"><?php echo $egresos[$row][7] ?></td>
                    <td><?php echo number_format($egresos[$row][13], 2, '.', ',') ?></td>
                    <td align="left">0.00</td>
                    <td><?php echo number_format($egresos[$row][12], 2, '.', ',') ?></td>
                    <td><?php echo number_format($egresos[$row][13], 2, '.', ',') ?></td>
                    <td align="left"><?php echo $egresos[$row][8] ?></td>
                    <td align="left"><?php echo $egresos[$row][9] ?></td>
                    <td align="left"><?php echo $egresos[$row][10] ?></td>

                </tr>
        <?php  }
        }
        ?>
    </table>
</body>

</html>