<?php

/*
 * Html
 */

echo '
              <!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" />

                <style type="text/css">
                  table{
                    /*font-family: "Lucida Sans Unicode", "Lucida Grande", Sans-Serif;*/
                    font-size: 13px;
                    /*margin: 5px;*/
                    /*width: 880px;*/
                    /*width: 100%;*/
                    text-align: left;
                    border-collapse: collapse;
                   }
                  </style>

              </head>
              <body>
              ';

/*
 * Cabecera informe
 */
echo '<table
        border="0"

        width="100%"
        ><tbody><tr><td
        height=80
        ><h2
        align="left"
        >Análisis auxiliar y tercero</h2></td></tbody></table>';


/*
 * Consulta de cabecera cuentas
 */
$sql_cuentas = ' select * from (
                select distinct
                    ID_CLASE_CUENTA,
                    ID_GRUPO_CUENTA,
                    ID_CUENTA_MAYOR,
                    ID_CATALOGO,
                    ID_AUXILIAR,
                    NULL AS ID_MAE_TER,
                    NOMBRE_CUENTA,
                    CUENTA
                from (
                        select *
                        from CN_RES_ANL_AUX
                        where
                        vig_per between ' . $vig_perIni . ' and ' . $vig_perFin . '
                        and ID_CEN_OP = ' . $cen_op . ' and ID_cia = ' . $cia . '
                        ' . $whereClase . ' ' . $whereGrupo . ' ' . $whereCuenta . '
                        ' . $whereCatalogo . ' ' . $whereAuxiliar . ' ' . $whereTercero . '
                    )
            )
            lib
            WHERE
            lib.ID_AUXILIAR is null
            AND lib.ID_MAE_TER is null

            ORDER BY
            lib.CUENTA ASC ';

$records_cuentas = CN_TABLE::executeSQL($sql_cuentas);

/*
 * Consulta de cabecera cuentas
 */
$sql_vig_per = ' select * from(
                select
                ID_VIGENCIA || SUBSTR( \'00\'  || ID_PERIODO_CONTABLE , -2,2 ) AS VIG_PER,
                ID_VIGENCIA,
                ID_PERIODO_CONTABLE,
                NOM_PERIODO
                from CN_VIGENCIA,CN_PERIODO_CONTABLE
                order by
                ID_VIGENCIA,
                ID_PERIODO_CONTABLE
                )
                where vig_per between ' . $vig_perIni . ' and ' . $vig_perFin . '
                order by
                vig_per';

$records_vig_per = CN_TABLE::executeSQL($sql_vig_per);

/*
 * Tabla de cuentas
 */
echo "<table border='1' width='750' >";
//fila cabecera cuentas
echo "<tr bgcolor='#81BEF7'>
<th width='20%'>Cuenta</th>
<th width='40%'>Nombre Cuenta</th>
<th width='40%'>Saldo</th>
</tr>";

$even_cuentas = false;
$even_tot_cuenta = true;

