<!DOCTYPE html>
<html lang="es-ES">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Pantalla Reporte Balance General</title>
<link href="../../maincss.css" rel="stylesheet" type="text/css" />
<link href="../../printcss.css" rel="stylesheet" type="text/css" media="print" />

</head>
<?php
include "../../conn.php";
include "../../general.php";
include "../../token.php";

$rep=$_GET["rep"];
$tipo=$_GET["tipo"];
$centro_costo=$_POST["centrocosto"];
$centro_costo_agrupar=$_POST["centrocosto_agrupar"];
$asientocc=$_POST["asientocc"];
$fecha_fin=$_POST["fechafin"];
$fecha_ini=$_POST["fechaini"];
$comparativo=$_POST["comparativo"];
$fechaano_ini=$_POST["fechaano_ini"];
$fechames_ini=$_POST["fechames_ini"];
$fechaano_fin=$_POST["fechaano_fin"];
$fechames_fin=$_POST["fechames_fin"];
//$usuario = $_POST["usuario"];
$niveles = $_POST["niveles"];
$muestra_cero = $_POST["muestra_cero"];
$muestra_sin_cc = $_POST["muestra_sin_cc"];
$otra_moneda=$_POST["otra_moneda"];
$cod_contexto=$_POST["contexto"];

//definicion de variables
$tasa_tc=NULL;


if($mi_cod_pais == 176) { //if paraguay
$n_decimales = 0;
}//fin if paraguay
?>
<body>
<?php

if($comparativo == 1) { 
	$centro_costo = -1; 
	$centro_costo_agrupar = -1; 
}

