<!DOCTYPE html>
<html lang="es-ES">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Pantalla Reporte Estado de Resultados</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"];
//$mostrar_cc=$_POST["mostrar_cc"];
$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"];
$muestra_cero = $_POST["muestra_cero"];
$muestra_sin_cc = $_POST["muestra_sin_cc"];
$niveles = $_POST["niveles"];
//$usuario = $_POST["usuario"];
$otra_moneda=$_POST["otra_moneda"];
$cod_contexto=$_POST["contexto"];

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

<?php

//centro de costo
/*
if($mostrar_cc == 0) {
	$centro_costo = -1;
	$nom_centro_costo = 'Ninguno';
}
*/
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;
*/

$resultcc1 = mysqli_query($link, "select pkyCostCenter AS cod_cc, parParent AS cod_padre, codType AS cod_tipo_cc, fldName AS nombre 
FROM 
actCostCenter 
WHERE 
codType = '$centro_costo' and 
sysEnabled = 1 and sysAuthorized = 1 
order by codType, 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['cod_padre'];
	$mat_tipocc[$i][5] = $row['cod_cc']; //para empezar los niveles del arbol
	$mat_tipocc[$i][6] = ''; //para los titulos de los papas
	//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;

//calculo del centro de costo en forma de arbol, a partir de un nivel, se adicionan los hijos para agrupar
$cont = 1;
$pos = 1;
$j = 1;
for($i = 1; $i <= $fin_cc; $i++){
	$mat_acucc = array();
	$acum_cc = $mat_tipocc[$i][1];

	while($j <= $cont){
		$result_ac = mysqli_query($link, "select pkyCostCenter as cod_cc 
		FROM actCostCenter 
		WHERE 
		parParent = '$acum_cc' and 
		sysEnabled = 1 and sysAuthorized = 1;");

		$cont = $cont + mysqli_num_rows($result_ac);

		while ($row = mysqli_fetch_array($result_ac)) {
			$mat_acucc[1][$pos] = $row['cod_cc'];
			$pos++;
		}
		mysqli_free_result($result_ac);

		$acum_cc = $mat_acucc[1][$j];
		$j++;

	}
	for($k = 1; $k <= $cont - 1; $k++){
		$mat_tipocc[$i][5] = $mat_tipocc[$i][5].','.$mat_acucc[1][$k];
	}
	$cont = 1;
	$pos = 1;
	$j = 1;
	//echo $mat_tipocc[$i][1].' - '.$mat_tipocc[$i][2].' - '.$mat_tipocc[$i][3].' - '.$mat_tipocc[$i][4].' - '.$mat_tipocc[$i][5].'<br>'; 
}

//para los títulos de los papás de los centros de costo
//echo '<br>';
for($i = 1; $i <= $fin_cc; $i++){
	$titulo_pa = $mat_tipocc[$i][4];
	do{ 
		$resultcct = mysqli_query($link, "select pkyCostCenter AS cod_cc, parParent AS cod_padre, codType AS cod_tipo_cc, fldName AS nombre 
		FROM 
		actCostCenter 
		WHERE 
		pkyCostCenter = '$titulo_pa';");

		$hay_cc_text = mysqli_num_rows($resultcct); 
		while ($row = mysqli_fetch_array($resultcct)) {
			$mat_tipocc[$i][6] = $row['nombre'].'<br>'.$mat_tipocc[$i][6];
			$titulo_pa = $row['cod_padre']; 
		}
		mysqli_free_result($resultcct);

	}while($hay_cc_text > 0); 
	//echo $mat_tipocc[$i][6]; 
}


$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;");
$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 del reporte Estado de resultados 


if($rep == 2 && $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) {//if 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;");
		}//fin if 1

		if($mi_cod_pais == 176) {//if 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;");
		}//fin if 176

		$matriz_resultado = array();
			$i = 1;
			//$suma_total = 0;
			while ($row = mysqli_fetch_array($result2)) {//while 1
				$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'];
				
				//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];
					$valor_cod_cc = $mat_tipocc[$c][5];
					//echo $cod_cc.'<br>';
					//if($c==1){$matriz_resultado [$i][12] = $cod_cc;}
					//if($c==2){$matriz_resultado [$i][13] = $cod_cc;}
					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 in ($valor_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 in ($valor_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
					}//fin if 1
					
					if($mi_cod_pais == 176) {//if 176
						if($centro_costo_agrupar == -1){ //if agru1
							$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 in ($valor_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(round(a.fldDebit,'$n_decimales') * c.fldPercent / 100 * d.fldPercent / 100) as debecc, sum(round(a.fldCredit,'$n_decimales') * 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 in ($valor_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] = 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;
				}
				//$matriz_resultado [$i][27 + $ccc] = $matriz_resultado [$i][3] - $suma_debecc;
				//$matriz_resultado [$i][28 + $ccc] = $matriz_resultado [$i][4] - $suma_habercc;
				//$fin_ccc = $ccc - 3;
				
				$i++;
			}//fin while 1
			
			$fin = $i - 1;
			mysqli_free_result($result2);
			
			if($hay_cc != 0) { $fin_cc++; }
		/*
		for($i = 1; $i <= $fin; $i++) {//for i
		for($c = 1; $c <= $fin_cc+33; $c++) {//for c		
			echo ' '.$c.'-'.$matriz_resultado [$i][$c];
		}
		echo '<br>';
		}
		*/
		//suma totales ingreso y egreso
		$suma_total_ingreso_debe = 0;
		$suma_total_ingreso_haber = 0;
		$suma_total_ingreso = 0;
		$suma_total_egreso_debe = 0;
		$suma_total_egreso_haber = 0;
		$suma_total_egreso = 0;

		//para cc
		$suma_total_ingreso_debe_cc = array();
		$suma_total_ingreso_haber_cc = array();
		$suma_total_ingreso_cc = array();
		$suma_total_egreso_debe_cc = array();
		$suma_total_egreso_haber_cc = array();
		$suma_total_egreso_cc = array();

		for($i = 1; $i <= $fin; $i++) {//for i
			if($matriz_resultado [$i][7] == 5) {
				$suma_total_egreso_debe = $suma_total_egreso_debe + $matriz_resultado [$i][3];
				$suma_total_egreso_haber = $suma_total_egreso_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_egreso_debe_cc[$c] = $suma_total_egreso_debe_cc[$c] + $matriz_resultado [$i][27+$ccc];
					$suma_total_egreso_haber_cc[$c] = $suma_total_egreso_haber_cc[$c] + $matriz_resultado [$i][28+$ccc];
					$matriz_resultado [$i][29+$ccc] = $matriz_resultado [$i][27+$ccc] - $matriz_resultado [$i][28+$ccc];
					$ccc = $ccc + 3;
				}//fin for c1
			}
			if($matriz_resultado [$i][7] == 4) {
				$suma_total_ingreso_debe = $suma_total_ingreso_debe + $matriz_resultado [$i][3];
				$suma_total_ingreso_haber = $suma_total_ingreso_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_ingreso_debe_cc[$c] = $suma_total_ingreso_debe_cc[$c] + $matriz_resultado [$i][27+$ccc];
					$suma_total_ingreso_haber_cc[$c] = $suma_total_ingreso_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
			}
		}//fin for i
		$suma_total_egreso = $suma_total_egreso_debe - $suma_total_egreso_haber; //saldo deudor
		$suma_total_ingreso = $suma_total_ingreso_haber - $suma_total_ingreso_debe; //saldo acreedor

		//para cc
		for($c = 1; $c <= $fin_cc; $c++) {//for c3
			$suma_total_egreso_cc[$c] = $suma_total_egreso_debe_cc[$c] - $suma_total_egreso_haber_cc[$c]; //saldo deudor
			$suma_total_ingreso_cc[$c] = $suma_total_ingreso_haber_cc[$c] - $suma_total_ingreso_debe_cc[$c]; //saldo acreedor
		}//fin for c3

		//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 c4
					$matriz_resultado [$pos][29+$ccc] = $matriz_resultado [$pos][29+$ccc] + $matriz_resultado [$i][29+$ccc];
					$ccc = $ccc + 3;
					}//fin for c4
					
				}
			}
		}

		?>
		<?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>Estado de Resultados</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="10%"><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][6]; ?><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][6]; ?><br/>
				<?php echo $mat_tipocc[$t][2]; ?> en <?php echo $nom_moneda_principal; ?></b></TD>
				<TD align="center"><b><?php echo $mat_tipocc[$t][6]; ?><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] == 4 || $matriz_resultado [$i][7] == 5){ //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];
							$valor_cod_cc = $mat_tipocc[$c][5]; 
							//echo $cod_cc.'<br>';
							//para sin centro de costo asigno codigo -10
							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 && $cod_cc != 0) { //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&valor_cod_cc_det=$valor_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 && $cod_cc != 0) { //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&valor_cod_cc_det=$valor_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_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];
					$valor_cod_cc = $mat_tipocc[$c][5]; 
					//para sin centro de costo asigno codigo -10
					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 && $cod_cc != 0) { //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&valor_cod_cc_det=$valor_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 && $cod_cc != 0) { //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&valor_cod_cc_det=$valor_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.2
			} //fin if 1
			$k++;
		}

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

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

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

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

		if($suma_total_egreso < 0){
			printf("<td align='right'><b>(%s)</b></td>", number_format($suma_total_egreso * -1, $n_decimales));
				if($otra_moneda != 0) {
					printf("<td align='right'><b>(%s)</b></td>", number_format($suma_total_egreso * -1 * $tasa_tc, $n_decimales));//saldo
				}
				echo '</tr>';
			} else {
			printf("<td align='right'><b>%s</b></td>", number_format($suma_total_egreso, $n_decimales));
				if($otra_moneda != 0) {
					printf("<td align='right'><b>%s</b></td>", number_format($suma_total_egreso * $tasa_tc, $n_decimales));//saldo
				}
				echo '</tr>';
			}
		printf("<tr BGCOLOR='#ffcccc'><td align='left' colspan='2'><b>Ganancia / (Perdida) </b></td>");

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

		$resultado_ejercicio = $suma_total_ingreso - $suma_total_egreso;
		if($resultado_ejercicio < 0){
		printf("<td align='right'><b>(%s)</b></td>", number_format($resultado_ejercicio * -1, $n_decimales));
			if($otra_moneda != 0) {
				printf("<td align='right'><b>(%s)</b></td>", number_format($resultado_ejercicio * -1 * $tasa_tc, $n_decimales));//saldo
			}
			echo '</tr>';
		} else {
		printf("<td align='right'><b>%s</b></td>", number_format($resultado_ejercicio, $n_decimales));
			if($otra_moneda != 0) {
				printf("<td align='right'><b>%s</b></td>", number_format($resultado_ejercicio * $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) {//if 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;");
}//fin if 1

if($mi_cod_pais == 176) {//if 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;");
}//fin if 176

if($x == 1) { //if x es UNO
	
$matriz_resultado = array();
	$i = 1;
	//$suma_total = 0;
	while ($row = mysqli_fetch_array($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
		
		//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 = $i - 1;
		mysqli_free_result($result2);
		

//suma totales ingreso y egreso
$suma_total_ingreso_debe = 0;
$suma_total_ingreso_haber = 0;
$suma_total_ingreso = 0;
$suma_total_egreso_debe = 0;
$suma_total_egreso_haber = 0;
$suma_total_egreso = 0;

for($i = 1; $i <= $fin; $i++) {
	if($matriz_resultado [$i][4] == 5) {
		$suma_total_egreso_debe = $suma_total_egreso_debe + $matriz_resultado [$i][5];
		$suma_total_egreso_haber = $suma_total_egreso_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] == 4) {
		$suma_total_ingreso_debe = $suma_total_ingreso_debe + $matriz_resultado [$i][5];
		$suma_total_ingreso_haber = $suma_total_ingreso_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_egreso = $suma_total_egreso_debe - $suma_total_egreso_haber; //saldo deudor
$suma_total_ingreso = $suma_total_ingreso_haber - $suma_total_ingreso_debe; //saldo acreedor
$resultado_ejercicio = $suma_total_ingreso - $suma_total_egreso; //resultado

$matriz_resultado [$fin + 1][7] = $suma_total_ingreso;
$matriz_resultado [$fin + 2][7] = $suma_total_egreso;
$matriz_resultado [$fin + 3][7] = $resultado_ejercicio;

$matriz_resultado [$fin + 1][8] = $suma_total_ingreso * $tasa_tc;
$matriz_resultado [$fin + 2][8] = $suma_total_egreso * $tasa_tc;
$matriz_resultado [$fin + 3][8] = $resultado_ejercicio * $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 ingreso y egreso
$suma_total_ingreso_debe = 0;
$suma_total_ingreso_haber = 0;
$suma_total_ingreso = 0;
$suma_total_egreso_debe = 0;
$suma_total_egreso_haber = 0;
$suma_total_egreso = 0;

for($i = 1; $i <= $fin; $i++) {
	if($mat_res [$i][4] == 5) {
		$suma_total_egreso_debe = $suma_total_egreso_debe + $mat_res [$i][5];
		$suma_total_egreso_haber = $suma_total_egreso_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] == 4) {
		$suma_total_ingreso_debe = $suma_total_ingreso_debe + $mat_res [$i][5];
		$suma_total_ingreso_haber = $suma_total_ingreso_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_egreso = $suma_total_egreso_debe - $suma_total_egreso_haber; //saldo deudor
$suma_total_ingreso = $suma_total_ingreso_haber - $suma_total_ingreso_debe; //saldo acreedor
$resultado_ejercicio = $suma_total_ingreso - $suma_total_egreso; //resultado

$mat_res [$fin + 1][7] = $suma_total_ingreso;
$mat_res [$fin + 2][7] = $suma_total_egreso;
$mat_res [$fin + 3][7] = $resultado_ejercicio;

$mat_res [$fin + 1][8] = $suma_total_ingreso * $tasa_tc;
$mat_res [$fin + 2][8] = $suma_total_egreso * $tasa_tc;
$mat_res [$fin + 3][8] = $resultado_ejercicio * $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>Estado de Resultados</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] == 4 || $matriz_resultado [$i][4] == 5){ //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_ing = 0;
$total_egr = 0;
$total_gan = 0;
$total_ing_om = 0;
$total_egr_om = 0;
$total_gan_om = 0;
printf("<tr BGCOLOR='#ffcccc'><td align='left' colspan='2'><b>Total Ingresos </b></td>");
$s = 7;
$so = 8;
for($col = 1; $col <= $nro_meses; $col++) {//for col3
$total_ing = $total_ing + $matriz_resultado[$fin + 1][$s];
$total_ing_om = $total_ing_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_ing < 0) {
	printf("<td align='right'><b>(%s)</b></td>", number_format($total_ing * -1, $n_decimales));
	if($otra_moneda != 0) {
		printf("<td align='right'><b>(%s)</b></td>", number_format($total_ing_om * -1, $n_decimales));//saldo
	}
	} else {
	printf("<td align='right'><b>%s</b></td>", number_format($total_ing, $n_decimales));
	if($otra_moneda != 0) {
		printf("<td align='right'><b>%s</b></td>", number_format($total_ing_om, $n_decimales));//saldo
	}
}
echo '</tr>';

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

printf("<tr BGCOLOR='#ffcccc'><td align='left' colspan='2'><b>Ganancia / (Perdida) </b></td>");
$s = 7;
$so = 8;
for($col = 1; $col <= $nro_meses; $col++) {//for col5
$total_gan = $total_gan + $matriz_resultado[$fin + 3][$s];
$total_gan_om = $total_gan_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_gan < 0) {
	printf("<td align='right'><b>(%s)</b></td>", number_format($total_gan * -1, $n_decimales));
	if($otra_moneda != 0) {
		printf("<td align='right'><b>(%s)</b></td>", number_format($total_gan_om * -1, $n_decimales));//saldo
	}
	} else {
	printf("<td align='right'><b>%s</b></td>", number_format($total_gan, $n_decimales));
	if($otra_moneda != 0) {
		printf("<td align='right'><b>%s</b></td>", number_format($total_gan_om, $n_decimales));//saldo
	}
}
echo '</tr>';
?>
</tbody>
</table>

<?php
}//fin if comparativo

} //fin if 2

?>

</body>
</html>