foreach ($records_cuentas as $valueCuentas) {

    if ($even_cuentas) {
        //cuentas
        echo "<table border='1' width='750' >";
        //fila cabecera cuentas
        echo "<tr  bgcolor='#81BEF7'><th width='20%'>Cuenta</th><th width='40%'>Nombre Cuenta</th>
                <th width='40%'>Saldo</th></tr>";
        echo "<tr>";

        $even_cuentas = false;
    }


    echo "<tr>";

    echo "<td>" . $valueCuentas['cuenta'] . '</td>
            <td>' . $valueCuentas['nombre_cuenta'] . "</td>";

    //variables acumulables subcuentas
    $debitoAcumuladoSubc = 0;
    $creditoAcumuladoSubc = 0;
    $naturalezaSubc = "";

    if (strlen($valueCuentas['cuenta']) == 6) {

        $even_cuentas = true;

        /*
         * Saldo de la subcuenta
         */
        $sql = "SELECT SUM(SALDO_ANTERIOR) as saldo_anterior, SUM(SALDO_ACTUAL) as saldo_actual
                    FROM CN_SALDO
                    WHERE SUBCUENTA='" . $valueCuentas["cuenta"] . "'
                    AND ID_VIGENCIA = " . $vig_ini . "
                    AND ID_PERIODO_CONTABLE = " . $per_ini . "
                    AND ID_CIA = " . $cia . "
                    AND ID_CEN_OP = " . $cen_op;
        $record = CN_TABLE::executeSQL($sql);

        $saldo_cuenta = "$" . number_format($record[0]["saldo_actual"], 2, ',', '.');
        echo "<td align='right'>" . $saldo_cuenta . "</td>";

        echo "</tr>";
        echo "</table>";
        echo "<br>";

        /*
         * Consulta auxiliar - tercero
         */
        $sql_aux_ter = "select * from (
                            SELECT distinct
                            ID_AUXILIAR,
                            COD_AUX,
                            NOMBRE AS NOMBRE_AUX,
                            null as ID_MAE_TER,
                            null as NITOCC,
                            null as NOMBRE_TER
                            FROM CN_AUXILIAR
                            WHERE ID_AUXILIAR IN (
                                SELECT sal.ID_AUXILIAR
                                FROM CN_SALDO sal

                                JOIN CN_MOVIMIENTO_CONTABLE mov on
                                mov.ID_CIA = sal.ID_CIA
                                AND mov.ID_VIGENCIA = sal.ID_VIGENCIA
                                and mov.ID_CEN_OP = sal.ID_CEN_OP
                                and mov.ID_CLASE_CUENTA = sal.ID_CLASE_CUENTA
                                and mov.ID_GRUPO_CUENTA = sal.ID_GRUPO_CUENTA
                                and mov.ID_CUENTA_MAYOR = sal.ID_CUENTA_MAYOR
                                and mov.ID_CATALOGO = sal.ID_CATALOGO
                                and mov.ID_AUXILIAR = sal.ID_AUXILIAR

                                WHERE sal.SUBCUENTA='" . $valueCuentas["cuenta"] . "'
                                AND sal.ID_VIGENCIA between " . $vig_ini . " and " . $vig_fin . "
                                AND sal.ID_PERIODO_CONTABLE between " . $per_ini . " and " . $per_fin . "
                                AND sal.ID_MAE_TER IS NULL
                                AND sal.ID_CIA = " . $cia . "
                                AND sal.ID_CEN_OP =" . $cen_op . "
                            )
                             " . $id_auxiliar . "

                            union

                            SELECT distinct
                            null as ID_AUXILIAR,
                            null as COD_AUX,
                            null as NOMBRE_AUX,
                            ID_MAE_TER,
                            NITOCC,
                            NOMBRE AS NOMBRE_TER
                            FROM CN_MAE_TER
                            WHERE ID_MAE_TER IN (
                                SELECT sal.ID_MAE_TER
                                FROM CN_SALDO  sal

                                JOIN CN_MOVIMIENTO_CONTABLE mov on
                                mov.ID_CIA = sal.ID_CIA
                                AND mov.ID_VIGENCIA = sal.ID_VIGENCIA
                                and mov.ID_CEN_OP = sal.ID_CEN_OP
                                and mov.ID_CLASE_CUENTA = sal.ID_CLASE_CUENTA
                                and mov.ID_GRUPO_CUENTA = sal.ID_GRUPO_CUENTA
                                and mov.ID_CUENTA_MAYOR = sal.ID_CUENTA_MAYOR
                                and mov.ID_CATALOGO = sal.ID_CATALOGO
                                and mov.ID_MAE_TER = sal.ID_MAE_TER

                                WHERE  sal.SUBCUENTA='" . $valueCuentas["cuenta"] . "'
                                AND  sal.ID_VIGENCIA between " . $vig_ini . " and " . $vig_fin . "
                                 AND sal.ID_PERIODO_CONTABLE between " . $per_ini . " and " . $per_fin . "
                                AND  sal.ID_AUXILIAR IS NULL
                                AND sal.ID_CIA = " . $cia . "
                                AND sal.ID_CEN_OP =" . $cen_op . "
                            )

                            UNION

                            SELECT distinct
                             aux.ID_AUXILIAR,
                             aux.COD_AUX,
                             aux.NOMBRE AS NOMBRE_AUX,
                             ter.ID_MAE_TER,
                             ter.NITOCC,
                             ter.NOMBRE AS NOMBRE_TER
                            FROM CN_SALDO sal

                            JOIN CN_MAE_TER ter ON
                            sal.ID_MAE_TER = ter.ID_MAE_TER AND
                            sal.ID_CIA = ter.ID_CIA

                            JOIN CN_AUXILIAR aux ON
                            sal.ID_AUXILIAR = aux.ID_AUXILIAR AND
                            sal.ID_CIA = aux.ID_CIA

                            JOIN CN_MOVIMIENTO_CONTABLE mov on
                            mov.ID_CIA = sal.ID_CIA
                            AND mov.ID_VIGENCIA = sal.ID_VIGENCIA
                            and mov.ID_CEN_OP = sal.ID_CEN_OP
                            and mov.ID_CLASE_CUENTA = sal.ID_CLASE_CUENTA
                            and mov.ID_GRUPO_CUENTA = sal.ID_GRUPO_CUENTA
                            and mov.ID_CUENTA_MAYOR = sal.ID_CUENTA_MAYOR
                            and mov.ID_CATALOGO = sal.ID_CATALOGO
                            and mov.ID_AUXILIAR = sal.ID_AUXILIAR
                            and mov.ID_MAE_TER = sal.ID_MAE_TER

                            WHERE sal.SUBCUENTA='" . $valueCuentas["cuenta"] . "'
                            AND sal.ID_VIGENCIA between " . $vig_ini . " and " . $vig_fin . "
                            AND sal.ID_PERIODO_CONTABLE between " . $per_ini . " and " . $per_fin . "
                            AND sal.ID_CIA = " . $cia . "
                            AND sal.ID_CEN_OP =" . $cen_op . "
                             " . $id_auxiliar . "
                        )
                        tot
                        ORDER BY
                        tot.COD_AUX,
                        tot.NITOCC";
        $records_aux_ter = CN_TABLE::executeSQL($sql_aux_ter);

        if (count($records_aux_ter) > 0) {

            //recorrer cada auxiliar y tercero
            foreach ($records_aux_ter as $valueAuxTer) {

                //auxiliar - tercero
                echo "<table border='1' width='750' >";
                //fila cabecera cuentas
                echo "<tr  bgcolor='#A9D0F5'><th width='15%'>Cod. Auxiliar</th><th width='35%'>Auxiliar</th>
            <th width='15%'>Nitocc</th><th width='35%'>Tercero</th></tr>";
                echo "<tr>";
                //fila de valores auxiliar - tercero
                echo "<tr>";

                echo "<td>" . $valueAuxTer['cod_aux'] . '</td>';
                echo "<td>" . $valueAuxTer['nombre_aux'] . '</td>';
                echo "<td>" . $valueAuxTer['nitocc'] . '</td>';
                echo "<td>" . $valueAuxTer['nombre_ter'] . '</td>';

                echo "</tr>";

                echo "</table>";
                echo "<br>";

                /*
                 * Validaciones de datos auxiliar - tercero
                 */
                if (isset($valueAuxTer["id_auxiliar"], $valueAuxTer)) {
                    $whereAuxiliar = " = " . $valueAuxTer["id_auxiliar"];
                } else {
                    $whereAuxiliar = " is null ";
                }
                if (isset($valueAuxTer["id_mae_ter"], $valueAuxTer)) {
                    $whereTercero = " = " . $valueAuxTer["id_mae_ter"];
                } else {
                    $whereTercero = " is null ";
                }


                /*
                 * Tabla de movimientos
                 */
                echo "<table border='1' width='750' >";
                //fila cabecera
                echo "<tr  bgcolor='#CEE3F6'>
                <th width='10%'>Fecha</th>
                <th width='5%'>Tip. Com.</th>
                <th width='5%'>CAD</th>
                <th width='30%'>Descripcion</th>
                <th width='5%'>Soporte</th>
                <th width='15%'>Debito</th>
                <th width='15%'>Credito</th>
                <th width='15%'>Saldo</th>
                </tr>";

                //variables acumulables auxilares
                $debitoAcumulado = 0;
                $creditoAcumulado = 0;
                $naturaleza = "";

                /*
                 * Consulta movimientos para el rango de vigencias periodos del filtro
                 */
                foreach ($records_vig_per as $value_vig_per) {

                    /*
                     * Consulta para los movimientos del auxiliar y tercero
                     */

                    $sql_movimientos = "
                            SELECT cad.FECHA_CAD, tc.NOM_CORTO, mov.ID_CAD,
                            doc.DESCR_MTO, doc.DOC_SOPORTE, mov.DEBITO, mov.CREDITO
                            FROM CN_MOVIMIENTO_CONTABLE mov

                            JOIN CN_CONTROL_CAD cad
                             ON cad.ID_CIA = mov.ID_CIA
                            AND cad.ID_CAD = mov.ID_CAD
                            AND cad.ID_CEN_OP = mov.ID_CEN_OP
                            AND cad.ID_VIGENCIA = mov.ID_VIGENCIA

                            JOIN CN_TIPO_COMPROBANTE tc
                             ON cad.ID_CIA = tc.ID_CIA
                            AND cad.ID_TIPO_COMPROBANTE = tc.ID_TIPO_COMPROBANTE

                            JOIN CN_DOCUMENTO doc
                             ON doc.ID_CIA = mov.ID_CIA
                            AND doc.ID_CAD = mov.ID_CAD
                            AND doc.ID_DOCUMENTO = mov.ID_DOCUMENTO
                            AND doc.ID_CEN_OP = mov.ID_CEN_OP
                            AND doc.ID_VIGENCIA = mov.ID_VIGENCIA

                            WHERE mov.ID_CIA = " . $cia . "
                            AND mov.ID_CEN_OP = " . $cen_op . "
                            AND mov.ID_VIGENCIA = " . $value_vig_per['id_vigencia'] . "
                            AND cad.ID_PERIODO_CONTABLE = " . $value_vig_per['id_periodo_contable'] . "
                            AND mov.ID_CLASE_CUENTA = " . $valueCuentas['id_clase_cuenta'] . "
                            AND mov.ID_GRUPO_CUENTA = " . $valueCuentas['id_grupo_cuenta'] . "
                            AND mov.ID_CUENTA_MAYOR = " . $valueCuentas['id_cuenta_mayor'] . "
                            AND mov.ID_CATALOGO = " . $valueCuentas['id_catalogo'] . "
                            AND mov.ID_AUXILIAR " . $whereAuxiliar . "
                            AND mov.ID_MAE_TER " . $whereTercero . "

                            ORDER BY
                            mov.ID_MOV_CONT";

                    $records_movimientos = CN_TABLE::executeSQL($sql_movimientos);

                    //validacion si hay movimientos
                    if (count($records_movimientos) > 0) {
                        //recorrer los movimientos
                        foreach ($records_movimientos as $valueMov) {

                            echo "<tr>";
                            $fecha = explode(" ", $valueMov['fecha_cad']);
                            echo "<td width='10%'>" . $fecha[0] . '</td>';
                            echo "<td width='5%'>" . $valueMov['nom_corto'] . '</td>';
                            echo "<td width='5%'>" . $valueMov['id_cad'] . '</td>';
                            echo "<td width='30%'>" . $valueMov['descr_mto'] . '</td>';
                            echo "<td width='5%'>" . $valueMov['doc_soporte'] . '</td>';

                            $debito = "$" . number_format($valueMov['debito'], 2, ',', '.');
                            echo "<td width='15%' align='right'>" . $debito . '</td>';
                            $credito = "$" . number_format($valueMov['credito'], 2, ',', '.');
                            echo "<td width='15%' align='right'>" . $credito . '</td>';
                            echo "<td width='15%'> </td>";

                            echo "</tr>";
                        }

                        echo "<tr bgcolor='#BDBDBD'>";
                        echo "<td  colspan='3'>Subtotal Mes: </td>";
                        echo "<td colspan='2'>" . $value_vig_per['nom_periodo'] . ' ' . $value_vig_per['id_vigencia'] . '</td>';

                        /*
                         * Totales por mes
                         */
                        $sql_mov_tot = "
                                        SELECT
                                          cmay.NATURALEZA as NATU,
                                          SUM(mov.DEBITO) as DEBITO,
                                          SUM(mov.CREDITO) as CREDITO,
                                         CASE cmay.NATURALEZA
                                          WHEN 'D' THEN SUM(mov.DEBITO - mov.CREDITO)
                                          ELSE SUM(mov.CREDITO - mov.DEBITO)
                                          END AS SALDO
                                        FROM CN_MOVIMIENTO_CONTABLE mov

                                        JOIN CN_CONTROL_CAD cad
                                         ON cad.ID_CIA = mov.ID_CIA
                                        AND cad.ID_CAD = mov.ID_CAD
                                        AND cad.ID_CEN_OP = mov.ID_CEN_OP
                                        AND cad.ID_VIGENCIA = mov.ID_VIGENCIA

                                        JOIN CN_TIPO_COMPROBANTE tc
                                         ON cad.ID_CIA = tc.ID_CIA
                                        AND cad.ID_TIPO_COMPROBANTE = tc.ID_TIPO_COMPROBANTE

                                        JOIN CN_DOCUMENTO doc
                                         ON doc.ID_CIA = mov.ID_CIA
                                        AND doc.ID_CAD = mov.ID_CAD
                                        AND doc.ID_DOCUMENTO = mov.ID_DOCUMENTO
                                        AND doc.ID_CEN_OP = mov.ID_CEN_OP
                                        AND doc.ID_VIGENCIA = mov.ID_VIGENCIA

                                        JOIN CN_CUENTA_MAYOR cmay
                                         ON cmay.ID_CIA = mov.ID_CIA
                                        AND cmay.ID_CUENTA_MAYOR = mov.ID_CUENTA_MAYOR

                                        WHERE mov.ID_CIA = " . $cia . "
                                        AND mov.ID_CEN_OP = " . $cen_op . "
                                        AND mov.ID_VIGENCIA = " . $value_vig_per['id_vigencia'] . "
                                        AND cad.ID_PERIODO_CONTABLE = " . $value_vig_per['id_periodo_contable'] . "
                                        AND mov.ID_CLASE_CUENTA = " . $valueCuentas['id_clase_cuenta'] . "
                                        AND mov.ID_GRUPO_CUENTA = " . $valueCuentas['id_grupo_cuenta'] . "
                                        AND mov.ID_CUENTA_MAYOR = " . $valueCuentas['id_cuenta_mayor'] . "
                                        AND mov.ID_CATALOGO = " . $valueCuentas['id_catalogo'] . "
                                        AND mov.ID_AUXILIAR " . $whereAuxiliar . "
                                        AND mov.ID_MAE_TER " . $whereTercero . "

                                        GROUP BY
                                        cmay.NATURALEZA";

                        $records_mov_tot = CN_TABLE::executeSQL($sql_mov_tot);

                        $debitoAcumulado += $records_mov_tot[0]['debito'];
                        $debito = "$" . number_format($records_mov_tot[0]['debito'], 2, ',', '.');
                        echo "<td align='right'>" . $debito . "</td>";

                        $creditoAcumulado += $records_mov_tot[0]['credito'];
                        $credito = "$" . number_format($records_mov_tot[0]['credito'], 2, ',', '.');
                        echo "<td align='right'>" . $credito . "</td>";

//                        $saldo = "$" . number_format($records_mov_tot[0]['saldo'], 2, ',', '.');
                        if ($records_mov_tot[0]['natu'] == 'D') {
                            $saldo = "$" . number_format(($debitoAcumulado - $creditoAcumulado), 2, ',', '.');
                        } else {
                            $saldo = "$" . number_format(($creditoAcumulado - $debitoAcumulado), 2, ',', '.');
                        }
                        echo "<td align='right'>" . $saldo . "</td>";
                        echo "</tr>";
                        $naturaleza = $records_mov_tot[0]['natu'];
                    }
                }

                /*
                 * Totales pòr auxiliar - tercero
                 */

                echo "<tr bgcolor='#A5A5A2'>";
                echo "<td  colspan='5'>Saldo Actual Auxiliar: </td>";

                $debito = "$" . number_format($debitoAcumulado, 2, ',', '.');
                echo "<td align='right'>" . $debito . "</td>";

                $credito = "$" . number_format($creditoAcumulado, 2, ',', '.');
                echo "<td align='right'>" . $credito . "</td>";

                if ($naturaleza == 'D') {
                    $saldo = "$" . number_format(($debitoAcumulado - $creditoAcumulado), 2, ',', '.');
                } else {
                    $saldo = "$" . number_format(($creditoAcumulado - $debitoAcumulado), 2, ',', '.');
                }
                echo "<td align='right'>" . $saldo . "</td>";
                echo "</tr>";

                echo "</table>";
                echo "<br>";
            }


            /*
             * Totales subcuentas
             */

            $sql_tot_subc = "SELECT
                    SUM(SALDO_ANTERIOR) as saldo_anterior,
                    SUM(SALDO_ACTUAL) as saldo_actual
                    FROM CN_SALDO
                    WHERE SUBCUENTA = " . $valueCuentas["cuenta"] . "
                    AND ID_VIGENCIA = " . $vig_fin . "
                    AND ID_PERIODO_CONTABLE = " . $per_fin . "
                    AND ID_CIA = " . $cia . "
                    AND ID_CEN_OP = " . $cen_op . "";

            $records_tot_subc = CN_TABLE::executeSQL($sql_tot_subc);

            //$debitoAcumuladoSubc
            echo "<table border='1' width='750' >";
            echo "<tr bgcolor='#858282'>";
            echo "<td  colspan='5'>Saldo Actual Subcuenta:  " . $valueCuentas["cuenta"] . "</td>";
            echo "<td ></td>";
            echo "<td ></td>";

            $saldo = "$" . number_format($records_tot_subc[0]['saldo_actual'], 2, ',', '.');
            echo "<td align='right'>" . $saldo . "</td>";
            echo "</tr>";
            echo "</table>";
            echo "<br>";
            $even_tot_cuenta = false;
        } else {

            /*
             * Tabla de movimientos sin auxiliar y sin tercero
             */
            echo "<table border='1' width='750' >";
            //fila cabecera
            echo "<tr  bgcolor='#CEE3F6'>
                <th width='10%'>Fecha</th>
                <th width='5%'>Tip. Com.</th>
                <th width='5%'>CAD</th>
                <th width='30%'>Descripcion</th>
                <th width='5%'>Soporte</th>
                <th width='15%'>Debito</th>
                <th width='15%'>Credito</th>
                <th width='15%'>Saldo</th>
                </tr>";

            //variables acumulables auxiliares
            $debitoAcumulado = 0;
            $creditoAcumulado = 0;
            $naturaleza = "";

            /*
             * Consulta movimientos para el rango de vigencias periodos del filtro
             */
            foreach ($records_vig_per as $value_vig_per) {

                /*
                 * Consulta para los movimientos sin auxiliar y tercero
                 */

                $sql_movimientos = "
                            SELECT cad.FECHA_CAD, tc.NOM_CORTO, mov.ID_CAD,
                            doc.DESCR_MTO, doc.DOC_SOPORTE, mov.DEBITO, mov.CREDITO
                            FROM CN_MOVIMIENTO_CONTABLE mov

                            JOIN CN_CONTROL_CAD cad
                             ON cad.ID_CIA = mov.ID_CIA
                            AND cad.ID_CAD = mov.ID_CAD
                            AND cad.ID_CEN_OP = mov.ID_CEN_OP
                            AND cad.ID_VIGENCIA = mov.ID_VIGENCIA

                            JOIN CN_TIPO_COMPROBANTE tc
                             ON cad.ID_CIA = tc.ID_CIA
                            AND cad.ID_TIPO_COMPROBANTE = tc.ID_TIPO_COMPROBANTE

                            JOIN CN_DOCUMENTO doc
                             ON doc.ID_CIA = mov.ID_CIA
                            AND doc.ID_CAD = mov.ID_CAD
                            AND doc.ID_DOCUMENTO = mov.ID_DOCUMENTO
                            AND doc.ID_CEN_OP = mov.ID_CEN_OP
                            AND doc.ID_VIGENCIA = mov.ID_VIGENCIA

                            WHERE mov.ID_CIA = " . $cia . "
                            AND mov.ID_CEN_OP = " . $cen_op . "
                            AND mov.ID_VIGENCIA = " . $value_vig_per['id_vigencia'] . "
                            AND cad.ID_PERIODO_CONTABLE = " . $value_vig_per['id_periodo_contable'] . "
                            AND mov.ID_CLASE_CUENTA = " . $valueCuentas['id_clase_cuenta'] . "
                            AND mov.ID_GRUPO_CUENTA = " . $valueCuentas['id_grupo_cuenta'] . "
                            AND mov.ID_CUENTA_MAYOR = " . $valueCuentas['id_cuenta_mayor'] . "
                            AND mov.ID_CATALOGO = " . $valueCuentas['id_catalogo'] . "
                            AND mov.ID_AUXILIAR is null
                            AND mov.ID_MAE_TER is null

                            ORDER BY
                            mov.ID_MOV_CONT";

                $records_movimientos = CN_TABLE::executeSQL($sql_movimientos);

                //validacion si hay movimientos
                if (count($records_movimientos) > 0) {
                    //recorrer los movimientos
                    foreach ($records_movimientos as $valueMov) {

                        echo "<tr>";
                        $fecha = explode(" ", $valueMov['fecha_cad']);
                        echo "<td width='10%'>" . $fecha[0] . '</td>';
                        echo "<td width='5%'>" . $valueMov['nom_corto'] . '</td>';
                        echo "<td width='5%'>" . $valueMov['id_cad'] . '</td>';
                        echo "<td width='30%'>" . $valueMov['descr_mto'] . '</td>';
                        echo "<td width='5%'>" . $valueMov['doc_soporte'] . '</td>';

                        $debito = "$" . number_format($valueMov['debito'], 2, ',', '.');
                        echo "<td width='15%' align='right'>" . $debito . '</td>';
                        $credito = "$" . number_format($valueMov['credito'], 2, ',', '.');
                        echo "<td width='15%' align='right'>" . $credito . '</td>';
                        echo "<td width='15%'> </td>";

                        echo "</tr>";
                    }

                    echo "<tr bgcolor='#BDBDBD'>";
                    echo "<td  colspan='3'>Subtotal Mes: </td>";
                    echo "<td colspan='2'>" . $value_vig_per['nom_periodo'] . ' ' . $value_vig_per['id_vigencia'] . '</td>';

                    /*
                     * Totales por mes
                     */
                    $sql_mov_tot = "
                                        SELECT
                                          cmay.NATURALEZA as NATU,
                                          SUM(mov.DEBITO) as DEBITO,
                                          SUM(mov.CREDITO) as CREDITO,
                                         CASE cmay.NATURALEZA
                                          WHEN 'D' THEN SUM(mov.DEBITO - mov.CREDITO)
                                          ELSE SUM(mov.CREDITO - mov.DEBITO)
                                          END AS SALDO
                                        FROM CN_MOVIMIENTO_CONTABLE mov

                                        JOIN CN_CONTROL_CAD cad
                                         ON cad.ID_CIA = mov.ID_CIA
                                        AND cad.ID_CAD = mov.ID_CAD
                                        AND cad.ID_CEN_OP = mov.ID_CEN_OP
                                        AND cad.ID_VIGENCIA = mov.ID_VIGENCIA

                                        JOIN CN_TIPO_COMPROBANTE tc
                                         ON cad.ID_CIA = tc.ID_CIA
                                        AND cad.ID_TIPO_COMPROBANTE = tc.ID_TIPO_COMPROBANTE

                                        JOIN CN_DOCUMENTO doc
                                         ON doc.ID_CIA = mov.ID_CIA
                                        AND doc.ID_CAD = mov.ID_CAD
                                        AND doc.ID_DOCUMENTO = mov.ID_DOCUMENTO
                                        AND doc.ID_CEN_OP = mov.ID_CEN_OP
                                        AND doc.ID_VIGENCIA = mov.ID_VIGENCIA

                                        JOIN CN_CUENTA_MAYOR cmay
                                         ON cmay.ID_CIA = mov.ID_CIA
                                        AND cmay.ID_CUENTA_MAYOR = mov.ID_CUENTA_MAYOR

                                        WHERE mov.ID_CIA = " . $cia . "
                                        AND mov.ID_CEN_OP = " . $cen_op . "
                                        AND mov.ID_VIGENCIA = " . $value_vig_per['id_vigencia'] . "
                                        AND cad.ID_PERIODO_CONTABLE = " . $value_vig_per['id_periodo_contable'] . "
                                        AND mov.ID_CLASE_CUENTA = " . $valueCuentas['id_clase_cuenta'] . "
                                        AND mov.ID_GRUPO_CUENTA = " . $valueCuentas['id_grupo_cuenta'] . "
                                        AND mov.ID_CUENTA_MAYOR = " . $valueCuentas['id_cuenta_mayor'] . "
                                        AND mov.ID_CATALOGO = " . $valueCuentas['id_catalogo'] . "
                                        AND mov.ID_AUXILIAR is null
                                        AND mov.ID_MAE_TER is null

                                        GROUP BY
                                        cmay.NATURALEZA";

                    $records_mov_tot = CN_TABLE::executeSQL($sql_mov_tot);

                    $debitoAcumulado += $records_mov_tot[0]['debito'];
                    $debito = "$" . number_format($records_mov_tot[0]['debito'], 2, ',', '.');
                    echo "<td align='right'>" . $debito . "</td>";

                    $creditoAcumulado += $records_mov_tot[0]['credito'];
                    $credito = "$" . number_format($records_mov_tot[0]['credito'], 2, ',', '.');
                    echo "<td align='right'>" . $credito . "</td>";

//                        $saldo = "$" . number_format($records_mov_tot[0]['saldo'], 2, ',', '.');
                    if ($records_mov_tot[0]['natu'] == 'D') {
                        $saldo = "$" . number_format(($debitoAcumulado - $creditoAcumulado), 2, ',', '.');
                    } else {
                        $saldo = "$" . number_format(($creditoAcumulado - $debitoAcumulado), 2, ',', '.');
                    }
                    echo "<td align='right'>" . $saldo . "</td>";
                    echo "</tr>";
                    $naturaleza = $records_mov_tot[0]['natu'];
                }
            }

            /*
             * Totales pòr auxiliar - tercero
             */

            echo "<tr bgcolor='#A5A5A2'>";
            echo "<td  colspan='5'>Saldo Actual Auxiliar: </td>";

            $debito = "$" . number_format($debitoAcumulado, 2, ',', '.');
            echo "<td align='right'>" . $debito . "</td>";

            $credito = "$" . number_format($creditoAcumulado, 2, ',', '.');
            echo "<td align='right'>" . $credito . "</td>";

            if ($naturaleza == 'D') {
                $saldo = "$" . number_format(($debitoAcumulado - $creditoAcumulado), 2, ',', '.');
            } else {
                $saldo = "$" . number_format(($creditoAcumulado - $debitoAcumulado), 2, ',', '.');
            }
            echo "<td align='right'>" . $saldo . "</td>";
            echo "</tr>";



            echo "</table>";
            echo "<br>";
        }


        if ($even_tot_cuenta) {
            /*
             * Totales subcuentas
             */

            $sql_tot_subc = "SELECT
                    SUM(SALDO_ANTERIOR) as saldo_anterior,
                    SUM(SALDO_ACTUAL) as saldo_actual
                    FROM CN_SALDO
                    WHERE SUBCUENTA = " . $valueCuentas["cuenta"] . "
                    AND ID_VIGENCIA = " . $vig_fin . "
                    AND ID_PERIODO_CONTABLE = " . $per_fin . "
                    AND ID_CIA = " . $cia . "
                    AND ID_CEN_OP = " . $cen_op . "";

            $records_tot_subc = CN_TABLE::executeSQL($sql_tot_subc);

            //$debitoAcumuladoSubc
            echo "<table border='1' width='750' >";
            echo "<tr bgcolor='#858282'>";
            echo "<td  colspan='5'>Saldo Actual Subcuenta:  " . $valueCuentas["cuenta"] . "</td>";
            echo "<td ></td>";
            echo "<td ></td>";

            $saldo = "$" . number_format($records_tot_subc[0]['saldo_actual'], 2, ',', '.');
            echo "<td align='right'>" . $saldo . "</td>";
            echo "</tr>";
            echo "</table>";
            echo "<br>";
        }
    } else {
        echo "<td></td>";
    }

    echo "</tr>";
}

echo "</table>";

echo "</body>";

echo "</html>";
?>