if($centro_costo == -1) {
	//$nom_centro_costo = 'Todos';
	//$valor_cc = ' ';
	$nom_centro_costo = 'Ninguno';
	$valor_cc = ' a.codType = '.$centro_costo.' and ';
	$centro_costo_agrupar = -1; 
} else {
	$resultcc = mysqli_query($link, "select pkyCostCenterType as codigo, fldName as nombre 
	from 
	actCostCenterType
	where
	pkyCostCenterType = '$centro_costo' and
	sysEnabled = 1 AND sysAuthorized = 1;");
			
		while ($row = mysqli_fetch_array($resultcc)) {
		$nom_centro_costo = $row['nombre'];
		}
		mysqli_free_result($resultcc);
	$valor_cc = ' a.codType = '.$centro_costo.' and ';
}

if($centro_costo_agrupar == -1) {
	$nom_centro_costo_agrupar = 'Ninguno';
	$valor_cc_agrupar = ' a.codType = '.$centro_costo_agrupar.' and ';
} else {
	$resultccagrupar = mysqli_query($link, "select pkyCostCenterType as codigo, fldName as nombre 
	from 
	actCostCenterType
	where
	pkyCostCenterType = '$centro_costo_agrupar' and
	sysEnabled = 1 AND sysAuthorized = 1;");
			
		while ($row = mysqli_fetch_array($resultccagrupar)) {
			$nom_centro_costo_agrupar = $row['nombre'];
		}
		mysqli_free_result($resultccagrupar);
	$valor_cc_agrupar = ' a.codType = '.$centro_costo_agrupar.' and ';
}

$resultcc1 = mysqli_query($link, "select distinct a.pkyCostCenter as cod_cc, a.codType as cod_tipo_cc, c.fldName as tipo_cc, a.fldName as nombre 
from actCostCenter a, actAccountEntryDetailCC b, actCostCenterType c 
where 
$valor_cc 
a.codType = pkyCostCenterType and 
a.pkyCostCenter = b.codCostCenter and 
b.sysEnabled = 1 and b.sysAuthorized = 1 
order by a.codType, a.pkyCostCenter;");

$hay_cc = mysqli_num_rows($resultcc1);

$mat_tipocc = array();
$i = 1;
while ($row = mysqli_fetch_array($resultcc1)) {
	$mat_tipocc[$i][1] = $row['cod_cc'];
	$mat_tipocc[$i][2] = $row['nombre'];
	$mat_tipocc[$i][3] = $row['cod_tipo_cc'];
	$mat_tipocc[$i][4] = $row['tipo_cc'];
	//echo $mat_tipocc[$i][1].' - '.$mat_tipocc[$i][2].' - '.$mat_tipocc[$i][3].' - '.$mat_tipocc[$i][4].'<br>'; 
	$i++;
}
mysqli_free_result($resultcc1);
$fin_cc = $i - 1;

$resultcc2 = mysqli_query($link, "select distinct a.pkyCostCenter as cod_cc, a.codType as cod_tipo_cc, c.fldName as tipo_cc, a.fldName as nombre 
from actCostCenter a, actAccountEntryDetailCC b, actCostCenterType c 
where 
$valor_cc_agrupar 
a.codType = pkyCostCenterType and 
a.pkyCostCenter = b.codCostCenter and 
b.sysEnabled = 1 and b.sysAuthorized = 1 
order by a.codType, a.pkyCostCenter;");

$hay_cc_agrupar = mysqli_num_rows($resultcc2);

$mat_tipocc_agrupar = array();
$i = 1;
while ($row = mysqli_fetch_array($resultcc2)) {
	$mat_tipocc_agrupar[$i][1] = $row['cod_cc'];
	$mat_tipocc_agrupar[$i][2] = $row['nombre'];
	$mat_tipocc_agrupar[$i][3] = $row['cod_tipo_cc'];
	$mat_tipocc_agrupar[$i][4] = $row['tipo_cc'];
	//echo $mat_tipocc[$i][1].' - '.$mat_tipocc[$i][2].' - '.$mat_tipocc[$i][3].' - '.$mat_tipocc[$i][4].'<br>'; 
	$i++;
}
mysqli_free_result($resultcc2);
$fin_cc_agrupar = $i - 1;



//otra moneda
if($otra_moneda == 0) {
	$nom_otra_moneda = 'Moneda original';
} else {
$resultotra = mysqli_query($link, "SELECT fldName as otra_moneda
from
actCurrency
where
pkyCurrency = '$otra_moneda' and
sysEnabled = 1 AND sysAuthorized = 1;");
		
	while ($row = mysqli_fetch_array($resultotra)) {
	$nom_otra_moneda = $row['otra_moneda'];
	}
	mysqli_free_result($resultotra);
}


//valor del codigo del ultimo tipo de cambio
$resultom = mysqli_query($link, "SELECT T2.pkyExchangeRate as tc FROM 
(SELECT fldDate, MAX(fldTime) AS fldTime FROM actExchangeRate WHERE fldExclusive = '0' GROUP BY fldDate) as T1,
actExchangeRate T2 
WHERE 
T1.fldDate = (SELECT MAX(fldDate) FROM actExchangeRate WHERE fldDate <= '$fecha_fin' AND fldExclusive = '0') AND 
T2.fldDate = T1.fldDate AND 
T2.fldTime = T1.fldTime AND 
sysEnabled = 1 AND sysAuthorized = 1;");
while ($row = mysqli_fetch_array($resultom)) {
	$ultimo_tc = $row['tc'];
	}
	mysqli_free_result($resultom);

//tipo de cambio para la cabecera
$resulttc = mysqli_query($link, "select pkyExchangeRate as cod_tc, fldDate as fecha, fldTime as hora
from
actExchangeRate
where
pkyExchangeRate = '$ultimo_tc' and 
sysEnabled = 1 and sysAuthorized = 1;");
while ($row = mysqli_fetch_array($resulttc)) {
	$tc_fecha = $row['fecha'];
	$tc_hora = $row['hora'];
}
mysqli_free_result($resulttc);

$resulttcdet = mysqli_query($link, "select a.pkyExchangeRateDetail as cod_tc_det, a.codBaseCurrency as cod_mon_target, b.fldName as mon_target, b.txtDescription as nom_mon_target, a.codTargetCurrency as cod_mon_base, c.fldName as mon_base, c.txtDescription as nom_mon_base, a.fldRate as tasa
from
actExchangeRateDetail a, actCurrency b, actCurrency c
where
a.codExchangeRate = '$ultimo_tc' and 
a.codBaseCurrency = '$cod_moneda_principal' and 
a.codBaseCurrency = b.pkyCurrency and 
a.codTargetCurrency = c.pkyCurrency 
order by cod_mon_target, cod_mon_base;");
$ma_tc = array();
$m = 1;
while ($row = mysqli_fetch_array($resulttcdet)) {
	$ma_tc [$m][1] = $row['mon_base'];
	$ma_tc [$m][2] = $row['mon_target'];
	$ma_tc [$m][3] = $row['tasa'];
	$m++;
}
mysqli_free_result($resulttcdet);
$fin_m = $m - 1;

// tipo de cambio para el resultado
$resulttc = mysqli_query($link, "SELECT pkyExchangeRateDetail as codigotc, codBaseCurrency as monedabase, codTargetCurrency as monedacambio, fldRate as tc
from
actExchangeRateDetail
where
codExchangeRate = '$ultimo_tc' and
codBaseCurrency = '$otra_moneda' and
codTargetCurrency = '$cod_moneda_principal' and
sysEnabled = 1 AND sysAuthorized = 1;");
while ($row = mysqli_fetch_array($resulttc)) {
	$codigo_tc = $row['codigotc'];
	$moneda_base = $row['monedabase'];
	$moneda_cambio = $row['monedacambio'];
	$tasa_tc = $row['tc'];
	//$tasa_tc_valor = $tasa_tc;
	}
	mysqli_free_result($resulttc);



//inicio reporte Balance General


if($rep == 7 && $tipo == 1) { // if 2

if($comparativo == 0) { 
$texto_comparativo = 'No';
} else {
$texto_comparativo = 'Si';	
}

if($muestra_cero == 0) { 
$texto_muestra_cero = 'No';
} else {
$texto_muestra_cero = 'Si';	
}

if($muestra_sin_cc == 0) { 
	$texto_muestra_sin_cc = 'No';
} else {
	$texto_muestra_sin_cc = 'Si';	
}

// el nivel es igual el numero de niveles muesta TODOS
if($niveles == $numero_niveles) { 
$texto_niveles = 'Todos';
} else {
$texto_niveles = 'Hasta Nivel '.$niveles;	
}

//contexto
if($cod_contexto == -1){ 
	$nom_contexto = 'Todos';
	$valor_contexto2 = ' ';
} else {
	$resultcontx = mysqli_query($link, "select pkyContext as cod_contexto, fldName as contexto, codCostCenter as cod_cc 
	from srvContext
	where 
	pkyContext = '$cod_contexto';");
		while ($row = mysqli_fetch_array($resultcontx)) {   
			$nom_contexto = $row['cod_contexto'].' - '.$row['contexto'];
		}
		mysqli_free_result($resultcontx);
	$valor_contexto2 = ' b.sysContext = '.$cod_contexto.' and ';	
}

//sin comparar
if($comparativo == 0) { //if comparativo

	$ag = 1; //variable para controlar la agrupacion del cc

	//bucle do while para iterar varias veces y mostrar agrupación del tipo cc (muestra las veces que el segundo tipo de cc hay)
	do{ //bucle do

	if($mi_cod_pais == 1) {
		$result2 = mysqli_query($link, "Select u.codcuenta as codcuenta, u.cuenta as cuenta, sum(u.debe) as debe, sum(u.haber) as haber, u.uso_cuenta as uso_cuenta
			from
				(SELECT padre.pkyAccount as codcuenta, padre.fldName AS cuenta, 0 as debe, 0 as haber, padre.codUse as uso_cuenta
				FROM actAccount as padre
					LEFT JOIN actAccount AS hijo
						ON padre.pkyAccount = hijo.parParent
				group by padre.pkyAccount
				Union
				select a.codAccount as codcuenta, 0 as cuenta, sum(a.fldDebit) as debe, sum(a.fldCredit) as haber, 0 as uso_cuenta
				from actAccountEntryDetail a, actAccountEntry b
				where 
				$valor_contexto2 
				a.codAccountEntry = b.pkyAccountEntry and
				b.fldDate >= '$fecha_ini' and b.fldDate <= '$fecha_fin' and
				b.sysEnabled = 1 and b.sysAuthorized = 1
				group by a.codAccount) u
			group by u.codcuenta;");
	}

	if($mi_cod_pais == 176) {
		$result2 = mysqli_query($link, "Select u.codcuenta as codcuenta, u.cuenta as cuenta, sum(u.debe) as debe, sum(u.haber) as haber, u.uso_cuenta as uso_cuenta
			from
				(SELECT padre.pkyAccount as codcuenta, padre.fldName AS cuenta, 0 as debe, 0 as haber, padre.codUse as uso_cuenta
				FROM actAccount as padre
					LEFT JOIN actAccount AS hijo
						ON padre.pkyAccount = hijo.parParent
				group by padre.pkyAccount
				Union
				select a.codAccount as codcuenta, 0 as cuenta, sum(round(a.fldDebit,'$n_decimales')) as debe, sum(round(a.fldCredit,'$n_decimales')) as haber, 0 as uso_cuenta
				from actAccountEntryDetail a, actAccountEntry b
				where 
				$valor_contexto2 
				a.codAccountEntry = b.pkyAccountEntry and
				b.fldDate >= '$fecha_ini' and b.fldDate <= '$fecha_fin' and
				b.sysEnabled = 1 and b.sysAuthorized = 1
				group by a.codAccount) u
			group by u.codcuenta;");
	}

	$matriz_resultado = array();
	$i = 1;
	//$suma_total = 0;
	while ($row = mysqli_fetch_array($result2)) {//while result2
		$matriz_resultado [$i][1] = $row['codcuenta'];
		$matriz_resultado [$i][2] = $row['cuenta'];
		if($mi_cod_pais == 1) {
		$matriz_resultado [$i][3] = $row['debe'];
		$matriz_resultado [$i][4] = $row['haber'];
		}
		if($mi_cod_pais == 176) {
		$matriz_resultado [$i][3] = round($row['debe'],$n_decimales);
		$matriz_resultado [$i][4] = round($row['haber'],$n_decimales);
		}
		$matriz_resultado [$i][5] = $numero_niveles; // nivel de la cuenta para mostrar identado
		$matriz_resultado [$i][6] = 0; // saldo
		$matriz_resultado [$i][7] = $row['uso_cuenta'];
			if($matriz_resultado [$i][1] == $cuenta_res_acum){
				$pos_res_acum = $i;
			}
		
		//asignar uso de cuenta activo, pasivo, capital, ingreso, egreso
		if($matriz_resultado [$i][7] != NULL) {
			$repetir_uso_cuenta = $matriz_resultado [$i][7];
		} else {
			$matriz_resultado [$i][7] = $repetir_uso_cuenta;
		}
		
		//dividir el codigo de las cuentas
		$j = 1;
		$k = 0;
			while($j <= $numero_niveles) {
			$matriz_resultado [$i][7 + $j] = substr($matriz_resultado [$i][1],$k,$digitos_cuenta [$j - 1]);
			$k = $k + $digitos_cuenta [$j - 1];
			//printf("%s, ", $matriz_resultado [$i][7 + $j]);
			//if($j == 4) { printf(" %s", $matriz_resultado [$i][7]); echo '<br>';}
			$j++;
			}
		
		$cod_cuenta = $matriz_resultado [$i][1];
		$ccc = 3; //empiezo 27 porque desde el 8 divido cod cuenta
		
		//para cc
		//bucle para centro de costo
		$cod_cc_agrupar = $mat_tipocc_agrupar[$ag][1]; //asigno el codigo de la agrupacion del cc
		$suma_debecc = 0;
		$suma_habercc = 0;
		$suma_saldocc = 0;
		for($c = 1; $c <= $fin_cc; $c++) {//for c
		
			$cod_cc = $mat_tipocc[$c][1];

			if($mi_cod_pais == 1) {//if 1
				if($centro_costo_agrupar == -1){ //if agru1
					$resultcc1 = mysqli_query($link, "select c.pkyAccountEntryDetailCC as cod, a.codAccount as codcuenta, sum(a.fldDebit * c.fldPercent / 100) as debecc, sum(a.fldCredit * c.fldPercent / 100) as habercc
					from actAccountEntryDetail a, actAccountEntry b, actAccountEntryDetailCC c
					where 
					$valor_contexto2 
					a.codAccountEntry = b.pkyAccountEntry and 
					a.pkyAccountEntryDetail = c.codAccountEntryDetail and 
					c.codCostCenter = '$cod_cc' and 
					a.codAccount = '$cod_cuenta' and 
					b.fldDate >= '$fecha_ini' and b.fldDate <= '$fecha_fin' and
					b.sysEnabled = 1 and b.sysAuthorized = 1
					group by a.codAccount;");
				} else { 
					//cuando hay cc de agrupación, se aumenta actAccountEntryDetailCC d y otros al query de arriba
					$resultcc1 = mysqli_query($link, "select c.pkyAccountEntryDetailCC as cod, a.codAccount as codcuenta, sum(a.fldDebit * c.fldPercent / 100 * d.fldPercent / 100) as debecc, sum(a.fldCredit * c.fldPercent / 100 * d.fldPercent / 100) as habercc
					from actAccountEntryDetail a, actAccountEntry b, actAccountEntryDetailCC c, actAccountEntryDetailCC d
					where 
					$valor_contexto2 
					d.codCostCenter = '$cod_cc_agrupar' and 
					a.pkyAccountEntryDetail = d.codAccountEntryDetail and 
					a.codAccountEntry = b.pkyAccountEntry and 
					a.pkyAccountEntryDetail = c.codAccountEntryDetail and 
					c.codCostCenter = '$cod_cc' and 
					a.codAccount = '$cod_cuenta' and 
					b.fldDate >= '$fecha_ini' and b.fldDate <= '$fecha_fin' and
					b.sysEnabled = 1 and b.sysAuthorized = 1 
					group by a.codAccount;");
				} //fin if agru1
				
				while ($row = mysqli_fetch_array($resultcc1)) {//while cc1
					$matriz_resultado [$i][27 + $ccc] = $row['debecc']; //empieza 30 debe
					$matriz_resultado [$i][28 + $ccc] = $row['habercc']; //empieza 31 haber
					$matriz_resultado [$i][29 + $ccc] = 0; //empieza 32 saldo
					$suma_debecc = $suma_debecc + $row['debecc'];
					$suma_habercc = $suma_habercc + $row['habercc'];
				}//fin while cc1
				//echo $cod_cc.' '.$suma_debecc.' '.$suma_habercc.'<br>';
			}//fin if 1
			
			if($mi_cod_pais == 176) {//if 176
				$resultcc1 = mysqli_query($link, "select c.pkyAccountEntryDetailCC as cod, a.codAccount as codcuenta, sum(round(a.fldDebit,'$n_decimales') * c.fldPercent / 100) as debecc, sum(round(a.fldCredit,'$n_decimales') * c.fldPercent / 100) as habercc
				from actAccountEntryDetail a, actAccountEntry b, actAccountEntryDetailCC c
				where 
				$valor_contexto2 
				a.codAccountEntry = b.pkyAccountEntry and 
				a.pkyAccountEntryDetail = c.codAccountEntryDetail and 
				c.codCostCenter = '$cod_cc' and 
				a.codAccount = '$cod_cuenta' and 
				b.fldDate >= '$fecha_ini' and b.fldDate <= '$fecha_fin' and
				b.sysEnabled = 1 and b.sysAuthorized = 1 
				group by a.codAccount;");
				
				while ($row = mysqli_fetch_array($resultcc1)) {//while cc1
					$matriz_resultado [$i][27 + $ccc] = round($row['debecc'],$n_decimales); //empieza 30 debe
					$matriz_resultado [$i][28 + $ccc] = round($row['habercc'],$n_decimales); //empieza 31 haber
					$matriz_resultado [$i][29 + $ccc] = 0; //empieza 32 saldo
					$suma_debecc = $suma_debecc + round($row['debecc'],$n_decimales);
					$suma_habercc = $suma_habercc + round($row['habercc'],$n_decimales);
				}//fin while cc1
			}//fin if 176
			
			$ccc = $ccc + 3;
			mysqli_free_result($resultcc1);
		
		}//fin for c
		//lleno sin centro de costo 
		//no tienen que ser 0 los totales de debecc y habercc si marcan la opcion $muestra_sin_cc == 0
		if($muestra_sin_cc == 0 && $suma_debecc == 0 && $suma_habercc == 0){
			//pongo en 0 los totales para que no sume
			$matriz_resultado [$i][3] = 0;
			$matriz_resultado [$i][4] = 0;
		} else {
			$matriz_resultado [$i][27 + $ccc] = $matriz_resultado [$i][3] - $suma_debecc;
			$matriz_resultado [$i][28 + $ccc] = $matriz_resultado [$i][4] - $suma_habercc;
			//echo $matriz_resultado [$i][1].' '.$matriz_resultado [$i][27 + $ccc].' '.$matriz_resultado [$i][28 + $ccc].'<br>';
			//$fin_ccc = $ccc - 3;
		}
		
		$i++;
	}//fin while result2
	$fin = $i - 1;
	mysqli_free_result($result2);
	
	if($hay_cc != 0) { $fin_cc++; }
		
//suma totales activo, pasivo y patrimonio
$suma_total_activo_debe = 0;
$suma_total_activo_haber = 0;
$suma_total_activo = 0;
$suma_total_pasivo_debe = 0;
$suma_total_pasivo_haber = 0;
$suma_total_pasivo = 0;
$suma_total_patrimonio_debe = 0;
$suma_total_patrimonio_haber = 0;
$suma_total_patrimonio = 0;

//para cc
$suma_total_activo_debe_cc = array();
$suma_total_activo_haber_cc = array();
$suma_total_activo_cc = array();
$suma_total_pasivo_debe_cc = array();
$suma_total_pasivo_haber_cc = array();
$suma_total_pasivo_cc = array();
$suma_total_patrimonio_debe_cc = array();
$suma_total_patrimonio_haber_cc = array();
$suma_total_patrimonio_cc = array();

for($i = 1; $i <= $fin; $i++) {
	if($matriz_resultado [$i][7] == 1) {
		$suma_total_activo_debe = $suma_total_activo_debe + $matriz_resultado [$i][3];
		$suma_total_activo_haber = $suma_total_activo_haber + $matriz_resultado [$i][4];
		$matriz_resultado [$i][6] = $matriz_resultado [$i][3] - $matriz_resultado [$i][4];
		//para cc
		$ccc = 3;
		for($c = 1; $c <= $fin_cc; $c++) {//for c1
			$suma_total_activo_debe_cc[$c] = $suma_total_activo_debe_cc[$c] + $matriz_resultado [$i][27+$ccc];
			$suma_total_activo_haber_cc[$c] = $suma_total_activo_haber_cc[$c] + $matriz_resultado [$i][28+$ccc];
			$matriz_resultado [$i][29+$ccc] = $matriz_resultado [$i][27+$ccc] - $matriz_resultado [$i][28+$ccc]; //echo $matriz_resultado [$i][29+$ccc].'<br>';
			$ccc = $ccc + 3;
		}//fin for c1
	}
	if($matriz_resultado [$i][7] == 2) {
		$suma_total_pasivo_debe = $suma_total_pasivo_debe + $matriz_resultado [$i][3];
		$suma_total_pasivo_haber = $suma_total_pasivo_haber + $matriz_resultado [$i][4];
		$matriz_resultado [$i][6] = $matriz_resultado [$i][4] - $matriz_resultado [$i][3];
		//para cc
		$ccc = 3;
		for($c = 1; $c <= $fin_cc; $c++) {//for c2
			$suma_total_pasivo_debe_cc[$c] = $suma_total_pasivo_debe_cc[$c] + $matriz_resultado [$i][27+$ccc];
			$suma_total_pasivo_haber_cc[$c] = $suma_total_pasivo_haber_cc[$c] + $matriz_resultado [$i][28+$ccc];
			$matriz_resultado [$i][29+$ccc] = $matriz_resultado [$i][28+$ccc] - $matriz_resultado [$i][27+$ccc];
			$ccc = $ccc + 3;
		}//fin for c2
	}
	if($matriz_resultado [$i][7] == 3) {
		$suma_total_patrimonio_debe = $suma_total_patrimonio_debe + $matriz_resultado [$i][3];
		$suma_total_patrimonio_haber = $suma_total_patrimonio_haber + $matriz_resultado [$i][4];
		$matriz_resultado [$i][6] = $matriz_resultado [$i][4] - $matriz_resultado [$i][3];
		//para cc
		$ccc = 3;
		for($c = 1; $c <= $fin_cc; $c++) {//for c3
			$suma_total_patrimonio_debe_cc[$c] = $suma_total_patrimonio_debe_cc[$c] + $matriz_resultado [$i][27+$ccc];
			$suma_total_patrimonio_haber_cc[$c] = $suma_total_patrimonio_haber_cc[$c] + $matriz_resultado [$i][28+$ccc];
			$matriz_resultado [$i][29+$ccc] = $matriz_resultado [$i][28+$ccc] - $matriz_resultado [$i][27+$ccc];
			$ccc = $ccc + 3;
		}//fin for c3
	}
}
$suma_total_activo = $suma_total_activo_debe - $suma_total_activo_haber; //saldo deudor
$suma_total_pasivo = $suma_total_pasivo_haber - $suma_total_pasivo_debe; //saldo acreedor
$suma_total_patrimonio = $suma_total_patrimonio_haber - $suma_total_patrimonio_debe; //saldo acreedor

$suma_resultado_acumulado = $suma_total_activo - $suma_total_pasivo - $suma_total_patrimonio; 
$matriz_resultado [$pos_res_acum][6] = $suma_resultado_acumulado;

//para cc
for($c = 1; $c <= $fin_cc; $c++) {//for c4
	$suma_total_activo_cc[$c] = $suma_total_activo_debe_cc[$c] - $suma_total_activo_haber_cc[$c]; //saldo deudor
	$suma_total_pasivo_cc[$c] = $suma_total_pasivo_haber_cc[$c] - $suma_total_pasivo_debe_cc[$c]; //saldo acreedor
	$suma_total_patrimonio_cc[$c] = $suma_total_patrimonio_haber_cc[$c] - $suma_total_patrimonio_debe_cc[$c]; //saldo acreedor
}//fin for c4


/*
echo 'activo debe ' .$suma_total_activo_debe. ' activo haber '.$suma_total_activo_haber.' activo '.$suma_total_activo.'<br>';
echo 'pasivo debe ' .$suma_total_pasivo_debe. ' pasivo haber '.$suma_total_pasivo_haber.' pasivo '.$suma_total_pasivo.'<br>';
echo 'patrimonio debe ' .$suma_total_patrimonio_debe. ' patrimonio haber '.$suma_total_patrimonio_haber.' patrimonio '.$suma_total_patrimonio.'<br>';

*/
/*
//resultado acumulado que va al patrimonio
$suma_total_patrimonio = 0;
$suma_total_patrimonio_debe = 0;
$suma_total_patrimonio_haber = 0;
$matriz_resultado [$pos_res_acum][3] = $suma_total_activo_debe - $suma_total_pasivo_debe - $suma_total_patrimonio_debe;
$matriz_resultado [$pos_res_acum][4] = $suma_total_activo_haber - $suma_total_pasivo_haber - $suma_total_patrimonio_haber;
//$matriz_resultado [$pos_res_acum][4] = $suma_resultado_acumulado;



for($i = 1; $i <= $fin; $i++) {
	if($matriz_resultado [$i][7] == 3) {
		$suma_total_patrimonio_debe = $suma_total_patrimonio_debe + $matriz_resultado [$i][3];
		$suma_total_patrimonio_haber = $suma_total_patrimonio_haber + $matriz_resultado [$i][4];
		$matriz_resultado [$i][6] = $matriz_resultado [$i][4] - $matriz_resultado [$i][3];
	}
}
*/
//$suma_total_patrimonio = $suma_total_patrimonio_haber - $suma_total_patrimonio_debe; //saldo acreedor
$suma_total_patrimonio = $suma_total_patrimonio + $suma_resultado_acumulado; //saldo acreedor

//dar niveles a las cuentas
for($i = 1; $i <= $fin; $i++) {
	$j = 2;
	$nivel_correspondiente = $numero_niveles;
	while($j <= $numero_niveles) {
		if($matriz_resultado [$i][7 + $j] == 0){ //empieza en el segundo nivel no en el primero
			$nivel_correspondiente = $nivel_correspondiente - 1;
		}
		$j++;
	}
	$matriz_resultado [$i][5] = $nivel_correspondiente;
}

//sumar totales por niveles
for($j = 1; $j < $numero_niveles; $j++) {
	for($i = 1; $i <= $fin; $i++) {
		if($matriz_resultado [$i][5] == $j) {
			$pos = $i;
			$digito_cta = $matriz_resultado [$i][7 + $j];
		}
		if($matriz_resultado [$i][5] > $j && $matriz_resultado [$i][7 + $j] == $digito_cta) {
			$matriz_resultado [$pos][6] = $matriz_resultado [$pos][6] + $matriz_resultado [$i][6];
			//para cc
			$ccc = 3;
			for($c = 1; $c <= $fin_cc; $c++) {//for c5
			$matriz_resultado [$pos][29+$ccc] = $matriz_resultado [$pos][29+$ccc] + $matriz_resultado [$i][29+$ccc];
			$ccc = $ccc + 3;
			}//fin for c5
		}
	}
}
	
//echo abs(-78.0015);
/*
if(number_format(-0.005, 2)<>0){
echo 'si'; //echo round(abs(-0.005), 2);
}else{
echo 'no';
}
*/
?>
<?php if($ag == 1){ //if ag1 ?>
<table border="0" align="left" width="100%" cellpadding="5">
<tr><td><?php echo $mostrar_logo_reportes; ?>
</td><td align="right"><b>Fecha: <?php echo date("Y-m-d"); ?><br/>Hora: <?php echo date("H:i:s"); ?><br/>Usuario: <?php echo $usuario; ?></b>
</td></tr></table>
<p><br /><center><font color="#000099" size="+1"><b>Balance General</b></font></center></p>
<table border="0" cellpadding="2" align="center" width="90%">
<tr>
<td>	
    <table border="1" align="center" cellpadding="2" width="100%">
		<TR> 
        <TD width="25%"><b>Nivel: </b><?php echo $texto_niveles; ?></TD>
        <TD width="25%"><b>Centro de Costo: </b><?php echo $nom_centro_costo; ?></TD>
		<TD width="25%"><b>Centro de Costo (Agrupar): </b><?php echo $nom_centro_costo_agrupar; ?></TD>
        <TD width="25%"><b>Mostrar saldos en cero: </b><?php echo $texto_muestra_cero; ?></TD>
        </TR>
        <TR>
		<TD colspan="2"><b>Mostrar columna Sin Centro de Costo, cuando todos los CC son cero: </b><?php echo $texto_muestra_sin_cc; ?></TD>
		<TD><b>Mostrar comparativo: </b><?php echo $texto_comparativo; ?></TD>
        <TD><b>Contexto: </b><?php echo $nom_contexto; ?></TD>
		</TR>
        <TR>
		<TD colspan="2"><b>De Fecha: </b><?php echo $fecha_ini; ?> <b>a Fecha: </b><?php echo $fecha_fin; ?></TD>
        <TD><b>Expresado en: </b><?php echo $nom_moneda_principal; ?></TD>
        <TD><b>Valorar tambi&eacute;n en: </b><?php echo $nom_otra_moneda; ?></TD>
        </TR>
    </table>

</td>

<td valign="top" width="150">

    <table border="1" align="center" cellpadding="2" width="100%">
    <tr>
    <TD><b>Tipo de Cambio:</b></TD>
    </tr><tr>
    <TD align="center"><a href="../../ModuleAccounting/VoucherExchangeRate/index.php?pkyExchangeRate=<?php echo $ultimo_tc; ?>&user=<?php echo $usuario; ?>&token=<?php echo $token; ?>" title="Tipo de Cambio"><?php echo $ultimo_tc; ?></a> (<?php echo $tc_fecha; ?> - <?php echo $tc_hora; ?>)<br/ >
        <table border="0" cellpadding="2" align="center">
            <?php
            for($m = 1; $m <= $fin_m; $m++) {
            printf("<tr><td align='left'>1 %s</td>", $ma_tc [$m][1]);//moneda base
            printf("<td align='center'>%s</td>", ' = ');//letra a
            printf("<td align='left'>%s %s</td></tr>", number_format($ma_tc [$m][3],$n_tipocambio), $ma_tc [$m][2]);//moneda target y tasa
            //printf("<td align='right'>%s</td></tr>", number_format($ma_tc [$m][3],$n_tipocambio));//tasa
            }
            ?>
        </table>
    </TD>
    </tr>
	</table>
    
</td>

</tr>
</table>
<?php } //fin if ag1 ?>

	<br />
	<?php if($centro_costo_agrupar != -1){ //if agrupar1 ?>
	<!-- titulo de centro de costo agrupar -->
		<table border="0" align="center" cellpadding="2" width="90%">
		<TR>
			<TD align="center"><b> <?php echo $mat_tipocc_agrupar[$ag][4]; ?> - <?php echo $mat_tipocc_agrupar[$ag][2]; ?> </b></TD>
		</TR>
		</table>
	<?php } //fin if agrupar1 ?>
<table border="1" align="center" cellpadding="2" width="90%">
	<thead>
 	<TR> 
    <TD align="center" width="15%"><b>Cod. Cuenta</b></TD>
	<TD align="center"><b>Cuenta</b></TD>
    <?php if($otra_moneda == 0) { ?>
	<?php for($t = 1; $t <= $fin_cc-1; $t++) { //fort ?>
    	<TD align="center"><b><?php echo $mat_tipocc[$t][4]; ?><br/>
        <?php echo $mat_tipocc[$t][2]; ?> en <?php echo $nom_moneda_principal; ?></b></TD>
    <?php } //fin fort ?>
    <?php if($hay_cc != 0) { ?>
    	<TD align="center"><b>Sin Centro de Costo<br/>
        en <?php echo $nom_moneda_principal; ?></b></TD>
    <?php } ?>
    <TD align="center"><b>Saldo en <?php echo $nom_moneda_principal; ?></b></TD>
    <?php } else { ?>
    <?php for($t = 1; $t <= $fin_cc-1; $t++) { //fort2 ?>
    	<TD align="center"><b><?php echo $mat_tipocc[$t][4]; ?><br/>
        <?php echo $mat_tipocc[$t][2]; ?> en <?php echo $nom_moneda_principal; ?></b></TD>
        <TD align="center"><b><?php echo $mat_tipocc[$t][4]; ?><br/>
        <?php echo $mat_tipocc[$t][2]; ?> en <?php echo $nom_otra_moneda; ?></b></TD>
    <?php } //fin fort2 ?>
    <?php if($hay_cc != 0) { ?>
    	<TD align="center"><b>Sin Centro de Costo<br/>
        en <?php echo $nom_moneda_principal; ?></b></TD>
        <TD align="center"><b>Sin Centro de Costo<br/>
        en <?php echo $nom_otra_moneda; ?></b></TD>
    <?php } ?>
    <TD align="center"><b>Saldo en <?php echo $nom_moneda_principal; ?></b></TD>
    <TD align="center"><b>Saldo en <?php echo $nom_otra_moneda; ?></b></TD>
	<?php } ?>
    </TR>
	</thead>
    <tbody class="marcafila">
<?php

//espacio y colores para mostrar hasta 8 niveles en colores
$var_espacio = array();
$var_espacio [1][1] = '';
$mostrar_espacio = '&nbsp;&nbsp;&nbsp;&nbsp;';
//$mostrar_espacio = 'a';
for($i = 2; $i <= $numero_niveles; $i++){
	$var_espacio [$i][1] = $var_espacio [$i - 1][1] . $mostrar_espacio;
	//echo $var_espacio [$i][1];
}

$var_color = array();
$var_color [1][1] = '#f8e4e2'; //#ffcccc
$var_color [2][1] = '#f8f8e2'; //#ffffcc
$var_color [3][1] = '#e4f8e2'; //#ccffcc
$var_color [4][1] = '#e2e4f8'; //#ccccff
$var_color [5][1] = '#ccffff';
$var_color [6][1] = '#ffcc99';
$var_color [7][1] = '#33ccff';
$var_color [8][1] = '#99ff99';


for($i = 1; $i <= $fin; $i++){
	$cod_tipo_cuenta = $matriz_resultado [$i][7];
	$cod_cuenta_det = $matriz_resultado [$i][1];
	if($matriz_resultado [$i][7] == 1 || $matriz_resultado [$i][7] == 2 || $matriz_resultado [$i][7] == 3){ //if 1
		if($muestra_cero == 1) {//if 1.1
			//if($k == $numero_niveles) { $k = 1; }
			$k = 1;
			while($k <= $numero_niveles) {
				if($matriz_resultado [$i][5] == $k) {
					$v_espacio = $var_espacio [$k][1];
					$v_color = $var_color [$k][1];
				}
				$k++;
			}
			if($matriz_resultado [$i][5] <= $niveles) { //if niveles_mostrar
			printf("<tr BGCOLOR=$v_color><td align='left'>%s%s</td>", $v_espacio, $matriz_resultado [$i][1]); //cod
			printf("<td align='left'>%s</td>", $matriz_resultado [$i][2]);//cuenta
			
			//para cc 
			$ccc = 3;
			for($c = 1; $c <= $fin_cc; $c++) {//for c5
				$cod_cc = $mat_tipocc[$c][1];
				//para sin centro de costo asigno codigo=0
				if($hay_cc != 0 && $cod_cc == NULL) {
					$cod_cc = -10;
				}
				if($centro_costo_agrupar == -1){
					$cod_cc_agrupar = -10;
				}
				if($matriz_resultado [$i][29+$ccc] < 0){ //if resultado cc
					$mostrar_saldo_nega = $matriz_resultado [$i][29+$ccc] * -1;
					if($matriz_resultado[$i][5] == $numero_niveles) { //if ni0
						printf("<td align='right'><a href='../../ModuleAccounting/ReportTrialBalance/report.php?rep=3&tipo=2&cod_cuenta_det=$cod_cuenta_det&cod_tipo_cuenta_det=$cod_tipo_cuenta&fechaini_det=$fecha_ini&fechafin_det=$fecha_fin&asientocc_det=$asientocc&cod_cc_det=$cod_cc&cod_cc_agrupar_det=$cod_cc_agrupar&cod_tipo_cc_det=$centro_costo&contexto_det=$cod_contexto&usuario_det=$usuario&token=$token' title='Mayor de la Cuenta'>(%s)</a></td>", number_format($mostrar_saldo_nega, $n_decimales));//saldocc
						if($otra_moneda != 0) {
						printf("<td align='right'>(%s)</td>", number_format($mostrar_saldo_nega * $tasa_tc, $n_decimales));//saldocc
						}
					} else { //else if ni0
						printf("<td align='right'>(%s)</td>", number_format($mostrar_saldo_nega, $n_decimales));//saldo
						if($otra_moneda != 0) {
						printf("<td align='right'>(%s)</td>", number_format($mostrar_saldo_nega * $tasa_tc, $n_decimales));//saldocc
						}
					} //fin if ni0
				} else { //else if resultado cc
					if($matriz_resultado[$i][5] == $numero_niveles) { //if ni0
						printf("<td align='right'><a href='../../ModuleAccounting/ReportTrialBalance/report.php?rep=3&tipo=2&cod_cuenta_det=$cod_cuenta_det&cod_tipo_cuenta_det=$cod_tipo_cuenta&fechaini_det=$fecha_ini&fechafin_det=$fecha_fin&asientocc_det=$asientocc&cod_cc_det=$cod_cc&cod_cc_agrupar_det=$cod_cc_agrupar&cod_tipo_cc_det=$centro_costo&contexto_det=$cod_contexto&usuario_det=$usuario&token=$token' title='Mayor de la Cuenta'>%s</a></td>", number_format($matriz_resultado [$i][29+$ccc], $n_decimales));//saldocc
						if($otra_moneda != 0) {
						printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][29+$ccc] * $tasa_tc, $n_decimales));//saldocc
						}
					} else { //else if ni0
						printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][29+$ccc], $n_decimales));//saldocc
						if($otra_moneda != 0) {
						printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][29+$ccc] * $tasa_tc, $n_decimales));//saldocc
						}
					} //fin if ni0	
				}// fin if resultado cc
				$ccc = $ccc + 3;
			}//fin for c5
			
			if($matriz_resultado [$i][6] < 0){ //if resultado
				$mostrar_saldo_nega = $matriz_resultado [$i][6] * -1;
				if($matriz_resultado [$i][5] == $numero_niveles) { //if niveles
					printf("<td align='right'><a href='../../ModuleAccounting/ReportTrialBalance/report.php?rep=3&tipo=2&cod_cuenta_det=$cod_cuenta_det&cod_tipo_cuenta_det=$cod_tipo_cuenta&fechaini_det=$fecha_ini&fechafin_det=$fecha_fin&asientocc_det=$asientocc&contexto_det=$cod_contexto&usuario_det=$usuario&token=$token' title='Mayor de la Cuenta'>(%s)</a></td>", number_format($mostrar_saldo_nega, $n_decimales));//saldo
					if($otra_moneda != 0) {
					printf("<td align='right'>(%s)</td>", number_format($mostrar_saldo_nega * $tasa_tc, $n_decimales));//saldo
					}
					echo '</tr>';
				} else { //else if niveles
					printf("<td align='right'>(%s)</td>", number_format($mostrar_saldo_nega, $n_decimales));//saldo
					if($otra_moneda != 0) {
					printf("<td align='right'>(%s)</td>", number_format($mostrar_saldo_nega * $tasa_tc, $n_decimales));//saldo
					}
					echo '</tr>';
				} //fin if niveles
			} else { //else resultado
				if($matriz_resultado [$i][5] == $numero_niveles) { //if niveles2
					printf("<td align='right'><a href='../../ModuleAccounting/ReportTrialBalance/report.php?rep=3&tipo=2&cod_cuenta_det=$cod_cuenta_det&cod_tipo_cuenta_det=$cod_tipo_cuenta&fechaini_det=$fecha_ini&fechafin_det=$fecha_fin&asientocc_det=$asientocc&contexto_det=$cod_contexto&usuario_det=$usuario&token=$token' title='Mayor de la Cuenta'>%s</a></td>", number_format($matriz_resultado [$i][6], $n_decimales));//saldo
					if($otra_moneda != 0) {
					printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][6] * $tasa_tc, $n_decimales));//saldo
					}
					echo '</tr>';
				} else { //else if niveles2
					printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][6], $n_decimales));//saldo
					if($otra_moneda != 0) {
					printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][6] * $tasa_tc, $n_decimales));//saldo
					}
					echo '</tr>';
				}//fin if niveles2
			} //fin resultado
			} //fin if niveles_mostrar
		}//fin if 1.1
	
		//para NO muestra 0 cc (si hay un resultado diferente de 0 se muestra)
		$es_cero = 0;
		$ccc = 3;
		for($c = 1; $c <= $fin_cc; $c++) {//for c0
			if(number_format($matriz_resultado [$i][29+$ccc],$n_decimales) <> 0){ 
				$es_cero = 1; 
			}
			$ccc = $ccc + 3;
		}//fin for c0
	
		if(($muestra_cero == 0 && number_format($matriz_resultado [$i][6],$n_decimales) <> 0) || ($muestra_cero == 0 && $es_cero <> 0)) {//if 1.2
			//if($k == $numero_niveles) { $k = 1; }
			$k = 1;
			while($k <= $numero_niveles) {
				if($matriz_resultado [$i][5] == $k) {
					$v_espacio = $var_espacio [$k][1];
					$v_color = $var_color [$k][1];
				}
				$k++;
			}
			if($matriz_resultado [$i][5] <= $niveles) { //if niveles_mostrar2
			printf("<tr BGCOLOR=$v_color><td align='left'>%s%s</td>", $v_espacio, $matriz_resultado [$i][1]); //cod
			printf("<td align='left'>%s</td>", $matriz_resultado [$i][2]);//cuenta
			
			//para cc 
			$ccc = 3;
			for($c = 1; $c <= $fin_cc; $c++) {//for c5
			$cod_cc = $mat_tipocc[$c][1];
			//para sin centro de costo asigno codigo 0
			if($hay_cc != 0 && $cod_cc == NULL) {
				$cod_cc = -10;
			}
			if($centro_costo_agrupar == -1){
				$cod_cc_agrupar = -10;
			}
			if($matriz_resultado [$i][29+$ccc] < 0){ //if resultado cc
				$mostrar_saldo_nega = $matriz_resultado [$i][29+$ccc] * -1;
				if($matriz_resultado[$i][5] == $numero_niveles) { //if ni0
					printf("<td align='right'><a href='../../ModuleAccounting/ReportTrialBalance/report.php?rep=3&tipo=2&cod_cuenta_det=$cod_cuenta_det&cod_tipo_cuenta_det=$cod_tipo_cuenta&fechaini_det=$fecha_ini&fechafin_det=$fecha_fin&asientocc_det=$asientocc&cod_cc_det=$cod_cc&cod_cc_agrupar_det=$cod_cc_agrupar&cod_tipo_cc_det=$centro_costo&contexto_det=$cod_contexto&usuario_det=$usuario&token=$token' title='Mayor de la Cuenta'>(%s)</a></td>", number_format($mostrar_saldo_nega, $n_decimales));//saldocc
					if($otra_moneda != 0) {
					printf("<td align='right'>(%s)</td>", number_format($mostrar_saldo_nega * $tasa_tc, $n_decimales));//saldocc
					}
				} else { //else if ni0
					printf("<td align='right'>(%s)</td>", number_format($mostrar_saldo_nega, $n_decimales));//saldo
					if($otra_moneda != 0) {
					printf("<td align='right'>(%s)</td>", number_format($mostrar_saldo_nega * $tasa_tc, $n_decimales));//saldocc
					}
				} //fin if ni0
			} else { //else if resultado cc
				if($matriz_resultado[$i][5] == $numero_niveles) { //if ni0
					printf("<td align='right'><a href='../../ModuleAccounting/ReportTrialBalance/report.php?rep=3&tipo=2&cod_cuenta_det=$cod_cuenta_det&cod_tipo_cuenta_det=$cod_tipo_cuenta&fechaini_det=$fecha_ini&fechafin_det=$fecha_fin&asientocc_det=$asientocc&cod_cc_det=$cod_cc&cod_cc_agrupar_det=$cod_cc_agrupar&cod_tipo_cc_det=$centro_costo&contexto_det=$cod_contexto&usuario_det=$usuario&token=$token' title='Mayor de la Cuenta'>%s</a></td>", number_format($matriz_resultado [$i][29+$ccc], $n_decimales));//saldocc
					if($otra_moneda != 0) {
					printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][29+$ccc] * $tasa_tc, $n_decimales));//saldocc
					}
				} else { //else if ni0
					printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][29+$ccc], $n_decimales));//saldocc
					if($otra_moneda != 0) {
					printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][29+$ccc] * $tasa_tc, $n_decimales));//saldocc
					}
				} //fin if ni0	
			}// fin if resultado cc
			$ccc = $ccc + 3;
			}//fin for c5
			
			if($matriz_resultado [$i][6] < 0){ //if resultado
				$mostrar_saldo_nega = $matriz_resultado [$i][6] * -1;
				if($matriz_resultado [$i][5] == $numero_niveles) { //if niveles
					printf("<td align='right'><a href='../../ModuleAccounting/ReportTrialBalance/report.php?rep=3&tipo=2&cod_cuenta_det=$cod_cuenta_det&cod_tipo_cuenta_det=$cod_tipo_cuenta&fechaini_det=$fecha_ini&fechafin_det=$fecha_fin&asientocc_det=$asientocc&contexto_det=$cod_contexto&usuario_det=$usuario&token=$token' title='Mayor de la Cuenta'>(%s)</a></td>", number_format($mostrar_saldo_nega, $n_decimales));//saldo 
					if($otra_moneda != 0) {
					printf("<td align='right'>(%s)</td>", number_format($mostrar_saldo_nega * $tasa_tc, $n_decimales));//saldo
					}
					echo '</tr>';
				} else { //else if niveles
					printf("<td align='right'>(%s)</td>", number_format($mostrar_saldo_nega, $n_decimales));//saldo
					if($otra_moneda != 0) {
					printf("<td align='right'>(%s)</td>", number_format($mostrar_saldo_nega * $tasa_tc, $n_decimales));//saldo
					}
					echo '</tr>';
				} //fin if niveles
			} else { //else resultado
				if($matriz_resultado [$i][5] == $numero_niveles) { //if niveles2
					printf("<td align='right'><a href='../../ModuleAccounting/ReportTrialBalance/report.php?rep=3&tipo=2&cod_cuenta_det=$cod_cuenta_det&cod_tipo_cuenta_det=$cod_tipo_cuenta&fechaini_det=$fecha_ini&fechafin_det=$fecha_fin&asientocc_det=$asientocc&contexto_det=$cod_contexto&usuario_det=$usuario&token=$token' title='Mayor de la Cuenta'>%s</a></td>", number_format($matriz_resultado [$i][6], $n_decimales));//saldo
					if($otra_moneda != 0) {
					printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][6] * $tasa_tc, $n_decimales));//saldo
					}
					echo '</tr>';
				} else { //else if niveles2
					printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][6], $n_decimales));//saldo
					if($otra_moneda != 0) {
					printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][6] * $tasa_tc, $n_decimales));//saldo
					}
					echo '</tr>';
				}//fin if niveles2
			} //fin resultado
			} //fin if niveles_mostrar2
		}//fin if 1.2
	} //fin if 1
	$k++;
}


