<?php
################################################################################################################
#                                                                                          MODIFICACIONES
#19/07/2017 | ERICA G. | ARCHIVO CREADO * INFORME AUXILIAR CONTABLE RETENCIONES   EXCEL                                                                                          
################################################################################################################
header("Content-type: application/vnd.ms-excel");
require_once("../Conexion/conexion.php");
require_once("../Conexion/ConexionPDO.php");
$con = new ConexionPDO();
$conexion = $_SESSION['conexion'];
session_start();
header("Content-Disposition: attachment; filename=Informe_Auxiliar_Contable_Retenciones.xls");
ini_set('max_execution_time', 0);
session_start();

$para = $_SESSION['anno'];
$an = $con->Listar("SELECT anno FROM gf_parametrizacion_anno WHERE id_unico = $para");
// $an = $mysqli->query($an);
$an = $an;
$anno = $an[0][0];
##########RECEPCION VARIABLES###############
#CUENTA INICIAL
if (empty($_REQUEST['sltctai'])) {
    $cuentaI = '1';
} else {
    $cuentaI = $_REQUEST['sltctai'];
}
#CUENTA FINAL
if (empty($_REQUEST['sltctaf'])) {
    $cuentaF = '9';
} else {
    $cuentaF = $_REQUEST['sltctaf'];
}

#FECHA INICIAL
if (empty($_REQUEST['fechaini'])) {
    $fechaY = $anno;
    $fechaI = $fechaY . '/01/01';
    $fecha1 = '01/01/' . $anno;
} else {
    $fecha1 = $_REQUEST['fechaini'];
    $fecha_div = explode("/", $fecha1);
    $dia1 = $fecha_div[0];
    $mes1 = $fecha_div[1];
    $anio1 = $fecha_div[2];
    $fechaI = $anio1 . '/' . $mes1 . '/' . $dia1;
}
#FECHA FINAL
if (empty($_REQUEST['fechafin'])) {
    $fechaF = date('Y/m/d');
    $fecha2 = date('d/m/Y');
} else {
    $fecha2 = $_REQUEST['fechafin'];
    $fecha_div2 = explode("/", $fecha2);
    $dia2 = $fecha_div2[0];
    $mes2 = $fecha_div2[1];
    $anio2 = $fecha_div2[2];
    $fechaF = $anio2 . '/' . $mes2 . '/' . $dia2;
}

