<?php

/*
 * Html
 */

$html = '';
$cuenta = "";
$saldocuenta = 0;
$htmlfirmas = '';


/*
 * variables de cabecera informe
 */

//cambiar tildes al ser html
if ($type == "csv") {
    $empresa = "";
} else {
    $empresa = "";
}

//titulo
$titulo = "LIBRO DE AUXILIARES";

/**
 * firmas
 */
$firmas = array();
//parametrizar firmas
//leer base de datos
//sentencia sql
$sql = <<<EOD
select * from CN_FIRMA fir
join CN_INFORME_FIRMA inf
on fir.ID_FIRMA = inf.ID_FIRMA
where fir.ACTIVO like '1%'
and fir.id_cia = $cia
and inf.COMANDO_INFORME = 'cb_libaux'
order by
fir.ORDEN,
fir.ID_FIRMA
EOD;
//ejecutar sql
$firmas = CN_TABLE::executeSQL($sql);

/*
 * tabla de firmas
 */
$htmlfirmas.= '<br><br><br><br><br><table width="100%">';

/*
 * recorrer el array de firmas
 */

//nombre
$htmlfirmas.= ' <tr>';
foreach ($firmas as $value) {
    $htmlfirmas.= '<td><b>' . strtoupper($value['nombre']) . '</b></td>';
}
$htmlfirmas.= ' </tr>';

//cargo
$htmlfirmas.= ' <tr>';
foreach ($firmas as $value) {
    $htmlfirmas.= '<td>' . strtoupper($value['cargo']) . '</td>';
}
$htmlfirmas.= ' </tr>';

//numero
$htmlfirmas.= ' <tr>';
foreach ($firmas as $value) {
    if ($value['numero'] != null) {
        $htmlfirmas.= '<td>T.P. ' . $value['numero'] . '</td>';
    } else {
        $htmlfirmas.= '<td></td>';
    }
}
$htmlfirmas.= ' </tr>';

//anexo
$htmlfirmas.= ' <tr>';
foreach ($firmas as $value) {
    $htmlfirmas.= '<td>' . $value['anexo'] . '</td>';
}
$htmlfirmas.= ' </tr>';

$htmlfirmas.= '</table>';

//echo $htmlfirmas;die();
//$html_excel
/*
 * impresion del html
 */