printf("<tr BGCOLOR='#ffcccc'><td align='left' colspan='2'><b>Total Activo </b></td>");

//para cc
for($c = 1; $c <= $fin_cc; $c++) {//for c6
	if($suma_total_activo_cc[$c] < 0){
	printf("<td align='right'><b>(%s)</b></td>", number_format($suma_total_activo_cc[$c] * -1, $n_decimales));
		if($otra_moneda != 0) {
			printf("<td align='right'><b>(%s)</b></td>", number_format($suma_total_activo_cc[$c] * -1 * $tasa_tc, $n_decimales));//saldo
		}
		//echo '</tr>';
	} else {
	printf("<td align='right'><b>%s</b></td>", number_format($suma_total_activo_cc[$c], $n_decimales));
		if($otra_moneda != 0) {
			printf("<td align='right'><b>%s</b></td>", number_format($suma_total_activo_cc[$c] * $tasa_tc, $n_decimales));//saldo
		}
		//echo '</tr>';
	}
}//fin for c6

if($suma_total_activo < 0){
	printf("<td align='right'><b>(%s)</b></td>", number_format($suma_total_activo * -1, $n_decimales));
		if($otra_moneda != 0) {
			printf("<td align='right'><b>(%s)</b></td>", number_format($suma_total_activo * -1 * $tasa_tc, $n_decimales));//saldo
		}
		echo '</tr>';
	} else {
	printf("<td align='right'><b>%s</b></td>", number_format($suma_total_activo, $n_decimales));
		if($otra_moneda != 0) {
			printf("<td align='right'><b>%s</b></td>", number_format($suma_total_activo * $tasa_tc, $n_decimales));//saldo
		}
		echo '</tr>';
	}