##CONSULTA DATOS COMPAÑIA##
$compa = $_SESSION['compania'];
$comp = $con->Listar("SELECT t.razonsocial, t.numeroidentificacion, t.digitoverficacion, t.ruta_logo 
FROM gf_tercero t WHERE id_unico=$compa");
// $comp = $mysqli->query($comp);
$comp = $comp;
$nombreCompania = $comp[0][0];
if (empty($comp[0][2])) {
    $nitcompania = $comp[0][1];
} else {
    $nitcompania = $comp[0][1] . ' - ' . $comp[0][2];
}
$ruta = $comp[0][3];
$usuario = $_SESSION['usuario'];
#CREACION  HEAD EXCEL
#***********************Datos Compañia***********************#
$compania = $_SESSION['compania'];
switch ($conexion) {
    case 1:
        $rowC = $con->Listar("SELECT 
        ter.id_unico,
        ter.razonsocial,
        UPPER(ti.nombre),
        IF(ter.digitoverficacion IS NULL OR ter.digitoverficacion='',
        ter.numeroidentificacion, 
        CONCAT(ter.numeroidentificacion, ' - ', ter.digitoverficacion)),
        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");
        break;
    case 2:
        $rowC = $con->Listar("SELECT 
        ter.id_unico,
        ter.razonsocial,
        UPPER(ti.nombre),
        CASE
        WHEN ter.digitoverficacion IS NULL OR ter.digitoverficacion = '' THEN ter.numeroidentificacion
        ELSE ter.numeroidentificacion || ' - ' || ter.digitoverficacion
        END AS 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");
        break;
    default:
        # code...
        break;
}


$razonsocial = $rowC[0][1];
$nombreIdent = $rowC[0][2];
$numeroIdent = $rowC[0][3];
$direccinTer = $rowC[0][4];
$telefonoTer = $rowC[0][5];
$ruta_logo   = $rowC[0][6];
?>
<!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>Informe Auxiliar Contable Retenciones</title>
</head>

<body>
    <table width="100%" border="1" cellspacing="0" cellpadding="0">
        <th colspan="7" align="center"><strong>
                <br />&nbsp;
                <br /><?php echo $razonsocial ?>
                <br /><?php echo $nombreIdent . ' : ' . $numeroIdent . "<br/>" . $direccinTer . ' Tel:' . $telefonoTer ?>
                <br />&nbsp;
                <br />AUXILIAR CONTABLE DE RETENCIONES
                <br />ENTRE <?php echo $fecha1 . ' - ' . $fecha2 ?>
                <br />&nbsp;
            </strong>
        </th>
        <tr></tr>
        <tr>
            <td>
                <center><strong>TIPO CXP</strong></center>
            </td>
            <td>
                <center><strong>NÚMERO CXP</strong></center>
            </td>
            <td>
                <center><strong>FECHA</strong></center>
            </td>
            <td>
                <center><strong>NOMBRE TERCERO</strong></center>
            </td>
            <td>
                <center><strong>DESCRIPCIÓN</strong></center>
            </td>
            <td>
                <center><strong>VALOR RETENCIÓN</strong></center>
            </td>
            <td>
                <center><strong>BASE GRAVABLE</strong></center>
            </td>

        </tr>

        <?php
        ###################CONSULTA CUENTAS###########
        $ctas = $con->Listar("SELECT DISTINCT 
            c.id_unico, c.codi_cuenta, LOWER(c.nombre)
        FROM gf_detalle_comprobante dc 
        LEFT JOIN gf_comprobante_cnt cn ON dc.comprobante = cn.id_unico 
        LEFT JOIN gf_retencion r ON r.comprobante = cn.id_unico 
        LEFT JOIN gf_tipo_retencion tc ON r.tiporetencion = tc.id_unico 
        LEFT JOIN gf_cuenta c ON tc.cuenta = c.id_unico 
        WHERE cn.fecha BETWEEN '$fechaI' AND '$fechaF' 
        AND c.codi_cuenta BETWEEN '$cuentaI' AND '$cuentaF' 
        AND c.parametrizacionanno = $para 
        AND cn.parametrizacionanno = $para  
        ORDER BY c.codi_cuenta ASC");
        // $ctas = $mysqli->query($ctas);
        if (count($ctas) > 0) {
            // while ($row = mysqli_fetch_row($ctas)) { 
            for ($row = 0; $row < count($ctas); $row++) { ?>
                <tr>
                    <td colspan="7">
                        <i><strong><?php echo ('Cuenta Retención: ' . $ctas[$row][1] . ' - ' . ucwords($ctas[$row][2])); ?></strong></i>
                    </td>
                </tr>
                <?php
                #############BUSCAR ORDENES DE PAGO QUE TIENEN RETENCION Y ESA CUENTA##########
                switch ($conexion) {
                    case 1:
                        $cp = $con->Listar("SELECT DISTINCT cn.id_unico, 
                        tc.sigla, cn.numero, 
                        DATE_FORMAT(cn.fecha, '%d/%m/%Y'), 
                         r.valorretencion, r.retencionbase , 
                         IF(CONCAT_WS(' ',
                         tr.nombreuno,
                         tr.nombredos,
                         tr.apellidouno,
                         tr.apellidodos) 
                         IS NULL OR CONCAT_WS(' ',
                         tr.nombreuno,
                         tr.nombredos,
                         tr.apellidouno,
                         tr.apellidodos) = '',
                         (tr.razonsocial),
                         CONCAT_WS(' ',
                         tr.nombreuno,
                         tr.nombredos,
                         tr.apellidouno,
                         tr.apellidodos)) AS NOMBRE , cn.descripcion 
                         FROM gf_comprobante_cnt cn 
                         LEFT JOIN gf_tipo_comprobante tc ON tc.id_unico = cn.tipocomprobante 
                         LEFT JOIN gf_retencion r ON r.comprobante = cn.id_unico 
                         LEFT JOIN gf_tipo_retencion tret ON r.tiporetencion = tret.id_unico 
                         LEFT JOIN gf_detalle_comprobante dc ON dc.comprobante = cn.id_unico 
                         LEFT JOIN gf_tercero tr ON tr.id_unico = cn.tercero 
                         WHERE tret.cuenta = " . $ctas[$row][0] . " AND cn.fecha BETWEEN '$fechaI' AND '$fechaF' 
                         AND cn.parametrizacionanno = $para 
                         ORDER BY tc.sigla, cn.numero, cn.fecha ");
                        break;
                    case 2:
                        $cp = $con->Listar("SELECT DISTINCT
                        cn.id_unico,
                        tc.sigla,
                        cn.numero,
                        TO_CHAR(cn.fecha, 'YYYY/MM/DD') AS fecha_format,
                        r.valorretencion,
                        r.retencionbase,
                        CASE WHEN (TRIM(tr.nombreuno) || ' ' || TRIM(tr.nombredos) || ' ' || TRIM(tr.apellidouno) || ' ' || TRIM(tr.apellidodos) IS NULL OR
                        TRIM(tr.nombreuno) || ' ' || TRIM(tr.nombredos) || ' ' || TRIM(tr.apellidouno) || ' ' || TRIM(tr.apellidodos) = '') THEN tr.razonsocial
                        ELSE (TRIM(tr.nombreuno) || ' ' || TRIM(tr.nombredos) || ' ' || TRIM(tr.apellidouno) || ' ' || TRIM(tr.apellidodos))
                        END AS NOMBRE, cn.descripcion
                        FROM gf_comprobante_cnt cn
                        LEFT JOIN gf_tipo_comprobante tc ON tc.id_unico = cn.tipocomprobante
                        LEFT JOIN gf_retencion r ON r.comprobante = cn.id_unico
                        LEFT JOIN gf_tipo_retencion tret ON r.tiporetencion = tret.id_unico
                        LEFT JOIN gf_detalle_comprobante dc ON dc.comprobante = cn.id_unico
                        LEFT JOIN gf_tercero tr ON tr.id_unico = cn.tercero
                        WHERE tret.cuenta = " . $ctas[$row][0] . "
                        AND cn.fecha BETWEEN TO_DATE('$fechaI', 'YYYY/MM/DD') AND TO_DATE('$fechaF', 'YYYY/MM/DD')
                        AND cn.parametrizacionanno = $para ORDER BY
                        tc.sigla, cn.numero, TO_CHAR(cn.fecha, 'YYYY/MM/DD'), NOMBRE");
                        break;
                    default:
                        # code...
                        break;
                }

                // $cp = $mysqli->query($cp);
                if (count($cp) > 0) {
                    $subValor = 0;
                    $subBase   = 0;
                    // while ($row1 = mysqli_fetch_row($cp)) {
                    for ($row1 = 0; $row1 < count($cp); $row1++) {
                        $cntTercero = ucwords(mb_strtolower($cp[$row1][6]));
                        $descripcion = (($cp[$row1][7]));
                        $cntTipo = mb_strtoupper($cp[$row1][1]);
                        $cntN = $cp[$row1][2];
                        $cntFecha = $cp[$row1][3];
                        $valor = $cp[$row1][4];
                        $base = $cp[$row1][5]; ?>
                        <tr>
                            <td align="right">
                                <?php echo ($cntTipo); ?>
                            </td>
                            <td>
                                <?php echo ($cntN); ?>
                            </td>
                            <td>
                                <?php echo ($cntFecha); ?>
                            </td>
                            <td>
                                <?php echo ($cntTercero); ?>
                            </td>
                            <td>
                                <?php echo ($descripcion); ?>
                            </td>
                            <td align="right">
                                <?php echo number_format($valor, 2, '.', ','); ?>
                            </td>
                            <td align="right">
                                <?php echo number_format($base, 2, '.', ','); ?>
                            </td>
                        </tr>
                <?php
                        $subValor = $subValor + $valor;
                        $subBase = $subBase + $base;
                    }
                }
                #SUBTOTALES
                ?>
                <tr>
                    <td colspan="5" align="right">
                        <strong>TOTAL</strong>
                    </td>
                    <td align="right"><strong><?php echo number_format($subValor, 2, '.', ','); ?></strong></td>
                    <td align="right"><strong><?php echo number_format($subBase, 2, '.', ','); ?></strong></td>
                </tr>
            <?php
                $totalV = $totalV + $subValor;
                $totalB = $totalB + $subBase;
            } ?>
            <tr>
                <td colspan="5" align="right">
                    <strong>TOTAL FINAL</strong>
                </td>
                <td align="right"><strong><?php echo number_format($totalV, 2, '.', ','); ?></strong></td>
                <td align="right"><strong><?php echo number_format($totalB, 2, '.', ','); ?></strong></td>
            </tr>
        <?php
        }
        ?>
    </table>
</body>

</html>