if ($type == "html") {

    $html .= '
  <!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
 */
//$html .= '<table border="0" width="100%"><tbody><tr>
//        <td height=80>
//        <h2 align="left">Libro de auxiliares</h2>
//       </td></tr></tbody></table>';


/*
 * Consulta de movimientos para el rango de vigencia/periodo
 */

$sql_mov = <<<EOD
SELECT
*
FROM
(
SELECT
cad.FECHA_CAD AS FECHA_CAD,
mov.ID_VIGENCIA || SUBSTR( '00'  || cad.ID_PERIODO_CONTABLE , -2,2 ) AS VIG_PER,
cad.ID_PERIODO_CONTABLE ,
per.NOM_PERIODO,
mov.ID_VIGENCIA,
mov.ID_MOV_CONT,
mov.ID_DOCUMENTO,
mov.ID_CAD,
mov.ID_CEN_OP,
mov.ID_CIA,
mov.ID_CATALOGO,
mov.ID_CUENTA_MAYOR,
mov.ID_GRUPO_CUENTA,
mov.ID_CLASE_CUENTA ,
mov.ID_MAE_TER ,
mov.ID_AUXILIAR ,
mov.ID_SUB_AUX,
mov.ID_CENTRO_COSTO,
mov.ID_SUB_CENTRO_COSTO,
mov.DEBITO,
mov.CREDITO,
mov.VALOR_BASE,
cla.DIGITO AS dig_cla,
cla.NOMBRE AS nom_cla,
gru.DIGITO AS dig_gru,
gru.NOMBRE AS nom_gru,
cue.DIGITOS AS dig_cue,
cue.NOMBRE AS nom_cue,
cat.DIGITOS AS dig_cat,
cat.NOMBRE AS nom_cat,
tc.NOM_CORTO,
doc.DESCR_MTO,
doc.DOC_SOPORTE,
cue.NATURALEZA
FROM CN_MOVIMIENTO_CONTABLE mov

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

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_PERIODO_CONTABLE  per ON
per.ID_PERIODO_CONTABLE = cad.ID_PERIODO_CONTABLE

JOIN CN_CLASE_CUENTA cla ON
cla.ID_CIA = mov.ID_CIA
AND cla.ID_CLASE_CUENTA = mov.ID_CLASE_CUENTA

JOIN CN_GRUPO_CUENTA gru ON
gru.ID_CIA = mov.ID_CIA
AND gru.ID_CLASE_CUENTA = mov.ID_CLASE_CUENTA
AND gru.ID_GRUPO_CUENTA = mov.ID_GRUPO_CUENTA

JOIN CN_CUENTA_MAYOR cue ON
cue.ID_CIA = mov.ID_CIA
AND cue.ID_CLASE_CUENTA = mov.ID_CLASE_CUENTA
AND cue.ID_GRUPO_CUENTA = mov.ID_GRUPO_CUENTA
AND cue.ID_CUENTA_MAYOR = mov.ID_CUENTA_MAYOR

JOIN CN_CATALOGO cat ON
cat.ID_CIA = mov.ID_CIA
AND cat.ID_CLASE_CUENTA = mov.ID_CLASE_CUENTA
AND cat.ID_GRUPO_CUENTA = mov.ID_GRUPO_CUENTA
AND cat.ID_CUENTA_MAYOR = mov.ID_CUENTA_MAYOR
AND cat.ID_CATALOGO = mov.ID_CATALOGO
)lib
where
lib.VIG_PER BETWEEN $vig_perIni and $vig_perFin
and ID_cia = $cia
$whereCenOP
$whereClase $whereGrupo $whereCuenta
$whereCatalogo $whereAuxiliar $whereTercero
ORDER BY
lib.dig_cla ASC,
lib.dig_gru ASC,
lib.dig_cue ASC,
lib.dig_cat ASC,
lib.FECHA_CAD ASC,
lib.ID_MOV_CONT ASC
EOD;

/*
  AND lib.dig_cla = 1
  AND lib.dig_gru = 1
  AND lib.dig_cue = 05
  AND lib.dig_cat = 01
 */

/*
  $sql=<<<EOD
  select *
  from pages
  where pagename='$pn'
  EOD;
 */


$records_mov = CN_TABLE::executeSQL($sql_mov);


/*
 * salida csv
 */

$scarpeta = "uploads"; //carpeta donde guardar el archivo.
//debe tener permisos 775 por lo menos

/*
 * se cambio extension a csv - 26092011
 */
$sfile = $scarpeta . "/tmp/Libaux" . date("d") . date("m") . date("Y") . ".csv"; //ruta del archivo a generar
$fp = fopen($sfile, "w");
//$sep = ";";
$sep = sfConfig::get('app_separador'); //variable global para manejo del separador - se obtiene de variables del modulo en la configuracion en app.yml
$htmlReportes = sfConfig::get('app_htmlReportes'); //carpeta de lectura donde se almacena
//titulo del informe
$shtml = $sep . "\n";
$shtml.= "Libro de auxiliares" . $sep . "\n";
$shtml.= $sep . "\n";


//Si hay movimientos
if (count($records_mov) > 0) {


    /*
     * filtros saldos superiores cuentas
     */

    $clase_saldo = ' and id_clase_cuenta = ' . $records_mov[0]['id_clase_cuenta'];
    $grupo_saldo = ' and id_clase_cuenta = ' . $records_mov[0]['id_clase_cuenta'];
    $cuenta_saldo = ' and id_clase_cuenta = ' . $records_mov[0]['id_clase_cuenta'];
    $catalogo_saldo = ' and id_clase_cuenta = ' . $records_mov[0]['id_clase_cuenta'];

    if ($whereGrupo != ' ') {
        $clase_saldo .= ' and id_grupo_cuenta = ' . $records_mov[0]['id_grupo_cuenta'];
    }
    $grupo_saldo .= ' and id_grupo_cuenta = ' . $records_mov[0]['id_grupo_cuenta'];
    $cuenta_saldo .= ' and id_grupo_cuenta = ' . $records_mov[0]['id_grupo_cuenta'];
    $catalogo_saldo = ' and id_grupo_cuenta = ' . $records_mov[0]['id_grupo_cuenta'];


    if ($whereCuenta != ' ') {
        $clase_saldo .= ' and id_cuenta_mayor = ' . $records_mov[0]['id_cuenta_mayor'];
        $grupo_saldo .= ' and id_cuenta_mayor = ' . $records_mov[0]['id_cuenta_mayor'];
    }
    $cuenta_saldo .= ' and id_cuenta_mayor = ' . $records_mov[0]['id_cuenta_mayor'];
    $catalogo_saldo = ' and id_cuenta_mayor = ' . $records_mov[0]['id_cuenta_mayor'];

    if ($whereCatalogo != ' ') {
        $clase_saldo .= ' and id_catalogo = ' . $records_mov[0]['id_catalogo'];
        $grupo_saldo .= ' and id_catalogo = ' . $records_mov[0]['id_catalogo'];
        $cuenta_saldo .= ' and id_catalogo = ' . $records_mov[0]['id_catalogo'];
    }
    $catalogo_saldo = ' and id_catalogo = ' . $records_mov[0]['id_catalogo'];



    /*
     * Tabla de cuentas
     */
    $html .= '<table border="1" width="750" cellpadding="3">';
//fila cabecera cuentas
    $html .= '<tr bgcolor="#81BEF7">
                <th width="10%">Cuenta</th>
                <th width="49%">Nombre Cuenta</th>
                <th width="15%">Saldo</th>
                </tr>';


    $shtml.="Cuenta" . $sep . "Nombre Cuenta" . $sep . $sep . $sep . $sep . $sep . $sep . "Saldo" . $sep . "\n";

    /*
     * filas de cuentas superiores
     */
//clase
    $html .= '<tr bgcolor="#EFEFFB">';
    $html .= '<td width="10%">' . $records_mov[0]['dig_cla'] . '</td>';
    $html .= '<td width="49%">' . $records_mov[0]['nom_cla'] . '</td>';

    $shtml.=$records_mov[0]['dig_cla'] . $sep;
    $shtml.= $records_mov[0]['nom_cla'] . $sep;
    $shtml.=$sep . $sep . $sep . $sep . $sep . "";

    /*
     * Saldo de la clase cuenta
     */
    $sql = <<<EOD
SELECT SUM(SALDO_ANTERIOR) as saldo_anterior, SUM(SALDO_ACTUAL) as saldo_actual
FROM CN_SALDO
WHERE
ID_VIGENCIA = $vig_fin
AND ID_PERIODO_CONTABLE = $per_fin
and ID_cia = $cia
$whereCenOP
$clase_saldo
EOD;

    $record = CN_TABLE::executeSQL($sql);


    if (isset($record[0])) {
        //printf("%.2f",1.1254784125417);
//        echo $record[0]["saldo_actual"] . ' - ';
        $saldo_cue = number_format($record[0]["saldo_actual"], 2, ',', '.');
//    $saldo_cue = number_format( $record[0]["saldo_actual"]), 2, ',', '.');
//        echo ' - '.$saldo_cue;
    } else {
//        echo 'aaaaaaaaaaaaaaaa';die();
        $saldo_cue = 0;
    }


    $html .= '<td width="15%" align="right">' . $saldo_cue . '</td>';
//    $html .= "<td></td>";


    $shtml.= $saldo_cue . $sep . "\n";

    $html .= '</tr>';
//grupo
    $html .= '<tr>';
    $html .= '<td width="10%">' . $records_mov[0]['dig_cla'] . $records_mov[0]['dig_gru'] . '</td>';
    $html .= '<td width="49%">' . $records_mov[0]['nom_gru'] . '</td>';


    $shtml.= $records_mov[0]['dig_cla'] . $records_mov[0]['dig_gru'] . $sep;
    $shtml.= $records_mov[0]['nom_gru'] . $sep;
    $shtml.=$sep . $sep . $sep . $sep . $sep . "";

    /*
     * Saldo de la grupo cuenta
     */
    $sql = <<<EOD
SELECT SUM(SALDO_ANTERIOR) as saldo_anterior, SUM(SALDO_ACTUAL) as saldo_actual
FROM CN_SALDO
WHERE
ID_VIGENCIA = $vig_fin
AND ID_PERIODO_CONTABLE = $per_fin
and ID_cia = $cia
$whereCenOP
$grupo_saldo
EOD;

    $record = CN_TABLE::executeSQL($sql);

    $saldo_cue = number_format($record[0]["saldo_actual"], 2, ',', '.');
    $html .= '<td width="15%" align="right">' . $saldo_cue . '</td>';
//    $html .= "<td></td>";


    $shtml.= $saldo_cue . $sep . "\n";

    $html .= '</tr>';
//cuenta
    $html .= '<tr bgcolor="#EFEFFB">';
    $html .= '<td width="10%">' . $records_mov[0]['dig_cla'] . $records_mov[0]['dig_gru'] . $records_mov[0]['dig_cue'] . '</td>';
    $html .= '<td width="49%">' . $records_mov[0]['nom_cue'] . '</td>';


    $shtml.= $records_mov[0]['dig_cla'] . $records_mov[0]['dig_gru'] . $records_mov[0]['dig_cue'] . $sep;
    $shtml.= $records_mov[0]['nom_cue'] . $sep;
    $shtml.=$sep . $sep . $sep . $sep . $sep . "";

    /*
     * Saldo de la cuenta mayor
     */
    $sql = <<<EOD
SELECT SUM(SALDO_ANTERIOR) as saldo_anterior, SUM(SALDO_ACTUAL) as saldo_actual
FROM CN_SALDO
WHERE 
ID_VIGENCIA = $vig_fin
AND ID_PERIODO_CONTABLE = $per_fin
and ID_cia = $cia
$whereCenOP
$cuenta_saldo
EOD;

    $record = CN_TABLE::executeSQL($sql);

    $saldo_cue = number_format($record[0]["saldo_actual"], 2, ',', '.');
    $html .= '<td width="15%" align="right">' . $saldo_cue . '</td>';
//    $html .= "<td></td>";

    $shtml.= $saldo_cue . $sep . "\n";

    $html .= '</tr>';
//catalogo
    $html .= '<tr>';
    $html .= '<td width="10%">' . $records_mov[0]['dig_cla'] . $records_mov[0]['dig_gru'] . $records_mov[0]['dig_cue'] . $records_mov[0]['dig_cat'] . '</td>';
    $html .= '<td width="49%">' . $records_mov[0]['nom_cat'] . '</td>';


    $shtml.= $records_mov[0]['dig_cla'] . $records_mov[0]['dig_gru'] . $records_mov[0]['dig_cue'] . $records_mov[0]['dig_cat'] . $sep;
    $shtml.= $records_mov[0]['nom_cat'] . $sep;
    $shtml.=$sep . $sep . $sep . $sep . $sep . "";

    $cuenta = $records_mov[0]['dig_cla'] . $records_mov[0]['dig_gru'] . $records_mov[0]['dig_cue'] . $records_mov[0]['dig_cat'];

    /*
     * Saldo de la subcuenta
     */
    $sql = <<<EOD
SELECT SUM(SALDO_ANTERIOR) as saldo_anterior, SUM(SALDO_ACTUAL) as saldo_actual
FROM CN_SALDO
WHERE SUBCUENTA='$cuenta'
AND ID_VIGENCIA = $vig_ini
AND ID_PERIODO_CONTABLE = $per_ini
and ID_cia = $cia
$whereCenOP
EOD;

    $record = CN_TABLE::executeSQL($sql);

    $saldocuenta = $record[0]["saldo_anterior"];
    $saldo_cuenta = number_format($record[0]["saldo_anterior"], 2, ',', '.');
    $html .= '<td width="15%" align="right">' . $saldo_cuenta . '</td>';


    $shtml.= $saldo_cuenta . $sep . "\n";

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

    /*
     * Tabla de movimientos
     */
    $html .= '<br>';
    $html .= '<table border="1" width="750" >';
    //fila cabecera
    $html .= '<tr  bgcolor="#CEE3F6">
                    <th width="10%">Fecha</th>
                    <th width="5%">Tip. Com.</th>
                    <th width="5%">CAD</th>
                    <th width="20%">Descripcion</th>
                    <th width="5%">Cen Op.</th>
                    <th width="5%">Soporte</th>
                    <th width="8%">Debito</th>
                    <th width="8%">Credito</th>
                    <th width="8%">Saldo</th>
                    </tr>';


    $shtml.= "\nFecha" . $sep . "Tipo Com." . $sep . "CAD" . $sep . "Descripcion" . $sep . "Cen Op." . $sep . "Soporte" . $sep . "Debito" . $sep . "Credito" . $sep . "Saldo" . $sep . "\n";

    //variables para validacion de cambio de cuenta
    $clase_old = $records_mov[0]['id_clase_cuenta'];
    $grupo_old = $records_mov[0]['id_grupo_cuenta'];
    $cuenta_old = $records_mov[0]['id_cuenta_mayor'];
    $catalogo_old = $records_mov[0]['id_catalogo'];

    //cambio de auxiliar y tercero
    $auxiliar_old = "";
    $tercero_old = "";

    //cambio de periodo vigencia
    $vigencia_old = $records_mov[0]['id_vigencia'];
    $periodo_old = $records_mov[0]['nom_periodo'];

    /*
     * Recorrer movimientos
     */


    //variables acumulables auxilares
    $debitoauxiliar = 0;
    $creditoauxiliar = 0;

    //variables acumulables mes
    $debitomes = 0;
    $creditomes = 0;

    $even_auxter_null = true;
    $even_auxter = true;
    $even_color_mov = true;
    $num_mov = 0;

    foreach ($records_mov as $value_mov) {

        /*
         * filtros saldos superiores cuentas
         */

        $clase_saldo = ' and id_clase_cuenta = ' . $value_mov['id_clase_cuenta'];
        $grupo_saldo = ' and id_clase_cuenta = ' . $value_mov['id_clase_cuenta'];
        $cuenta_saldo = ' and id_clase_cuenta = ' . $value_mov['id_clase_cuenta'];
        $catalogo_saldo = ' and id_clase_cuenta = ' . $value_mov['id_clase_cuenta'];

        if ($whereGrupo != ' ') {
            $clase_saldo .= ' and id_grupo_cuenta = ' . $value_mov['id_grupo_cuenta'];
        }
        $grupo_saldo .= ' and id_grupo_cuenta = ' . $value_mov['id_grupo_cuenta'];
        $cuenta_saldo .= ' and id_grupo_cuenta = ' . $value_mov['id_grupo_cuenta'];
        $catalogo_saldo = ' and id_grupo_cuenta = ' . $value_mov['id_grupo_cuenta'];


        if ($whereCuenta != ' ') {
            $clase_saldo .= ' and id_cuenta_mayor = ' . $value_mov['id_cuenta_mayor'];
            $grupo_saldo .= ' and id_cuenta_mayor = ' . $value_mov['id_cuenta_mayor'];
        }
        $cuenta_saldo .= ' and id_cuenta_mayor = ' . $value_mov['id_cuenta_mayor'];
        $catalogo_saldo = ' and id_cuenta_mayor = ' . $value_mov['id_cuenta_mayor'];

        if ($whereCatalogo != ' ') {
            $clase_saldo .= ' and id_catalogo = ' . $value_mov['id_catalogo'];
            $grupo_saldo .= ' and id_catalogo = ' . $value_mov['id_catalogo'];
            $cuenta_saldo .= ' and id_catalogo = ' . $value_mov['id_catalogo'];
        }
        $catalogo_saldo = ' and id_catalogo = ' . $value_mov['id_catalogo'];


        //variables para validacion de cambio de cuenta
        $clase_new = $value_mov['id_clase_cuenta'];
        $grupo_new = $value_mov['id_grupo_cuenta'];
        $cuenta_new = $value_mov['id_cuenta_mayor'];
        $catalogo_new = $value_mov['id_catalogo'];
        $auxiliar_new = $value_mov['id_auxiliar'];
        $tercero_new = $value_mov['id_mae_ter'];
        $vigencia_new = $value_mov['id_vigencia'];
        $periodo_new = $value_mov['nom_periodo'];

        if (($num_mov + 1) < count($records_mov)) {
            $auxiliar_fut = $records_mov[($num_mov + 1)]['id_auxiliar'];
            $tercero_fut = $records_mov[($num_mov + 1)]['id_mae_ter'];
            $catalogo_fut = $records_mov[($num_mov + 1)]['id_catalogo'];
            $vigencia_fut = $records_mov[($num_mov + 1)]['id_vigencia'];
            $periodo_fut = $records_mov[($num_mov + 1)]['nom_periodo'];
        } else {
            $auxiliar_fut = "";
            $tercero_fut = "";
            $catalogo_fut = "";
            $vigencia_fut = "";
            $periodo_fut = "";
        }

        if ($clase_old != $clase_new
                || $grupo_old != $grupo_new
                || $cuenta_old != $cuenta_new
                || $catalogo_old != $catalogo_new) {

            //variables para validacion de cambio de cuenta
            $clase_old = $clase_new;
            $grupo_old = $grupo_new;
            $cuenta_old = $cuenta_new;
            $catalogo_old = $catalogo_new;


            /*
             * Tabla de cuentas
             */
            $html .= "</table><br>";

            /*
             * Totales subcuentas
             */

            $sql_tot_subc = <<<EOD
SELECT
SUM(SALDO_ANTERIOR) as saldo_anterior, SUM(SALDO_ACTUAL) as saldo_actual
FROM CN_SALDO
WHERE SUBCUENTA = '$cuenta'
AND ID_VIGENCIA = $vig_fin
AND ID_PERIODO_CONTABLE = $per_fin
and ID_cia = $cia
$whereCenOP
EOD;

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

            $html .= '<table border="1" width="750" >';
            $html .= '<tr bgcolor="#858282">';
            $html .= '<td  width="50%" colspan="5">Saldo Actual Subcuenta:  ' . $cuenta . '</td>';
            $html .= '<td  width="8%"></td>';
            $html .= '<td  width="8%"></td>';

            $saldo = number_format($records_tot_subc[0]['saldo_actual'], 2, ',', '.');
            $html .= '<td width="8%" align="right">' . $saldo . '</td>';
            $html .= '</tr>';


            //separa las tablas
            if ($type == "excel") {
                $html .= "<tr>*</tr>";
            }

            $html .= '</table>';
            $html .= '<br>';

            $shtml.="\nSaldo Actual Subcuenta" . $sep . $cuenta . $sep;
            $shtml.=$sep . $sep . $sep . $sep . $sep . "" . $saldo . $sep . "\n\n";

            $html .= '<table border="1" width="750" cellpadding="3">';
            //fila cabecera cuentas
            $html .= '<tr bgcolor="#81BEF7">
                <th width="10%">Cuenta</th>
                <th width="49%">Nombre Cuenta</th>
                <th width="15%">Saldo</th>
                </tr>';

            $shtml.="Cuenta" . $sep . "Nombre Cuenta" . $sep . $sep . $sep . $sep . $sep . $sep . "Saldo" . $sep . "\n\n";

            /*
             * filas de cuentas superiores
             */
            //clase
            $html .= '<tr bgcolor="#EFEFFB">';
            $html .= '<td width="10%">' . $value_mov['dig_cla'] . '</td>';
            $html .= '<td width="49%">' . $value_mov['nom_cla'] . '</td>';

            $shtml.= $value_mov['dig_cla'] . $sep;
            $shtml.= $value_mov['nom_cla'] . $sep;
            $shtml.=$sep . $sep . $sep . $sep . $sep . "";

            /*
             * Saldo de la clase cuenta
             */
            $sql = <<<EOD
SELECT SUM(SALDO_ANTERIOR) as saldo_anterior, SUM(SALDO_ACTUAL) as saldo_actual
FROM CN_SALDO
WHERE
ID_VIGENCIA = $vig_fin
AND ID_PERIODO_CONTABLE = $per_fin
and ID_cia = $cia
$whereCenOP
$clase_saldo
EOD;

            $record = CN_TABLE::executeSQL($sql);

            $saldo_cue = number_format($record[0]["saldo_actual"], 2, ',', '.');
            $html .= '<td width="15%" align="right">' . $saldo_cue . '</td>';
//    $html .= "<td></td>";

            $shtml.= $saldo_cue . $sep . "\n";

            $html .= '</tr>';
            //grupo
            $html .= '<tr>';
            $html .= '<td width="10%">' . $value_mov['dig_cla'] . $value_mov['dig_gru'] . '</td>';
            $html .= '<td width="49%">' . $value_mov['nom_gru'] . '</td>';

            $shtml.= $value_mov['dig_cla'] . $value_mov['dig_gru'] . $sep;
            $shtml.= $value_mov['nom_gru'] . $sep;
            $shtml.=$sep . $sep . $sep . $sep . $sep . "";

            /*
             * Saldo de la grupo cuenta
             */
            $sql = <<<EOD
SELECT SUM(SALDO_ANTERIOR) as saldo_anterior, SUM(SALDO_ACTUAL) as saldo_actual
FROM CN_SALDO
WHERE
ID_VIGENCIA = $vig_fin
AND ID_PERIODO_CONTABLE = $per_fin
and ID_cia = $cia
$whereCenOP
$grupo_saldo
EOD;

            $record = CN_TABLE::executeSQL($sql);

            $saldo_cue = number_format($record[0]["saldo_actual"], 2, ',', '.');
            $html .= '<td width="15%" align="right">' . $saldo_cue . '</td>';
//    $html .= "<td></td>";

            $shtml.= $saldo_cue . $sep . "\n";

            $html .= '</tr>';
            //cuenta
            $html .= '<tr bgcolor="#EFEFFB">';
            $html .= '<td width="10%">' . $value_mov['dig_cla'] . $value_mov['dig_gru'] . $value_mov['dig_cue'] . '</td>';
            $html .= '<td width="49%">' . $value_mov['nom_cue'] . '</td>';

            $shtml.= $value_mov['dig_cla'] . $value_mov['dig_gru'] . $value_mov['dig_cue'] . $sep;
            $shtml.= $value_mov['nom_cue'] . $sep;
            $shtml.=$sep . $sep . $sep . $sep . $sep . "";

            /*
             * Saldo de la cuenta mayor
             */
            $sql = <<<EOD
SELECT SUM(SALDO_ANTERIOR) as saldo_anterior, SUM(SALDO_ACTUAL) as saldo_actual
FROM CN_SALDO
WHERE
ID_VIGENCIA = $vig_fin
AND ID_PERIODO_CONTABLE = $per_fin
and ID_cia = $cia
$whereCenOP
$cuenta_saldo
EOD;

            $record = CN_TABLE::executeSQL($sql);

            $saldo_cue = number_format($record[0]["saldo_actual"], 2, ',', '.');
            $html .= '<td width="15%" align="right">' . $saldo_cue . '</td>';
//    $html .= "<td></td>";

            $shtml.= $saldo_cue . $sep . "\n";

            $html .= '</tr>';
            //catalogo
            $html .= '<tr>';
            $html .= '<td width="10%">' . $value_mov['dig_cla'] . $value_mov['dig_gru'] . $value_mov['dig_cue'] . $value_mov['dig_cat'] . '</td>';
            $html .= '<td width="49%">' . $value_mov['nom_cat'] . '</td>';

            $shtml.= $value_mov['dig_cla'] . $value_mov['dig_gru'] . $value_mov['dig_cue'] . $value_mov['dig_cat'] . $sep;
            $shtml.= $value_mov['nom_cat'] . $sep;
            $shtml.=$sep . $sep . $sep . $sep . $sep . "";

            $cuenta = $value_mov['dig_cla'] . $value_mov['dig_gru'] . $value_mov['dig_cue'] . $value_mov['dig_cat'];

            /*
             * Saldo de la subcuenta
             */
            $sql = <<<EOD
SELECT SUM(SALDO_ANTERIOR) as saldo_anterior, SUM(SALDO_ACTUAL) as saldo_actual
FROM CN_SALDO
WHERE SUBCUENTA='$cuenta'
AND ID_VIGENCIA = $vig_ini
AND ID_PERIODO_CONTABLE = $per_ini
and ID_cia = $cia
$whereCenOP
EOD;

            $record = CN_TABLE::executeSQL($sql);

            $saldocuenta = $record[0]["saldo_anterior"];
            $saldo_cuenta = number_format($record[0]["saldo_anterior"], 2, ',', '.');
            $html .= '<td width="15%" align="right">' . $saldo_cuenta . '</td>';

            $shtml.= $saldo_cuenta . $sep . "\n";

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


            /*
             * Tabla de movimientos
             */
            $html .= '<br>';
            $html .= '<table border="1" width="750" >';
            /*
             * Imprimir cabecera auxiliar - tercero
             */
            $html .= '<tr  bgcolor="#CEE3F6">
                    <th width="10%">Fecha</th>
                    <th width="5%">Tip. Com.</th>
                    <th width="5%">CAD</th>
                    <th width="20%">Descripcion</th>
                    <th width="2%">Cen Op.</th>
                    <th width="5%">Soporte</th>
                    <th width="8%">Debito</th>
                    <th width="8%">Credito</th>
                    <th width="8%">Saldo</th>
                    </tr>';


            $shtml.= "\nFecha" . $sep . "Tipo Com." . $sep . "CAD" . $sep . "Descripcion" . $sep . "Cen Op." . $sep . "Soporte" . $sep . "Debito" . $sep . "Credito" . $sep . "Saldo" . $sep . "\n";

            //variables acumulables auxilares
            $debitoauxiliar = 0;
            $creditoauxiliar = 0;
        }//fin cuentas

        /*
         * Imprime movimientos
         */

        //Cambio de color linea movimiento
        if ($even_color_mov) {
            $even_color_mov = false;
            $html .= '<tr bgcolor="#FFFFFF">';
        } else {
            $even_color_mov = true;
            $html .= '<tr bgcolor="#EFEFFB">';
        }

        $fecha = explode(" ", $value_mov['fecha_cad']);
        $html .= '<td width="10%">' . $fecha[0] . '</td>';
        $html .= '<td width="5%">' . $value_mov['nom_corto'] . '</td>';
        $html .= '<td width="5%">' . $value_mov['id_cad'] . '</td>';
        $html .= '<td width="20%">' . $value_mov['descr_mto'] . '</td>';
        $html .= '<td width="5%">' . $value_mov['id_cen_op'] . '</td>';
        $html .= '<td width="5%">' . $value_mov['doc_soporte'] . '</td>';

        $shtml.= $fecha[0] . $sep;
        $shtml.= $value_mov['nom_corto'] . $sep;
        $shtml.= $value_mov['id_cad'] . $sep;
        $shtml.= $value_mov['descr_mto'] . $sep;
        $shtml.= $value_mov['id_cen_op'] . $sep;
        $shtml.= $value_mov['doc_soporte'] . $sep;


        $debitomes += $value_mov['debito'];
        $debitoauxiliar += $value_mov['debito'];
        $debito = number_format($value_mov['debito'], 2, ',', '.');
        $html .= '<td width="8%" align="right">' . $debito . '</td>';

        $shtml.= $debito . $sep;
//  echo ' -+- '. $value_mov['credito'];
        $creditomes += $value_mov['credito'];
        $creditoauxiliar += $value_mov['credito'];
        $credito = number_format($value_mov['credito'], 2, ',', '.');
        $html .= '<td width="8%" align="right">' . $credito . '</td>';

        $shtml.= $credito . $sep;

        $html .= '<td width="8%"></td>';

        $shtml.= $sep . "\n";

        $html .= '</tr>';


//si cambia de vigencia periodo
        if ($vigencia_old != $vigencia_fut || $periodo_old != $periodo_fut || $catalogo_new != $catalogo_fut) {


            $html .= '<tr bgcolor="#BDBDBD">';
            $html .= '<td width="20%"  colspan="3">Subtotal Mes: </td>';
            $html .= '<td width="30%" colspan="3">' . $periodo_old . ' ' . $vigencia_old . '</td>';

            $shtml.= "Subtotal Mes" . $sep . $periodo_old . $sep . $vigencia_old . $sep;


//           echo ' -+- '.$debitomes;
            $debito_mes = number_format($debitomes, 2, ',', '.');
            $html .= '<td width="8%" align="right">' . $debito_mes . '</td>';

//           echo ' -*- '.$creditomes;
            $credito_mes = number_format($creditomes, 2, ',', '.');
            $html .= '<td width="8%" align="right">' . $credito_mes . '</td>';

            if ($value_mov['naturaleza'] == 'D') {
                $saldo_mes = number_format(($debitoauxiliar - $creditoauxiliar + $saldocuenta), 2, ',', '.');
            } else {
                $saldo_mes = number_format(($creditoauxiliar - $debitoauxiliar + $saldocuenta), 2, ',', '.');
            }
            $html .= '<td width="8%" align="right">' . $saldo_mes . '</td>';

            $shtml.=$sep . $sep . "" . $debito_mes . $sep . $credito_mes . $sep . $saldo_mes . $sep . "\n";

            $html .= '</tr>';

            $vigencia_old = $vigencia_fut;
            $periodo_old = $periodo_fut;

            //variables acumulables mes
            $debitomes = 0;
            $creditomes = 0;
        }

        $num_mov++;
    }


    $html .= '</table><br>';

    /*
     * Totales subcuentas
     */

    $sql_tot_subc = <<<EOD
SELECT
SUM(SALDO_ANTERIOR) as saldo_anterior, SUM(SALDO_ACTUAL) as saldo_actual
FROM CN_SALDO
WHERE SUBCUENTA = '$cuenta'
AND ID_VIGENCIA = $vig_fin
AND ID_PERIODO_CONTABLE = $per_fin
and ID_cia = $cia
$whereCenOP
EOD;

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

    $html .= '<table border="1" width="750" >';
    $html .= '<tr bgcolor="#858282">';
    $html .= '<td width="50%"  colspan="5">Saldo Actual Subcuenta:  ' . $cuenta . '</td>';
    $html .= '<td  width="8%"></td>';
    $html .= '<td  width="8%"></td>';

    $saldo = number_format($records_tot_subc[0]['saldo_actual'], 2, ',', '.');
    $html .= '<td width="8%" align="right">' . $saldo . '</td>';

    $shtml.="\nSaldo Actual Subcuenta:" . $sep . $cuenta . $sep;
    $shtml.=$sep . $sep . $sep . $sep . $sep . "" . $saldo . $sep . "\n";

    $html .= '</tr>';

    //separa las tablas
    if ($type == "excel") {
        $html .= "<tr>*</tr>";
    }

    $html .= '</table>';
    $html .= '<br>';
} else {

    $html = "No hay registros para la consulta.";
}


$shtml.="\n";
fwrite($fp, $shtml);
fclose($fp);



/*
 * impresion del html
 */
if ($type == "html") {

    //anexo firmas
//    $html.=$htmlfirmas;

    echo $html;
}

/*
 * no implementado
 * si son muchos registros el excel se queda cargando
 */
if ($type == "excel") {
    //cabecera excel
    header('Content-type: application/vnd.ms-excel; charset=UTF-8;');
    header("Content-Disposition: attachment; filename=Libaux" . date("d") . date("m") . date("Y") . ".xls");
    header("Pragma: no-cache");
    header("Expires: 0");

    $html_excel = "";

//    $html_excel = '<html><head>
//              <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
//              <TITLE>Ingeominas</TITLE>
//              </head><body>';

    echo $html_excel . $html;
}

/*
 * salida csv
 */
if ($type == "csv") {

    echo "<script>
    window.location='" . "/" . $htmlReportes . "/web/" . $sfile . "'
</script>";
}

/*
 * PDF
 */
if ($type == "pdf") {

//       


    $pdf = new CDPDF('P', 'mm', 'letter');
    $pdf->SetFont('Times', 'B', 8);
    $pdf->SetFillColor(255);
    $pdf->SetTextColor(0);
    $pdf->SetMargins('4', '2');
//        $pdf->setUsuario("usuario");
//    $pdf->setEncabezado(4);
    $pdf->setTitulo($titulo);
    $pdf->setEmpresa($empresa);
//        $pdf->setFechaContab($fecha);
//        $pdf->setCifras($cifras);
    $pdf->AddPage();
    $pdf->SetFont('Times', '', 7);


//$htmlfirmas=$html.'<br><br><br><br><br><table width="100%"> <tr><td><b>OSCAR ELADIO PAREDES ZAPATA</b></td> </tr> <tr><td>DIRECTOR GENERAL</td> </tr> <tr><td></td> </tr> <tr><td>(Adjunto certificacion) </td> </tr></table>';

    $html.=$htmlfirmas;

//        echo $html;die();
    $pdf->writeHTML($html);

    //$pdf->writeHTML($html_firmas);
    $pdf->Output('Libaux' . date("d") . date("m") . date("Y") . '.pdf', 'D');

    die (); //fin PDF
}
die();
?>