printf("<tr BGCOLOR='#ffcccc'><td align='left' colspan='2'><b>Total Pasivo </b></td>");

//para cc
for($c = 1; $c <= $fin_cc; $c++) {//for c7
	if($suma_total_pasivo_cc[$c] < 0){
	printf("<td align='right'><b>(%s)</b></td>", number_format($suma_total_pasivo_cc[$c] * -1, $n_decimales));
		if($otra_moneda != 0) {
			printf("<td align='right'><b>(%s)</b></td>", number_format($suma_total_pasivo_cc[$c] * -1 * $tasa_tc, $n_decimales));//saldo
		}
		//echo '</tr>';
	} else {
	printf("<td align='right'><b>%s</b></td>", number_format($suma_total_pasivo_cc[$c], $n_decimales));
		if($otra_moneda != 0) {
			printf("<td align='right'><b>%s</b></td>", number_format($suma_total_pasivo_cc[$c] * $tasa_tc, $n_decimales));//saldo
		}
		//echo '</tr>';
	}
}//fin for c7

if($suma_total_pasivo < 0){
	printf("<td align='right'><b>(%s)</b></td>", number_format($suma_total_pasivo * -1, $n_decimales));
		if($otra_moneda != 0) {
			printf("<td align='right'><b>(%s)</b></td>", number_format($suma_total_pasivo * -1 * $tasa_tc, $n_decimales));//saldo
		}
		echo '</tr>';
	} else {
	printf("<td align='right'><b>%s</b></td>", number_format($suma_total_pasivo, $n_decimales));
		if($otra_moneda != 0) {
			printf("<td align='right'><b>%s</b></td>", number_format($suma_total_pasivo * $tasa_tc, $n_decimales));//saldo
		}
		echo '</tr>';
	}

printf("<tr BGCOLOR='#ffcccc'><td align='left' colspan='2'><b>Total Patrimonio </b></td>");

//para cc
for($c = 1; $c <= $fin_cc; $c++) {//for c8
	if($suma_total_patrimonio_cc[$c] < 0){
	printf("<td align='right'><b>(%s)</b></td>", number_format($suma_total_patrimonio_cc[$c] * -1, $n_decimales));
		if($otra_moneda != 0) {
			printf("<td align='right'><b>(%s)</b></td>", number_format($suma_total_patrimonio_cc[$c] * -1 * $tasa_tc, $n_decimales));//saldo
		}
		//echo '</tr>';
	} else {
	printf("<td align='right'><b>%s</b></td>", number_format($suma_total_patrimonio_cc[$c], $n_decimales));
		if($otra_moneda != 0) {
			printf("<td align='right'><b>%s</b></td>", number_format($suma_total_patrimonio_cc[$c] * $tasa_tc, $n_decimales));//saldo
		}
		//echo '</tr>';
	}
}//fin for c8

if($suma_total_patrimonio < 0){
	printf("<td align='right'><b>(%s)</b></td>", number_format($suma_total_patrimonio * -1, $n_decimales));
		if($otra_moneda != 0) {
			printf("<td align='right'><b>(%s)</b></td>", number_format($suma_total_patrimonio * -1 * $tasa_tc, $n_decimales));//saldo
		}
		echo '</tr>';
	} else {
	printf("<td align='right'><b>%s</b></td>", number_format($suma_total_patrimonio, $n_decimales));
		if($otra_moneda != 0) {
			printf("<td align='right'><b>%s</b></td>", number_format($suma_total_patrimonio * $tasa_tc, $n_decimales));//saldo
		}
		echo '</tr>';
	}

?>
</tbody>
</table>
<?php

	if($hay_cc != 0) { $fin_cc--; } //reduzco porque si no se suma una columna en cada iteración
	$ag++;
	} while ($ag <= $fin_cc_agrupar); //fin bucle do 



//comparando


} else { //else if comparativo

//fecha inicial y fecha final para el titulo
$fechacomp_ini_txt = $fechaano_ini.'-'.$fechames_ini.'-'.'01';
$m = $fechames_fin;
$a = $fechaano_fin;
if($m == 1 || $m == 3 || $m == 5 || $m == 7 || $m == 8 || $m == 10 || $m == 12) {//if 1
	$fechacomp_fin_txt = $a.'-'.$m.'-31';
} else { //else if 1
	if($m == 2) { //if 2
		$es_bisiesto = esBisiesto($a);
		if($es_bisiesto == 1) { //if 2.1
			$fechacomp_fin_txt = $a.'-'.$m.'-29';
		} else {//else if 2.1
			$fechacomp_fin_txt = $a.'-'.$m.'-28';
		}//fin if 2.1
	} else {//else if 2
		$fechacomp_fin_txt = $a.'-'.$m.'-30';
	}//fin if 2
}//fin if 1

//calculo el numero de meses entre las dos fechas
$nro_meses = ($fechames_fin - $fechames_ini) + ($fechaano_fin - $fechaano_ini) * 12 + 1;
$m = $fechames_ini;
$a = $fechaano_ini;

//calculo del indice final (7) 4 por las columnas iniciales, 2 para la suma por fila final y 1 para que empiece en el siguiente, 4 por debe haber saldo y saldo om
$colfin = 7 + 4 * $nro_meses; 

//para los totales por fila
$colsum = 5 + 4 * $nro_meses;
$colsumom = 6 + 4 * $nro_meses;

$fm = 1; //contador de las matriz fecha mes para el detalle (link libro ventas)
$mat_fm = array(); //matriz fecha mes detalle

for($x = 1; $x <= $nro_meses; $x++) {//for x 

	if($m > 12) {//if $m
		$a++;
		$m = 1;
	}//fin $m
//armo la fecha de comparativo
$fechacomp_ini = $a.'-'.$m.'-01';

if($m == 1) { $titulo_mes = 'Enero'; }
if($m == 2) { $titulo_mes = 'Febrero'; }
if($m == 3) { $titulo_mes = 'Marzo'; }
if($m == 4) { $titulo_mes = 'Abril'; }
if($m == 5) { $titulo_mes = 'Mayo'; }
if($m == 6) { $titulo_mes = 'Junio'; }
if($m == 7) { $titulo_mes = 'Julio'; }
if($m == 8) { $titulo_mes = 'Agosto'; }
if($m == 9) { $titulo_mes = 'Septiembre'; }
if($m == 10) { $titulo_mes = 'Octubre'; }
if($m == 11) { $titulo_mes = 'Noviembre'; }
if($m == 12) { $titulo_mes = 'Diciembre'; }
//meses con 31 dias
if($m == 1 || $m == 3 || $m == 5 || $m == 7 || $m == 8 || $m == 10 || $m == 12) {//if 1
	$fechacomp_fin = $a.'-'.$m.'-31';
} else { //else if 1
	if($m == 2) { //if 2
		$es_bisiesto = esBisiesto($a);
		if($es_bisiesto == 1) { //if 2.1
			$fechacomp_fin = $a.'-'.$m.'-29';
		} else {//else if 2.1
			$fechacomp_fin = $a.'-'.$m.'-28';
		}//fin if 2.1
	} else {//else if 2
		$fechacomp_fin = $a.'-'.$m.'-30';
	}//fin if 2
}//fin if 1

$mat_fm[$fm][1] = $fechacomp_ini; //fecha inicio mes
$mat_fm[$fm][2] = $fechacomp_fin; //fecha final mes
//echo $mat_fm[$fm][1].' '.$mat_fm[$fm][2];
$fm++;

if($mi_cod_pais == 1) {
$result2 = mysqli_query($link, "Select u.codcuenta as codcuenta, u.cuenta as cuenta, sum(u.debe) as debe, sum(u.haber) as haber, u.uso_cuenta as uso_cuenta
	from
		(SELECT padre.pkyAccount as codcuenta, padre.fldName AS cuenta, 0 as debe, 0 as haber, padre.codUse as uso_cuenta
		FROM actAccount as padre
   			LEFT JOIN actAccount AS hijo
     			ON padre.pkyAccount = hijo.parParent
		group by padre.pkyAccount
		Union
		select a.codAccount as codcuenta, 0 as cuenta, sum(a.fldDebit) as debe, sum(a.fldCredit) as haber, 0 as uso_cuenta
		from actAccountEntryDetail a, actAccountEntry b
		where 
		$valor_contexto2 
		a.codAccountEntry = b.pkyAccountEntry and
		b.fldDate >= '$fechacomp_ini' and b.fldDate <= '$fechacomp_fin' and
		b.sysEnabled = 1 and b.sysAuthorized = 1
		group by a.codAccount) u
	group by u.codcuenta;");
}

if($mi_cod_pais == 176) {
	$result2 = mysqli_query($link, "Select u.codcuenta as codcuenta, u.cuenta as cuenta, sum(u.debe) as debe, sum(u.haber) as haber, u.uso_cuenta as uso_cuenta
		from
			(SELECT padre.pkyAccount as codcuenta, padre.fldName AS cuenta, 0 as debe, 0 as haber, padre.codUse as uso_cuenta
			FROM actAccount as padre
				LEFT JOIN actAccount AS hijo
					ON padre.pkyAccount = hijo.parParent
			group by padre.pkyAccount
			Union
			select a.codAccount as codcuenta, 0 as cuenta, sum(round(a.fldDebit,'$n_decimales')) as debe, sum(round(a.fldCredit,'$n_decimales')) as haber, 0 as uso_cuenta
			from actAccountEntryDetail a, actAccountEntry b
			where 
			$valor_contexto2 
			a.codAccountEntry = b.pkyAccountEntry and
			b.fldDate >= '$fechacomp_ini' and b.fldDate <= '$fechacomp_fin' and
			b.sysEnabled = 1 and b.sysAuthorized = 1
			group by a.codAccount) u
		group by u.codcuenta;");
}

if($x == 1) { //if x es UNO
	
$matriz_resultado = array();
	$i = 1;
	//$suma_total = 0;
	while ($row = mysqli_fetch_array($result2)) {//while result2
		$matriz_resultado [0][1] = 'Cod. Cuenta';
		$matriz_resultado [0][2] = 'Cuenta';
		$matriz_resultado [0][3] = 'Nivel';
		$matriz_resultado [0][4] = 'Uso Cta.';
		$matriz_resultado [0][5] = 'Debe';
		$matriz_resultado [0][6] = 'Haber';
		$matriz_resultado [0][7] = $titulo_mes.' '.$a.'<br />Saldo en '.$nom_moneda_principal;
		$matriz_resultado [0][8] = $titulo_mes.' '.$a.'<br />Saldo en '.$nom_otra_moneda;
		
		$matriz_resultado [$i][1] = $row['codcuenta'];
		$matriz_resultado [$i][2] = $row['cuenta'];
		$matriz_resultado [$i][3] = $numero_niveles; // nivel de la cuenta para mostrar identado
		$matriz_resultado [$i][4] = $row['uso_cuenta'];
		if($mi_cod_pais == 1) {
		$matriz_resultado [$i][5] = $row['debe'];
		$matriz_resultado [$i][6] = $row['haber'];
		}
		if($mi_cod_pais == 176) {
		$matriz_resultado [$i][5] = round($row['debe'],$n_decimales);
		$matriz_resultado [$i][6] = round($row['haber'],$n_decimales);
		}
		$matriz_resultado [$i][7] = 0; // saldo
		$matriz_resultado [$i][8] = 0; // saldo otra moneda
			if($matriz_resultado [$i][1] == $cuenta_res_acum){
				$pos_res_acum = $i;
			}
		
		//asignar uso de cuenta activo, pasivo ,capital, ingreso, egreso
		if($matriz_resultado [$i][4] != NULL) {
			$repetir_uso_cuenta = $matriz_resultado [$i][4];
		} else {
			$matriz_resultado [$i][4] = $repetir_uso_cuenta;
		}
		
		//dividir el codigo de las cuentas
		$j = 1;
		$k = 0;
			while($j <= $numero_niveles) {
			$matriz_resultado [$i][$colfin + $j] = substr($matriz_resultado [$i][1],$k,$digitos_cuenta [$j - 1]);
			$k = $k + $digitos_cuenta [$j - 1];
			//printf("%s, ", $matriz_resultado [$i][7 + $j]);
			//if($j == 4) { printf(" %s", $matriz_resultado [$i][7]); echo '<br>';}
			$j++;
			}
		
		$i++;
	} // fin while result2
		$fin = $i - 1;
		mysqli_free_result($result2);
	
		
//suma totales activo, pasivo y patrimonio
$suma_total_activo_debe = 0;
$suma_total_activo_haber = 0;
$suma_total_activo = 0;
$suma_total_pasivo_debe = 0;
$suma_total_pasivo_haber = 0;
$suma_total_pasivo = 0;
$suma_total_patrimonio_debe = 0;
$suma_total_patrimonio_haber = 0;
$suma_total_patrimonio = 0;


for($i = 1; $i <= $fin; $i++) {
	if($matriz_resultado [$i][4] == 1) {
		$suma_total_activo_debe = $suma_total_activo_debe + $matriz_resultado [$i][5];
		$suma_total_activo_haber = $suma_total_activo_haber + $matriz_resultado [$i][6];
		$matriz_resultado [$i][7] = $matriz_resultado [$i][5] - $matriz_resultado [$i][6];
		$matriz_resultado [$i][8] = $matriz_resultado [$i][7] * $tasa_tc;
	}
	if($matriz_resultado [$i][4] == 2) {
		$suma_total_pasivo_debe = $suma_total_pasivo_debe + $matriz_resultado [$i][5];
		$suma_total_pasivo_haber = $suma_total_pasivo_haber + $matriz_resultado [$i][6];
		$matriz_resultado [$i][7] = $matriz_resultado [$i][6] - $matriz_resultado [$i][5];
		$matriz_resultado [$i][8] = $matriz_resultado [$i][7] * $tasa_tc;
	}
	if($matriz_resultado [$i][4] == 3) {
		$suma_total_patrimonio_debe = $suma_total_patrimonio_debe + $matriz_resultado [$i][5];
		$suma_total_patrimonio_haber = $suma_total_patrimonio_haber + $matriz_resultado [$i][6];
		$matriz_resultado [$i][7] = $matriz_resultado [$i][6] - $matriz_resultado [$i][5];
		$matriz_resultado [$i][8] = $matriz_resultado [$i][7] * $tasa_tc;
	}
}
$suma_total_activo = $suma_total_activo_debe - $suma_total_activo_haber; //saldo deudor
$suma_total_pasivo = $suma_total_pasivo_haber - $suma_total_pasivo_debe; //saldo acreedor
$suma_total_patrimonio = $suma_total_patrimonio_haber - $suma_total_patrimonio_debe; //saldo acreedor

$suma_resultado_acumulado = $suma_total_activo - $suma_total_pasivo - $suma_total_patrimonio; 
$matriz_resultado [$pos_res_acum][7] = $suma_resultado_acumulado;
$matriz_resultado [$pos_res_acum][8] = $suma_resultado_acumulado * $tasa_tc;

$suma_total_patrimonio = $suma_total_patrimonio + $suma_resultado_acumulado; //saldo acreedor

$matriz_resultado [$fin + 1][7] = $suma_total_activo;
$matriz_resultado [$fin + 2][7] = $suma_total_pasivo;
$matriz_resultado [$fin + 3][7] = $suma_total_patrimonio;

$matriz_resultado [$fin + 1][8] = $suma_total_activo * $tasa_tc;
$matriz_resultado [$fin + 2][8] = $suma_total_pasivo * $tasa_tc;
$matriz_resultado [$fin + 3][8] = $suma_total_patrimonio * $tasa_tc;

//dar niveles a las cuentas
for($i = 1; $i <= $fin; $i++) {
	$j = 2;
	$nivel_correspondiente = $numero_niveles;
	while($j <= $numero_niveles) {
		if($matriz_resultado [$i][$colfin + $j] == 0){ //empieza en el segundo nivel no en el primero
			$nivel_correspondiente = $nivel_correspondiente - 1;
		}
		$j++;
	}
	$matriz_resultado [$i][3] = $nivel_correspondiente;
}

//sumar totales por niveles
for($j = 1; $j < $numero_niveles; $j++) {
	for($i = 1; $i <= $fin; $i++) {
		if($matriz_resultado [$i][3] == $j) {
			$pos = $i;
			$digito_cta = $matriz_resultado [$i][$colfin + $j];
		}
		if($matriz_resultado [$i][3] > $j && $matriz_resultado [$i][$colfin + $j] == $digito_cta) {
			$matriz_resultado [$pos][7] = $matriz_resultado [$pos][7] + $matriz_resultado [$i][7];
			$matriz_resultado [$pos][8] = $matriz_resultado [$pos][8] + $matriz_resultado [$i][8];
		}
	}
}
//sumar totales por fila
for($i = 1; $i <= $fin; $i++) {
	$matriz_resultado [$i][$colsum] = $matriz_resultado [$i][7];
	$matriz_resultado [$i][$colsumom] = $matriz_resultado [$i][8];
}
	

} else { //else if x es UNO



$mat_res = array();
	$i = 1;
	//$suma_total = 0;
	while ($row = mysqli_fetch_array($result2)) {
		$mat_res [0][1] = 'Cod. Cuenta';
		$mat_res [0][2] = 'Cuenta';
		$mat_res [0][3] = 'Nivel';
		$mat_res [0][4] = 'Uso Cta.';
		$mat_res [0][5] = 'Debe';
		$mat_res [0][6] = 'Haber';
		$mat_res [0][7] = $titulo_mes.' '.$a.'<br />Saldo en '.$nom_moneda_principal;
		$mat_res [0][8] = $titulo_mes.' '.$a.'<br />Saldo en '.$nom_otra_moneda;
		
		$mat_res [$i][1] = $row['codcuenta'];
		$mat_res [$i][2] = $row['cuenta'];
		$mat_res [$i][3] = $numero_niveles; // nivel de la cuenta para mostrar identado
		$mat_res [$i][4] = $row['uso_cuenta'];
		if($mi_cod_pais == 1) {
		$mat_res [$i][5] = $row['debe'];
		$mat_res [$i][6] = $row['haber'];
		}
		if($mi_cod_pais == 176) {
		$mat_res [$i][5] = round($row['debe'],$n_decimales);
		$mat_res [$i][6] = round($row['haber'],$n_decimales);
		}
		$mat_res [$i][7] = 0; // saldo
		$mat_res [$i][8] = 0; // saldo otra moneda
		
		
		//asignar uso de cuenta activo, pasivo ,capital, ingreso, egreso
		if($mat_res [$i][4] != NULL) {
			$repetir_uso_cuenta = $mat_res [$i][4];
		} else {
			$mat_res [$i][4] = $repetir_uso_cuenta;
		}
		
		//dividir el codigo de las cuentas
		$j = 1;
		$k = 0;
			while($j <= $numero_niveles) {
			$mat_res [$i][8 + $j] = substr($mat_res [$i][1],$k,$digitos_cuenta [$j - 1]);
			$k = $k + $digitos_cuenta [$j - 1];
			//printf("%s, ", $matriz_resultado [$i][7 + $j]);
			//if($j == 4) { printf(" %s", $matriz_resultado [$i][7]); echo '<br>';}
			$j++;
			}
		
		$i++;
		}
		$fin = $i - 1;
		mysqli_free_result($result2);
		
//suma totales activo, pasivo y patrimonio
$suma_total_activo_debe = 0;
$suma_total_activo_haber = 0;
$suma_total_activo = 0;
$suma_total_pasivo_debe = 0;
$suma_total_pasivo_haber = 0;
$suma_total_pasivo = 0;
$suma_total_patrimonio_debe = 0;
$suma_total_patrimonio_haber = 0;
$suma_total_patrimonio = 0;


for($i = 1; $i <= $fin; $i++) {
	if($mat_res [$i][4] == 1) {
		$suma_total_activo_debe = $suma_total_activo_debe + $mat_res [$i][5];
		$suma_total_activo_haber = $suma_total_activo_haber + $mat_res [$i][6];
		$mat_res [$i][7] = $mat_res [$i][5] - $mat_res [$i][6];
		$mat_res [$i][8] = $mat_res [$i][7] * $tasa_tc;
	}
	if($mat_res [$i][4] == 2) {
		$suma_total_pasivo_debe = $suma_total_pasivo_debe + $mat_res [$i][5];
		$suma_total_pasivo_haber = $suma_total_pasivo_haber + $mat_res [$i][6];
		$mat_res [$i][7] = $mat_res [$i][6] - $mat_res [$i][5];
		$mat_res [$i][8] = $mat_res [$i][7] * $tasa_tc;
	}
	if($mat_res [$i][4] == 3) {
		$suma_total_patrimonio_debe = $suma_total_patrimonio_debe + $mat_res [$i][5];
		$suma_total_patrimonio_haber = $suma_total_patrimonio_haber + $mat_res [$i][6];
		$mat_res [$i][7] = $mat_res [$i][6] - $mat_res [$i][5];
		$mat_res [$i][8] = $mat_res [$i][7] * $tasa_tc;
	}
}
$suma_total_activo = $suma_total_activo_debe - $suma_total_activo_haber; //saldo deudor
$suma_total_pasivo = $suma_total_pasivo_haber - $suma_total_pasivo_debe; //saldo acreedor
$suma_total_patrimonio = $suma_total_patrimonio_haber - $suma_total_patrimonio_debe; //saldo acreedor

$suma_resultado_acumulado = $suma_total_activo - $suma_total_pasivo - $suma_total_patrimonio; 
$mat_res [$pos_res_acum][7] = $suma_resultado_acumulado;
$mat_res [$pos_res_acum][8] = $suma_resultado_acumulado * $tasa_tc;

$suma_total_patrimonio = $suma_total_patrimonio + $suma_resultado_acumulado; //saldo acreedor

$mat_res [$fin + 1][7] = $suma_total_activo;
$mat_res [$fin + 2][7] = $suma_total_pasivo;
$mat_res [$fin + 3][7] = $suma_total_patrimonio;

$mat_res [$fin + 1][8] = $suma_total_activo * $tasa_tc;
$mat_res [$fin + 2][8] = $suma_total_pasivo * $tasa_tc;
$mat_res [$fin + 3][8] = $suma_total_patrimonio * $tasa_tc;


//dar niveles a las cuentas
for($i = 1; $i <= $fin; $i++) {
	$j = 2;
	$nivel_correspondiente = $numero_niveles;
	while($j <= $numero_niveles) {
		if($mat_res [$i][8 + $j] == 0){ //empieza en el segundo nivel no en el primero
			$nivel_correspondiente = $nivel_correspondiente - 1;
		}
		$j++;
	}
	$mat_res [$i][3] = $nivel_correspondiente;
}

//sumar totales por niveles
for($j = 1; $j < $numero_niveles; $j++) {
	for($i = 1; $i <= $fin; $i++) {
		if($mat_res [$i][3] == $j) {
			$pos = $i;
			$digito_cta = $mat_res [$i][8 + $j];
		}
		if($mat_res [$i][3] > $j && $mat_res [$i][8 + $j] == $digito_cta) {
			$mat_res [$pos][7] = $mat_res [$pos][7] + $mat_res [$i][7];
			$mat_res [$pos][8] = $mat_res [$pos][8] + $mat_res [$i][8];
		}
	}
}


//paso los montos a la matriz principal
for($i = 0; $i <= $fin + 3; $i++) {
	for($j = 1; $j <= 4; $j++) {
	$matriz_resultado [$i][4 + 4 * ($x - 1) + $j] = $mat_res [$i][4 + $j];
	}
}

}//fin if x es UNO
$m++;
}//fin for x


//sumo los totales por fila
for($i = 1; $i <= $fin + 3; $i++) {
	$matriz_resultado [$i][$colsum] = 0;
	$matriz_resultado [$i][$colsumom] = 0;

	$s = 7;
	$so = 8;
	for($col = 1; $col <= $nro_meses; $col++) {//for col1
		$matriz_resultado [$i][$colsum] = $matriz_resultado [$i][$colsum] + $matriz_resultado [$i][$s];
		$matriz_resultado [$i][$colsumom] = $matriz_resultado [$i][$colsumom] + $matriz_resultado [$i][$so];
		$s = $s + 4;
		$so = $so + 4;
	}//fin for col1
}
?>
<table border="0" align="left" width="100%" cellpadding="5">
<tr><td><?php echo $mostrar_logo_reportes; ?>
</td><td align="right"><b>Fecha: <?php echo date("Y-m-d"); ?><br/>Hora: <?php echo date("H:i:s"); ?><br/>Usuario: <?php echo $usuario; ?></b>
</td></tr></table>
<p><br /><center><font color="#000099" size="+1"><b>Balance General</b></font></center></p>
<table border="0" cellpadding="2" align="center" width="90%">
<tr>
<td>	
    <table border="1" align="center" cellpadding="2" width="100%">
		<TR> 
		<TD width="33%"><b>Nivel: </b><?php echo $texto_niveles; ?></TD>
        <TD width="33%"><b>Mostrar saldos en cero: </b><?php echo $texto_muestra_cero; ?></TD>
        <TD width="33%"><b>Contexto: </b><?php echo $nom_contexto; ?></TD>
        </TR>
        <TR>
		<TD><b>Mostrar comparativo: </b><?php echo $texto_comparativo; ?></TD>
        <TD colspan="2"><b>Mostrar columna Sin Centro de Costo, cuando todos los CC son cero: </b><?php echo $texto_muestra_sin_cc; ?></TD>
		</TR>
        <TR>
		<TD><b>De Fecha: </b><?php echo $fecha_ini; ?> <b>a Fecha: </b><?php echo $fecha_fin; ?></TD>
        <TD><b>Expresado en: </b><?php echo $nom_moneda_principal; ?></TD>
        <TD><b>Valorar tambi&eacute;n en: </b><?php echo $nom_otra_moneda; ?></TD>
        </TR>
    </table>

</td>

<td valign="top" width="150">

    <table border="1" align="center" cellpadding="2" width="100%">
    <tr>
    <TD><b>Tipo de Cambio:</b></TD>
    </tr><tr>
    <TD align="center"><a href="../../ModuleAccounting/VoucherExchangeRate/index.php?pkyExchangeRate=<?php echo $ultimo_tc; ?>&user=<?php echo $usuario; ?>&token=<?php echo $token; ?>" title="Tipo de Cambio"><?php echo $ultimo_tc; ?></a> (<?php echo $tc_fecha; ?> - <?php echo $tc_hora; ?>)<br/ >
        <table border="0" cellpadding="2" align="center">
            <?php
            for($m = 1; $m <= $fin_m; $m++) {
            printf("<tr><td align='left'>1 %s</td>", $ma_tc [$m][1]);//moneda base
            printf("<td align='center'>%s</td>", ' = ');//letra a
            printf("<td align='left'>%s %s</td></tr>", number_format($ma_tc [$m][3],$n_tipocambio), $ma_tc [$m][2]);//moneda target y tasa
            //printf("<td align='right'>%s</td></tr>", number_format($ma_tc [$m][3],$n_tipocambio));//tasa
            }
            ?>
        </table>
    </TD>
    </tr>
	</table>
    
</td>

</tr>
</table>
<br />
<table border="1" align="center" cellpadding="2" width="90%">
	<thead>
 	<TR> 
    <?php
	
	printf("<td align='center'><b>%s</b></td>", $matriz_resultado [0][1]);//titulos cod. cuenta
	printf("<td align='center'><b>%s</b></td>", $matriz_resultado [0][2]);//titulos cuenta
	$s = 7;
	$so = 8;
	for($col = 1; $col <= $nro_meses; $col++) { 
	printf("<td align='center'><b>%s</b></td>", $matriz_resultado [0][$s]);//titulos mes
	if($otra_moneda != 0) {
	printf("<td align='center'><b>%s</b></td>", $matriz_resultado [0][$so]);//titulos mes om
	}
	$s = $s + 4;
	$so = $so + 4;
	}
	printf("<td align='center'><b>%s</b></td>", 'Saldo Total en '.$nom_moneda_principal);//titulos total
	if($otra_moneda != 0) {
	printf("<td align='center'><b>%s</b></td>", 'Saldo Total en '.$nom_otra_moneda);//titulos total om
	}
	?>
    </TR>
	</thead>
    <tbody class="marcafila">
<?php

//espacio y colores para mostrar hasta 8 niveles en colores
$var_espacio = array();
$var_espacio [1][1] = '';
$mostrar_espacio = '&nbsp;&nbsp;&nbsp;&nbsp;';
//$mostrar_espacio = 'a';
for($i = 2; $i <= $numero_niveles; $i++){
	$var_espacio [$i][1] = $var_espacio [$i - 1][1] . $mostrar_espacio;
	//echo $var_espacio [$i][1];
}

$var_color = array();
$var_color [1][1] = '#f8e4e2'; //#ffcccc
$var_color [2][1] = '#f8f8e2'; //#ffffcc
$var_color [3][1] = '#e4f8e2'; //#ccffcc
$var_color [4][1] = '#e2e4f8'; //#ccccff
$var_color [5][1] = '#ccffff';
$var_color [6][1] = '#ffcc99';
$var_color [7][1] = '#33ccff';
$var_color [8][1] = '#99ff99';


for($i = 1; $i <= $fin; $i++){
	$cod_tipo_cuenta = $matriz_resultado [$i][4];
	$cod_cuenta_det = $matriz_resultado [$i][1];
	
	if($matriz_resultado [$i][4] == 1 || $matriz_resultado [$i][4] == 2 || $matriz_resultado [$i][4] == 3){ //if 1
	if($muestra_cero == 1) {//if 1.1
		//if($k == $numero_niveles) { $k = 1; }
		$k = 1;
		while($k <= $numero_niveles) {
			if($matriz_resultado [$i][3] == $k) {
				$v_espacio = $var_espacio [$k][1];
				$v_color = $var_color [$k][1];
			}
			$k++;
		}
		if($matriz_resultado [$i][3] <= $niveles) { //if niveles_mostrar
		printf("<tr BGCOLOR=$v_color><td align='left'>%s%s</td>", $v_espacio, $matriz_resultado [$i][1]); //cod
		printf("<td align='left'>%s</td>", $matriz_resultado [$i][2]);//cuenta
		
				
		$s = 7;
		$so = 8;
		$fm = 1;//contador para mostrar fecha detalle
		for($col = 1; $col <= $nro_meses; $col++) {//for col1
			$fechadiainimes = $mat_fm[$fm][1];
			$fechadiafinmes = $mat_fm[$fm][2];
			$fm++;
		if($matriz_resultado [$i][$s] < 0){ //if resultado
			//$mostrar_saldo_nega = $matriz_resultado [$i][$s] * -1;
			if($matriz_resultado [$i][3] == $numero_niveles) { //if niveles
				printf("<td align='right'><a href='../../ModuleAccounting/ReportTrialBalance/report.php?rep=3&tipo=2&cod_cuenta_det=$cod_cuenta_det&cod_tipo_cuenta_det=$cod_tipo_cuenta&fechaini_det=$fechadiainimes&fechafin_det=$fechadiafinmes&asientocc_det=$asientocc&contexto_det=$cod_contexto&usuario_det=$usuario&token=$token' title='Mayor de la Cuenta'>(%s)</a></td>", number_format($matriz_resultado [$i][$s] * -1, $n_decimales));//saldo
			} else { //else if niveles
				printf("<td align='right'>(%s)</td>", number_format($matriz_resultado [$i][$s] * -1, $n_decimales));//saldo
			} //fin if niveles
			
			if($otra_moneda != 0) {
				printf("<td align='right'>(%s)</td>", number_format($matriz_resultado [$i][$so] * -1, $n_decimales));//saldo om
			}
		} else { //else resultado
			if($matriz_resultado [$i][3] == $numero_niveles) { //if niveles2
				printf("<td align='right'><a href='../../ModuleAccounting/ReportTrialBalance/report.php?rep=3&tipo=2&cod_cuenta_det=$cod_cuenta_det&cod_tipo_cuenta_det=$cod_tipo_cuenta&fechaini_det=$fechadiainimes&fechafin_det=$fechadiafinmes&asientocc_det=$asientocc&contexto_det=$cod_contexto&usuario_det=$usuario&token=$token' title='Mayor de la Cuenta'>%s</a></td>", number_format($matriz_resultado [$i][$s], $n_decimales));//saldo
			} else { //else if niveles2
				printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][$s], $n_decimales));//saldo
			}//fin if niveles2
			
			if($otra_moneda != 0) {
				printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][$so], $n_decimales));//saldo om
			}
		} //fin resultado
		$s = $s + 4;
		$so = $so + 4;
		} //fin for col1
		if($matriz_resultado [$i][$colsum] < 0) {
			printf("<td align='right'>(%s)</td>", number_format($matriz_resultado [$i][$colsum] * -1, $n_decimales));//total fila
			if($otra_moneda != 0) {
				printf("<td align='right'>(%s)</td>", number_format($matriz_resultado [$i][$colsumom] * -1, $n_decimales));//total fila om
			}
		} else {
			printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][$colsum], $n_decimales));//total fila
			if($otra_moneda != 0) {
				printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][$colsumom], $n_decimales));//total fila om
			}
		}
		} //fin if niveles_mostrar
		echo '</tr>';
	}//fin if 1.1
	
	if($muestra_cero == 0 && number_format($matriz_resultado [$i][$colsum],$n_decimales)  <> 0) {//if 1.2
		//if($k == $numero_niveles) { $k = 1; }
		$k = 1;
		while($k <= $numero_niveles) {
			if($matriz_resultado [$i][3] == $k) {
				$v_espacio = $var_espacio [$k][1];
				$v_color = $var_color [$k][1];
			}
			$k++;
		}
		if($matriz_resultado [$i][3] <= $niveles) { //if niveles_mostrar
		printf("<tr BGCOLOR=$v_color><td align='left'>%s%s</td>", $v_espacio, $matriz_resultado [$i][1]); //cod
		printf("<td align='left'>%s</td>", $matriz_resultado [$i][2]);//cuenta
		
		$s = 7;
		$so = 8;
		$fm = 1;//contador para mostrar fecha detalle
		for($col = 1; $col <= $nro_meses; $col++) {//for col2
			$fechadiainimes = $mat_fm[$fm][1];
			$fechadiafinmes = $mat_fm[$fm][2];
			$fm++;
		if($matriz_resultado [$i][$s] < 0){ //if resultado
			if($matriz_resultado [$i][3] == $numero_niveles) { //if niveles
				printf("<td align='right'><a href='../../ModuleAccounting/ReportTrialBalance/report.php?rep=3&tipo=2&cod_cuenta_det=$cod_cuenta_det&cod_tipo_cuenta_det=$cod_tipo_cuenta&fechaini_det=$fechadiainimes&fechafin_det=$fechadiafinmes&asientocc_det=$asientocc&contexto_det=$cod_contexto&usuario_det=$usuario&token=$token' title='Mayor de la Cuenta'>(%s)</a></td>", number_format($matriz_resultado [$i][$s] * -1, $n_decimales));//saldo
			} else { //else if niveles
				printf("<td align='right'>(%s)</td>", number_format($matriz_resultado [$i][$s] * -1, $n_decimales));//saldo
			} //fin if niveles
			if($otra_moneda != 0) {
				printf("<td align='right'>(%s)</td>", number_format($matriz_resultado [$i][$so] * -1, $n_decimales));//saldo om
			}
		} else { //else resultado
			if($matriz_resultado [$i][3] == $numero_niveles) { //if niveles2
				printf("<td align='right'><a href='../../ModuleAccounting/ReportTrialBalance/report.php?rep=3&tipo=2&cod_cuenta_det=$cod_cuenta_det&cod_tipo_cuenta_det=$cod_tipo_cuenta&fechaini_det=$fechadiainimes&fechafin_det=$fechadiafinmes&asientocc_det=$asientocc&contexto_det=$cod_contexto&usuario_det=$usuario&token=$token' title='Mayor de la Cuenta'>%s</a></td>", number_format($matriz_resultado [$i][$s], $n_decimales));//saldo
			} else { //else if niveles2
				printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][$s], $n_decimales));//saldo
			}//fin if niveles2
			if($otra_moneda != 0) {
				printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][$so], $n_decimales));//saldo om
			}
		} //fin resultado
		$s = $s + 4;
		$so = $so + 4;
		} //fin for col2
		if($matriz_resultado [$i][$colsum] < 0) {
			printf("<td align='right'>(%s)</td>", number_format($matriz_resultado [$i][$colsum] * -1, $n_decimales));//total fila
			if($otra_moneda != 0) {
				printf("<td align='right'>(%s)</td>", number_format($matriz_resultado [$i][$colsumom] * -1, $n_decimales));//total fila om
			}
		} else {
			printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][$colsum], $n_decimales));//total fila
			if($otra_moneda != 0) {
				printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][$colsumom], $n_decimales));//total fila om
			}
		}
		} //fin if niveles_mostrar
		echo '</tr>';
	}//fin if 1.2
	} //fin if 1
	$k++;
}

$total_act = 0;
$total_pas = 0;
$total_pat = 0;
$total_act_om = 0;
$total_pas_om = 0;
$total_pat_om = 0;
printf("<tr BGCOLOR='#ffcccc'><td align='left' colspan='2'><b>Total Activo </b></td>");
$s = 7;
$so = 8;
for($col = 1; $col <= $nro_meses; $col++) {//for col3
$total_act = $total_act + $matriz_resultado[$fin + 1][$s];
$total_act_om = $total_act_om + $matriz_resultado[$fin + 1][$so];
if($matriz_resultado [$fin + 1][$s] < 0){
	printf("<td align='right'><b>(%s)</b></td>", number_format($matriz_resultado[$fin + 1][$s] * -1, $n_decimales));
	if($otra_moneda != 0) {
		printf("<td align='right'><b>(%s)</b></td>", number_format($matriz_resultado [$fin + 1][$so] * -1, $n_decimales));//saldo
	}
	} else {
	printf("<td align='right'><b>%s</b></td>", number_format($matriz_resultado[$fin + 1][$s], $n_decimales));
	if($otra_moneda != 0) {
		printf("<td align='right'><b>%s</b></td>", number_format($matriz_resultado[$fin + 1][$so], $n_decimales));//saldo
	}
	}
$s = $s + 4;
$so = $so + 4;
}//fin for col3
if($total_act < 0) {
	printf("<td align='right'><b>(%s)</b></td>", number_format($total_act * -1, $n_decimales));
	if($otra_moneda != 0) {
		printf("<td align='right'><b>(%s)</b></td>", number_format($total_act_om * -1, $n_decimales));//saldo
	}
	} else {
	printf("<td align='right'><b>%s</b></td>", number_format($total_act, $n_decimales));
	if($otra_moneda != 0) {
		printf("<td align='right'><b>%s</b></td>", number_format($total_act_om, $n_decimales));//saldo
	}
}
echo '</tr>';

printf("<tr BGCOLOR='#ffcccc'><td align='left' colspan='2'><b>Total Pasivo </b></td>");
$s = 7;
$so = 8;
for($col = 1; $col <= $nro_meses; $col++) {//for col4
$total_pas = $total_pas + $matriz_resultado[$fin + 2][$s];
$total_pas_om = $total_pas_om + $matriz_resultado[$fin + 2][$so];
if($matriz_resultado [$fin + 2][$s] < 0){
	printf("<td align='right'><b>(%s)</b></td>", number_format($matriz_resultado [$fin + 2][$s] * -1, $n_decimales));
	if($otra_moneda != 0) {
		printf("<td align='right'><b>(%s)</b></td>", number_format($matriz_resultado [$fin + 2][$so] * -1, $n_decimales));//saldo
	}
	} else {
	printf("<td align='right'><b>%s</b></td>", number_format($matriz_resultado [$fin + 2][$s], $n_decimales));
	if($otra_moneda != 0) {
		printf("<td align='right'><b>%s</b></td>", number_format($matriz_resultado [$fin + 2][$so], $n_decimales));//saldo
	}
	}
$s = $s + 4;
$so = $so + 4;
}//fin for col4
if($total_pas < 0) {
	printf("<td align='right'><b>(%s)</b></td>", number_format($total_pas * -1, $n_decimales));
	if($otra_moneda != 0) {
		printf("<td align='right'><b>(%s)</b></td>", number_format($total_pas_om * -1, $n_decimales));//saldo
	}
	} else {
	printf("<td align='right'><b>%s</b></td>", number_format($total_pas, $n_decimales));
	if($otra_moneda != 0) {
		printf("<td align='right'><b>%s</b></td>", number_format($total_pas_om, $n_decimales));//saldo
	}
}
echo '</tr>';

printf("<tr BGCOLOR='#ffcccc'><td align='left' colspan='2'><b>Total Patrimonio </b></td>");
$s = 7;
$so = 8;
for($col = 1; $col <= $nro_meses; $col++) {//for col5
$total_pat = $total_pat + $matriz_resultado[$fin + 3][$s];
$total_pat_om = $total_pat_om + $matriz_resultado[$fin + 3][$so];
if($matriz_resultado [$fin + 3][$s] < 0){
	printf("<td align='right'><b>(%s)</b></td>", number_format($matriz_resultado [$fin + 3][$s] * -1, $n_decimales));
	if($otra_moneda != 0) {
		printf("<td align='right'><b>(%s)</b></td>", number_format($matriz_resultado [$fin + 3][$so] * -1, $n_decimales));//saldo
	}
	} else {
	printf("<td align='right'><b>%s</b></td>", number_format($matriz_resultado [$fin + 3][$s], $n_decimales));
	if($otra_moneda != 0) {
		printf("<td align='right'><b>%s</b></td>", number_format($matriz_resultado [$fin + 3][$so], $n_decimales));//saldo
	}
	}
$s = $s + 4;
$so = $so + 4;
}//fin for col5
if($total_pat < 0) {
	printf("<td align='right'><b>(%s)</b></td>", number_format($total_pat * -1, $n_decimales));
	if($otra_moneda != 0) {
		printf("<td align='right'><b>(%s)</b></td>", number_format($total_pat_om * -1, $n_decimales));//saldo
	}
	} else {
	printf("<td align='right'><b>%s</b></td>", number_format($total_pat, $n_decimales));
	if($otra_moneda != 0) {
		printf("<td align='right'><b>%s</b></td>", number_format($total_pat_om, $n_decimales));//saldo
	}
}
echo '</tr>';
?>
</tbody>
</table>


<?php
}//fin if comparativo

} //fin if 2

?>

</body>
</html>
