<!DOCTYPE html>
<html lang="es-ES">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Pantalla Reporte Balance de Sumas y Saldos</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"];
$fecha_fin=$_POST["fechafin"];
$fecha_ini=$_POST["fechaini"];
$centro_costo=$_POST["centrocosto"];
$centro_costo_agrupar=$_POST["centrocosto_agrupar"];
$muestra_cero=$_POST["muestra_cero"];
$muestra_sin_cc = $_POST["muestra_sin_cc"];
$niveles=$_POST["niveles"];
$asientocc=$_POST["asientocc"];
$columnas4=$_POST["columnas4"];
//$usuario=$_POST["usuario"];
$cod_contexto=$_POST["contexto"];

$fechaini_det=$_GET["fechaini_det"];
$fechafin_det=$_GET["fechafin_det"];
$cod_cuenta_det=$_GET["cod_cuenta_det"];
$cod_tipo_cuenta_det=$_GET["cod_tipo_cuenta_det"];
$asientocc_det=$_GET["asientocc_det"];
$cod_cc_det=$_GET["cod_cc_det"];
$valor_cod_cc_det=$_GET["valor_cod_cc_det"];
$cod_cc_agrupar_det=$_GET["cod_cc_agrupar_det"];
$cod_tipo_cc_det=$_GET["cod_tipo_cc_det"];
//$usuario_det=$_GET["usuario_det"];
$cod_contexto_det=$_GET["contexto_det"];

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

//inicio del reporte Balance de Sumas y Saldos 

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

	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;

	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';	
	}

	if($columnas4 == 0) { 
		$texto_columnas4 = 'No';
	} else {
		$texto_columnas4 = '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 ';	
	}

	$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];
					//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++; }	

		//suma totales activo, pasivo, patrimonio, ingreso y egreso
		$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;
		$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;
		$suma_total_orden_debe = 0;
		$suma_total_orden_haber = 0;
		$suma_total_orden = 0;

		$suma_debe_total = 0;
		$suma_haber_total = 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();
		$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();
		$suma_total_orden_debe_cc = array();
		$suma_total_orden_haber_cc = array();
		$suma_total_orden_cc = array();

		$suma_debe_total_cc = array();
		$suma_haber_total_cc = array();
		$suma_saldo_total_cc = array();

		for($i = 1; $i <= $fin; $i++) { //for i
			if($columnas4 == 0) { //if columnas4 0
				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];
						$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
				}
				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 c4
						$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 c4
				}
				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 c5
						$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 c5
				}
				if($matriz_resultado [$i][7] == 6) {
					$suma_total_orden_debe = $suma_total_orden_debe + $matriz_resultado [$i][3];
					$suma_total_orden_haber = $suma_total_orden_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 c6
						$suma_total_orden_debe_cc[$c] = $suma_total_orden_debe_cc[$c] + $matriz_resultado [$i][27+$ccc];
						$suma_total_orden_haber_cc[$c] = $suma_total_orden_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 c6
				}
			} else { //else if columnas4 0
				$matriz_resultado [$i][6] = $matriz_resultado [$i][3] - $matriz_resultado [$i][4];
				
				//para cc
				$ccc = 3;
				for($c = 1; $c <= $fin_cc; $c++) {//for c8
					$matriz_resultado [$i][29+$ccc] = $matriz_resultado [$i][27+$ccc] - $matriz_resultado [$i][28+$ccc];
					$ccc = $ccc + 3;
				}//fin for c8
			} //fin if columnas4 0
			$suma_debe_total = $suma_debe_total + $matriz_resultado [$i][3];
			$suma_haber_total = $suma_haber_total + $matriz_resultado [$i][4];
			
			//para cc
			$ccc = 3;
			for($c = 1; $c <= $fin_cc; $c++) {//for c9
				$suma_debe_total_cc[$c] = $suma_debe_total_cc[$c] + $matriz_resultado [$i][27+$ccc];
				$suma_haber_total_cc[$c] = $suma_haber_total_cc[$c] + $matriz_resultado [$i][28+$ccc];
				$ccc = $ccc + 3;
			}//fin for c9
		} //fin for i
		$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_total_ingreso = $suma_total_ingreso_haber - $suma_total_ingreso_debe; //saldo acreedor
		$suma_total_egreso = $suma_total_egreso_debe - $suma_total_egreso_haber; //saldo deudor
		$suma_total_orden = $suma_total_orden_debe - $suma_total_orden_haber; //saldo deudor

		//para cc
		for($c = 1; $c <= $fin_cc; $c++) {//for c10
			$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
			$suma_total_ingreso_cc[$c] = $suma_total_ingreso_haber_cc[$c] - $suma_total_ingreso_debe_cc[$c]; //saldo acreedor
			$suma_total_egreso_cc[$c] = $suma_total_egreso_debe_cc[$c] - $suma_total_egreso_haber_cc[$c]; //saldo deudor
			$suma_total_orden_cc[$c] = $suma_total_orden_debe_cc[$c] - $suma_total_orden_haber_cc[$c]; //saldo deudor

		}//fin for c10

		$suma_saldo_total = $suma_debe_total - $suma_haber_total;

		//para cc
		for($c = 1; $c <= $fin_cc; $c++) {//for c11
			$suma_saldo_total_cc[$c] = $suma_debe_total_cc[$c] - $suma_haber_total_cc[$c];
		}//fin for c11

		//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][3] = $matriz_resultado [$pos][3] + $matriz_resultado [$i][3];
					$matriz_resultado [$pos][4] = $matriz_resultado [$pos][4] + $matriz_resultado [$i][4];
					$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][27+$ccc] = $matriz_resultado [$pos][27+$ccc] + $matriz_resultado [$i][27+$ccc];
					$matriz_resultado [$pos][28+$ccc] = $matriz_resultado [$pos][28+$ccc] + $matriz_resultado [$i][28+$ccc];
					$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>Balance de Sumas y Saldos</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 4 columnas: </b><?php echo $texto_columnas4; ?></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>Mostrar saldos en cero: </b><?php echo $texto_muestra_cero; ?></TD>
				<TD><b>Mostrar columna Sin Centro de Costo, cuando todos los CC son cero: </b><?php echo $texto_muestra_sin_cc; ?></TD>
				</TR>
				<TR>
				<TD colspan="2"><b>Contexto: </b><?php echo $nom_contexto; ?></TD>
				<TD colspan="2"><b>Expresado en: </b><?php echo $nom_moneda_principal; ?></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>", 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($columnas4 == 0) { //if col4 ?>
			<?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]; ?><br/>Debe</b></TD>
			<TD align="center"><b><?php echo $mat_tipocc[$t][6]; ?><br/>
				<?php echo $mat_tipocc[$t][2]; ?><br/>Haber</b></TD>
			<TD align="center"><b><?php echo $mat_tipocc[$t][6]; ?><br/>
				<?php echo $mat_tipocc[$t][2]; ?><br/>Saldo</b></TD>
			<?php } //fin fort ?>
			<?php if($hay_cc != 0) { ?>
			<TD align="center"><b>Sin Centro de Costo<br/>Debe</b></TD>
			<TD align="center"><b>Sin Centro de Costo<br/>Haber</b></TD>
			<TD align="center"><b>Sin Centro de Costo<br/>Saldo</b></TD>
			<?php } ?>
			<TD align="center"><b>Debe</b></TD>
			<TD align="center"><b>Haber</b></TD>
			<TD align="center"><b>Saldo</b></TD>
			<?php } else { //else if col4 ?>
			<?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]; ?><br/>Debe</b></TD>
			<TD align="center"><b><?php echo $mat_tipocc[$t][6]; ?><br/>
				<?php echo $mat_tipocc[$t][2]; ?><br/>Haber</b></TD>
			<TD align="center"><b><?php echo $mat_tipocc[$t][6]; ?><br/>
				<?php echo $mat_tipocc[$t][2]; ?><br/>Deudor</b></TD>
			<TD align="center"><b><?php echo $mat_tipocc[$t][6]; ?><br/>
				<?php echo $mat_tipocc[$t][2]; ?><br/>Acreedor</b></TD>   
			<?php } //fin fort ?>
			<?php if($hay_cc != 0) { ?>
			<TD align="center"><b>Sin Centro de Costo<br/>Debe</b></TD>
			<TD align="center"><b>Sin Centro de Costo<br/>Haber</b></TD>
			<TD align="center"><b>Sin Centro de Costo<br/>Deudor</b></TD>
			<TD align="center"><b>Sin Centro de Costo<br/>Acreedor</b></TD>
			<?php } ?>
			<TD align="center"><b>Debe</b></TD>
			<TD align="center"><b>Haber</b></TD>
			<TD align="center"><b>Deudor</b></TD>
			<TD align="center"><b>Acreedor</b></TD>
			<?php } //fin if col4 ?>
			</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';

		$suma_total_deudor = 0;
		$suma_total_acreedor = 0;

		$suma_total_deudor_cc = array();
		$suma_total_acreedor_cc = array();

		for($i = 1; $i <= $fin; $i++){
			$cod_tipo_cuenta = $matriz_resultado [$i][7];
			$cod_cuenta_det = $matriz_resultado [$i][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]; 
						//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;
						}
						printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][27+$ccc], $n_decimales));//debecc
						printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][28+$ccc], $n_decimales));//habercc
						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
								if($columnas4 == 0) { //if columnas4 0
									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
								} else { //else if columnas4 0
									printf("<td>&nbsp;</td>");//saldo deudor
									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
									} //fin if columnas4 0
								} else { //else if ni0
									if($columnas4 == 0) { //if columnas4 00
										printf("<td align='right'>(%s)</td>", number_format($mostrar_saldo_nega, $n_decimales));//saldo
								} else { //else if columnas4 00	
									printf("<td>&nbsp;</td>");//saldo deudor
									printf("<td align='right'>%s</td>", number_format($mostrar_saldo_nega, $n_decimales));//saldo acreedor
								} //fin if columnas4 00
							}//fin if ni0
						} else { //else if resultado cc
							if($matriz_resultado[$i][5] == $numero_niveles && $cod_cc != 0) { //if niveles 2
								if($columnas4 == 0) { //if columnas4 3
									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));//saldo
								} else { //else if columnas4 3
									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));//saldo deudor
									printf("<td>&nbsp;</td>");//saldo acreedor
								} //fin if columnas4 3
							} else { //else if niveles 2
								if($columnas4 == 0) { //if columnas4 4
									printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][29+$ccc], $n_decimales));//saldo
								} else { //else if columnas4 4
									printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][29+$ccc], $n_decimales));//saldo deudor
									printf("<td>&nbsp;</td>");//saldo acreedor
								} //fin if columnas4 4
							} //fin if niveles 2
						}// fin if resultado cc
						$ccc = $ccc + 3;
					}//fin for c5
							
					printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][3], $n_decimales));//debe
					printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][4], $n_decimales));//haber
					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
							if($columnas4 == 0) { //if columnas4 1
								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></tr>", number_format($mostrar_saldo_nega, $n_decimales));//saldo
							} else { //else if columnas4 1
								printf("<td>&nbsp;</td>");//saldo deudor
								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></tr>", number_format($mostrar_saldo_nega, $n_decimales));//saldo acreedor
								//$suma_total_acreedor = $suma_total_acreedor + $mostrar_saldo_nega;
							} //fin if columnas4 1
						} else { //else if niveles
							if($columnas4 == 0) { //if columnas4 2
								printf("<td align='right'>(%s)</td></tr>", number_format($mostrar_saldo_nega, $n_decimales));//saldo
							} else { //else if columnas4 2	
								printf("<td>&nbsp;</td>");//saldo deudor
								printf("<td align='right'>%s</td></tr>", number_format($mostrar_saldo_nega, $n_decimales));//saldo acreedor
								//$suma_total_acreedor = $suma_total_acreedor + $mostrar_saldo_nega;
							} //fin if columnas4 2
						}//fin if niveles
					} else { //else if resultado
						if($matriz_resultado [$i][5] == $numero_niveles) { //if niveles 2
							if($columnas4 == 0) { //if columnas4 3
								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></tr>", number_format($matriz_resultado [$i][6], $n_decimales));//saldo
							} else { //else if columnas4 3
								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 deudor
								printf("<td>&nbsp;</td></tr>");//saldo acreedor
								//$suma_total_deudor = $suma_total_deudor + $matriz_resultado [$i][6];
							} //fin if columnas4 3
						} else { //else if niveles 2
							if($columnas4 == 0) { //if columnas4 4
								printf("<td align='right'>%s</td></tr>", number_format($matriz_resultado [$i][6], $n_decimales));//saldo
							} else { //else if columnas4 4
								printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][6], $n_decimales));//saldo deudor
								printf("<td>&nbsp;</td></tr>");//saldo acreedor
								//$suma_total_deudor = $suma_total_deudor + $matriz_resultado [$i][6];
							} //fin if columnas4 4
						} //fin if niveles 2
					}// fin if resultado
				} //fin if niveles_mostrar
			}//fin if 1.1
				
				if($muestra_cero == 0 && $matriz_resultado [$i][6] <> 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 0
					if($hay_cc != 0 && $cod_cc == NULL) {
						$cod_cc = -10;
					}
					if($centro_costo_agrupar == -1){
						$cod_cc_agrupar = -10;
					}
					printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][27+$ccc], $n_decimales));//debecc
					printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][28+$ccc], $n_decimales));//habercc
					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
							if($columnas4 == 0) { //if columnas4 0
								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
							} else { //else if columnas4 0
								printf("<td>&nbsp;</td>");//saldo deudor
								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
								} //fin if columnas4 0
							} else { //else if ni0
								if($columnas4 == 0) { //if columnas4 00
									printf("<td align='right'>(%s)</td>", number_format($mostrar_saldo_nega, $n_decimales));//saldo
							} else { //else if columnas4 00	
								printf("<td>&nbsp;</td>");//saldo deudor
								printf("<td align='right'>%s</td>", number_format($mostrar_saldo_nega, $n_decimales));//saldo acreedor
							} //fin if columnas4 00
						}//fin if ni0
					} else { //else if resultado cc
						if($matriz_resultado[$i][5] == $numero_niveles && $cod_cc != 0) { //if niveles 2
							if($columnas4 == 0) { //if columnas4 3
								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));//saldo
							} else { //else if columnas4 3
								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));//saldo deudor
								printf("<td>&nbsp;</td>");//saldo acreedor
							} //fin if columnas4 3
						} else { //else if niveles 2
							if($columnas4 == 0) { //if columnas4 4
								printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][29+$ccc], $n_decimales));//saldo
							} else { //else if columnas4 4
								printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][29+$ccc], $n_decimales));//saldo deudor
								printf("<td>&nbsp;</td>");//saldo acreedor
							} //fin if columnas4 4
						} //fin if niveles 2
					}// fin if resultado cc
					$ccc = $ccc + 3;
					}//fin for c5
					
					printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][3], $n_decimales));//debe
					printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][4], $n_decimales));//haber
					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
							if($columnas4 == 0) { //if columnas4 1
								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></tr>", number_format($mostrar_saldo_nega, $n_decimales));//saldo
							} else { //else if columnas4 1
								printf("<td>&nbsp;</td>");//saldo deudor
								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></tr>", number_format($mostrar_saldo_nega, $n_decimales));//saldo acreedor
								//$suma_total_acreedor = $suma_total_acreedor + $mostrar_saldo_nega;
							} //fin if columnas4 1
							
						} else { //else if niveles
							if($columnas4 == 0) { //if columnas4 2
								printf("<td align='right'>(%s)</td></tr>", number_format($mostrar_saldo_nega, $n_decimales));//saldo
							} else { //else if columnas4 2	
								printf("<td>&nbsp;</td>");//saldo deudor
								printf("<td align='right'>%s</td></tr>", number_format($mostrar_saldo_nega, $n_decimales));//saldo acreedor
								//$suma_total_acreedor = $suma_total_acreedor + $mostrar_saldo_nega;
							} //fin if columnas4 2
						}//fin if niveles
					} else { //else if resultado
						if($matriz_resultado [$i][5] == $numero_niveles) { //if niveles 2
							if($columnas4 == 0) { //if columnas4 3
								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></tr>", number_format($matriz_resultado [$i][6], $n_decimales));//saldo
							} else { //else if columnas4 3
								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 deudor
								printf("<td>&nbsp;</td></tr>");//saldo acreedor
								//$suma_total_deudor = $suma_total_deudor + $matriz_resultado [$i][6];
							} //fin if columnas4 3
						} else { //else if niveles 2
							if($columnas4 == 0) { //if columnas4 4
								printf("<td align='right'>%s</td></tr>", number_format($matriz_resultado [$i][6], $n_decimales));//saldo
							} else { //else if columnas4 4
								printf("<td align='right'>%s</td>", number_format($matriz_resultado [$i][6], $n_decimales));//saldo deudor
								printf("<td>&nbsp;</td></tr>");//saldo acreedor
								//$suma_total_deudor = $suma_total_deudor + $matriz_resultado [$i][6];
							} //fin if columnas4 4
						} //fin if niveles 2
					}// fin if resultado
				} //fin if niveles_mostrar
			}//fin if 1.2
			
			$k++;
		}

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

		if($columnas4 == 0) { //if columnas4 5

			//para cc
			if($hay_cc != 0) {//if hay0
				for($c = 1; $c <= $fin_cc; $c++) {//for c6
					printf("<td align='right'><b>%s</b></td>", number_format($suma_debe_total_cc[$c], $n_decimales));
					printf("<td align='right'><b>%s</b></td>", number_format($suma_haber_total_cc[$c], $n_decimales));
					printf("<td align='right'><b>%s</b></td>", number_format($suma_saldo_total_cc[$c], $n_decimales));
				}//fin for c6
			}//fin if hay0

			printf("<td align='right'><b>%s</b></td>", number_format($suma_debe_total, $n_decimales));
			printf("<td align='right'><b>%s</b></td>", number_format($suma_haber_total, $n_decimales));
			printf("<td align='right'><b>%s</b></td></tr>", number_format($suma_saldo_total, $n_decimales));

		} else { //else if columnas4 5

			//para cc
			if($hay_cc != 0) {//if hay0
				for($c = 1; $c <= $fin_cc; $c++) {//for c6
					printf("<td align='right'><b>%s</b></td>", number_format($suma_debe_total_cc[$c], $n_decimales));
					printf("<td align='right'><b>%s</b></td>", number_format($suma_haber_total_cc[$c], $n_decimales));
					printf("<td align='right'><b>%s</b></td>", number_format($suma_total_deudor_cc[$c], $n_decimales));
					printf("<td align='right'><b>%s</b></td>", number_format($suma_total_acreedor_cc[$c], $n_decimales));
				}//fin for c6
			}//fin if hay0

			printf("<td align='right'><b>%s</b></td>", number_format($suma_debe_total, $n_decimales));
			printf("<td align='right'><b>%s</b></td>", number_format($suma_haber_total, $n_decimales));
			printf("<td align='right'><b>%s</b></td>", number_format($suma_total_deudor, $n_decimales));
			printf("<td align='right'><b>%s</b></td></tr>", number_format($suma_total_acreedor, $n_decimales));
		} //fin if columnas4 5
		?>
		</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 

} //fin if 2
	
	
	


//muestra mayores detalle 


if($rep == 3 && $tipo == 2) { // if 3

//nombre de la cuenta y descripcion
$resultcta = mysqli_query($link, "select a.pkyAccount as cod_cuenta, a.fldName as cuenta, 
a.txtDescription as descripcion, b.fldName as moneda
from
actAccount a, actCurrency b
where
a.pkyAccount = '$cod_cuenta_det' and 
a.codCurrency = b.pkyCurrency and 
a.sysEnabled = 1 and a.sysAuthorized = 1;");
while ($row = mysqli_fetch_array($resultcta)) {
	$nom_cuenta_det = $row['cuenta'];
	$nom_desc_det = $row['descripcion'];
	$nom_moneda_det = $row['moneda'];
}
mysqli_free_result($resultcta);

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

//calculo de fecha de inicio para saldo inicial
$ano_det = substr($fechaini_det,0,4);
$mes_det = substr($fechaini_det,5,2);
$resultfecha = mysqli_query($link, "select pkyFiscalYear as ano_ini, codStartMonth as mes_ini, codEndMonth as mes_fin, fldOpen as abierto
from
actFiscalYear
where
sysEnabled = 1 and sysAuthorized = 1 
order by ano_ini desc;");
$fecha_saldo = array();
$i = 1;
while ($row = mysqli_fetch_array($resultfecha)) {
	$fecha_saldo[$i][1] = $row['ano_ini'];
	$fecha_saldo[$i][2] = $row['mes_ini'];
	$fecha_saldo[$i][3] = $row['mes_fin'];
	$fecha_saldo[$i][4] = $row['abierto'];
	$fecha_saldo[$i][5] = $row['ano_ini'].'-0'.$row['mes_ini'].'-01';
	$i++;
}
mysqli_free_result($resultfecha);
$fin_fecha = $i - 1;
$fechaini_gest2 = NULL;
//comprobamos que la fecha inicial sea mayor que la fecha de inicio de gestion abierta
$i = 1;
while ($fechaini_det >= $fecha_saldo[$i][5] && $i <= $fin_fecha && $fecha_saldo[$i][4] == 1) {
	$fechaini_gest2 = $fecha_saldo[$i][5];
	$i++;
}
//si no encuentra la fecha inicial para calcular el saldo
$i = 1;
$pos = 0;
if($fechaini_gest2 == NULL) {
	while($i <= $fin_fecha) {
		if($ano_det == $fecha_saldo[$i][1]) { $pos = $i; }
		$i++;
	}
	$fechaini_gest2 = $fecha_saldo[$pos][5]; 
	$i = $pos;
	while ($fechaini_det >= $fecha_saldo[$i][5] && $i <= $fin_fecha && $fecha_saldo[$i][4] == 1) {
		$fechaini_gest2 = $fecha_saldo[$i][5];
		$i++;
	}
}

//titulo del saldo fecha inicial menos 1 dia
$fechaini_det_saldo = strtotime ( '-1 day' , strtotime ( $fechaini_det ) ) ;
$fechaini_det_saldo = date ( 'Y-m-j' , $fechaini_det_saldo );


//titulo cc
if($cod_cc_det == 0 || $cod_cc_det == -1 || $cod_cc_det == -10 || $cod_cc_det == NULL) {
	if($cod_cc_det == -10) {
		$nom_centro_costo_det = 'Sin Centro de Costo';
		//$valor_sin_cc = 'c.pkyAccountEntryDetail NOT IN (SELECT DISTINCT codAccountEntryDetail FROM actAccountEntryDetailCC) AND';
	} else {
		$nom_centro_costo_det = 'Ninguno';
		//$valor_sin_cc = '';
	}
} else {
	$resultcc = mysqli_query($link, "select a.pkyCostCenter as codigo, a.fldName as nombre, b.fldName as tipo 
	from 
	actCostCenter a, actCostCenterType b
	where 
	a.codType = b.pkyCostCenterType and 
	a.pkyCostCenter = '$cod_cc_det' and
	a.sysEnabled = 1 AND a.sysAuthorized = 1;");
		
	while ($row = mysqli_fetch_array($resultcc)) {
		$nom_centro_costo_det = $row['tipo'].' - '.$row['nombre'];
	}
	mysqli_free_result($resultcc);
}

//titulo cc agrupar
if($cod_cc_agrupar_det == 0 || $cod_cc_agrupar_det == -1 || $cod_cc_agrupar_det == -10 || $cod_cc_agrupar_det == NULL) {
	if($cod_cc_agrupar_det == -10) {
		$nom_centro_costo_agrupar_det = 'Sin Centro de Costo';
		//$valor_sin_cc_agrupar = 'c.pkyAccountEntryDetail NOT IN (SELECT DISTINCT codAccountEntryDetail FROM actAccountEntryDetailCC) AND';
	} else {
		$nom_centro_costo_agrupar_det = 'Ninguno';
		//$valor_sin_cc_agrupar = '';
	}
} else {
	$resultcc2 = mysqli_query($link, "select a.pkyCostCenter as codigo, a.fldName as nombre, b.fldName as tipo 
	from 
	actCostCenter a, actCostCenterType b
	where 
	a.codType = b.pkyCostCenterType and 
	a.pkyCostCenter = '$cod_cc_agrupar_det' and
	a.sysEnabled = 1 AND a.sysAuthorized = 1;");
		
	while ($row = mysqli_fetch_array($resultcc2)) {
		$nom_centro_costo_agrupar_det = $row['tipo'].' - '.$row['nombre'];
	}
	mysqli_free_result($resultcc2);
}

//calculo los cc del nivel, para armar los codigos en la columna sin centro de costo
$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 = '$cod_tipo_cc_det' 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
	//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>'; 
}

//junto todo en una sola variable
$acum_para_sin_cc = '';
for($i = 1; $i <= $fin_cc; $i++){
	if($i == 1){
		$acum_para_sin_cc = $mat_tipocc[$i][5];
	} else {
		$acum_para_sin_cc = $acum_para_sin_cc.','.$mat_tipocc[$i][5];
	}
}
//echo $acum_para_sin_cc;

//suma de saldo a inicio de gestión
if($cod_cc_det == 0 || $cod_cc_det == -1 || $cod_cc_det == -10 || $cod_cc_det == NULL) {//if dif
	
	//si el detalle es sin centro de costo
	if($cod_cc_det == -10){ 
		//si el detalle es sin centro de costo y agrupado
		if($cod_cc_agrupar_det == -10){ 
			//query para los items que no tienen centro de costo del tipo union con los que no tienen ningún centro de costo, el c.pkyAccountEntryDetail NOT IN (....) del primero, elige los registros que no esten o sean iguales a lo que está dentro, filtrando los que tengan registros duplicados con diferentes cc ej si el detalle está asignado al cc1 y al mismo tiempo el cc2 no muestra los dos.
			/*antes estaba asi en el primer query en lugar de la variable $acum_para_sin_cc
			$valor_contexto_det 
			c.pkyAccountEntryDetail NOT IN (SELECT a1.pkyAccountEntryDetail FROM actAccountEntryDetail a1, actAccountEntryDetailCC b1 WHERE codCostCenter IN (SELECT a2.pkyCostCenter FROM actCostCenter a2, actCostCenterType b2 WHERE a2.codType = b2.pkyCostCenterType AND b2.pkyCostCenterType = '$cod_tipo_cc_det') AND a1.pkyAccountEntryDetail = b1.codAccountEntryDetail) AND 
			*/
			$resultdetsum = mysqli_query($link, "SELECT sum(t.saldo_debe) AS saldo_debe, sum(t.saldo_haber) AS saldo_haber
			FROM
			(select c.codAccount as cod_cuenta, c.fldDebit * d.fldPercent / 100 as saldo_debe, c.fldCredit * d.fldPercent / 100 as saldo_haber
			from 
			actAccountEntry a, actAccountEntryType b, actAccountEntryDetail c, actAccountEntryDetailCC d
			where 
			$valor_contexto_det 
			c.pkyAccountEntryDetail NOT IN (SELECT a1.pkyAccountEntryDetail FROM actAccountEntryDetail a1, actAccountEntryDetailCC b1 WHERE codCostCenter IN ($acum_para_sin_cc) AND a1.pkyAccountEntryDetail = b1.codAccountEntryDetail) AND 
			a.codType = b.pkyAccountEntryType and 
			a.pkyAccountEntry = c.codAccountEntry and 
			c.pkyAccountEntryDetail = d.codAccountEntryDetail and 
			a.fldDate >= '$fechaini_gest2' and
			a.fldDate < '$fechaini_det' and
			c.codAccount = '$cod_cuenta_det' and 
			a.sysEnabled = 1 and a.sysAuthorized = 1 
			
			UNION ALL 

			select c.codAccount as cod_cuenta, c.fldDebit as saldo_debe, c.fldCredit as saldo_haber
			from 
			actAccountEntry a, actAccountEntryType b, actAccountEntryDetail c
			where 
			$valor_contexto_det 
			c.pkyAccountEntryDetail NOT IN (SELECT DISTINCT codAccountEntryDetail FROM actAccountEntryDetailCC) AND
			a.codType = b.pkyAccountEntryType and 
			a.pkyAccountEntry = c.codAccountEntry and 
			a.fldDate >= '$fechaini_gest2' and
			a.fldDate < '$fechaini_det' and
			c.codAccount = '$cod_cuenta_det' and 
			a.sysEnabled = 1 and a.sysAuthorized = 1) t
			GROUP BY t.cod_cuenta;");
			
		} else {
			//query primero muestra registros que no estan en el tipo de cc principal y no esta en el el cc de agrupacion, el segundo muestra los registros que sean del cc de agrupacion y no se hayan usado o sea que el detalle sea unico, el tercero muestra los registros que no esten asignados a ningun cc
			/* antes estaba asi en el primer query en lugar de la variable $acum_para_sin_cc
			$valor_contexto_det 
			d.codCostCenter NOT IN (SELECT a1.pkyCostCenter FROM actCostCenter a1, actCostCenterType b1 WHERE a1.codType = b1.pkyCostCenterType AND b1.pkyCostCenterType = '$cod_tipo_cc_det') AND 
			antes estaba asi en el segundo query en lugar de la variable $acum_para_sin_cc
			$valor_contexto_det 
			c.pkyAccountEntryDetail NOT IN (SELECT a1.pkyAccountEntryDetail FROM actAccountEntryDetail a1, actAccountEntryDetailCC b1 WHERE codCostCenter IN (SELECT a2.pkyCostCenter FROM actcostcenter a2, actcostcentertype b2 WHERE a2.codType = b2.pkyCostCenterType AND b2.pkyCostCenterType = '$cod_tipo_cc_det') AND a1.pkyAccountEntryDetail = b1.codAccountEntryDetail) AND 
			*/
			$resultdetsum = mysqli_query($link, "SELECT sum(t.saldo_debe) AS saldo_debe, sum(t.saldo_haber) AS saldo_haber
			FROM
			(select c.codAccount as cod_cuenta, c.fldDebit * d.fldPercent / 100 as saldo_debe, c.fldCredit * d.fldPercent / 100 as saldo_haber
			from 
			actAccountEntry a, actAccountEntryType b, actAccountEntryDetail c, actAccountEntryDetailCC d
			where
			$valor_contexto_det 
			d.codCostCenter NOT IN ($acum_para_sin_cc) AND 
			d.codCostCenter != '$cod_cc_agrupar_det' AND
			a.codType = b.pkyAccountEntryType and 
			a.pkyAccountEntry = c.codAccountEntry and 
			c.pkyAccountEntryDetail = d.codAccountEntryDetail and 
			a.fldDate >= '$fechaini_gest2' and
			a.fldDate < '$fechaini_det' and
			c.codAccount = '$cod_cuenta_det' and 
			a.sysEnabled = 1 and a.sysAuthorized = 1 

			UNION ALL 

			select c.codAccount as cod_cuenta, c.fldDebit * d.fldPercent / 100 as saldo_debe, c.fldCredit * d.fldPercent / 100 as saldo_haber
			from 
			actAccountEntry a, actAccountEntryType b, actAccountEntryDetail c, actAccountEntryDetailCC d
			where
			$valor_contexto_det 
			c.pkyAccountEntryDetail NOT IN (SELECT a1.pkyAccountEntryDetail FROM actAccountEntryDetail a1, actAccountEntryDetailCC b1 WHERE codCostCenter IN ($acum_para_sin_cc) AND a1.pkyAccountEntryDetail = b1.codAccountEntryDetail) AND 
			c.pkyAccountEntryDetail IN (select DISTINCT a3.codAccountEntryDetail from actAccountEntryDetailCC a3 WHERE a3.codCostCenter = '$cod_cc_agrupar_det') AND 
			a.codType = b.pkyAccountEntryType and 
			a.pkyAccountEntry = c.codAccountEntry and 
			c.pkyAccountEntryDetail = d.codAccountEntryDetail and 
			a.fldDate >= '$fechaini_gest2' and
			a.fldDate < '$fechaini_det' and
			c.codAccount = '$cod_cuenta_det' and 
			a.sysEnabled = 1 and a.sysAuthorized = 1
			
			UNION ALL 

			select c.codAccount as cod_cuenta, c.fldDebit as saldo_debe, c.fldCredit as saldo_haber
			from
			actAccountEntry a, actAccountEntryType b, actAccountEntryDetail c
			where 
			$valor_contexto_det 
			c.pkyAccountEntryDetail NOT IN (SELECT DISTINCT codAccountEntryDetail FROM actAccountEntryDetailCC) AND
			a.codType = b.pkyAccountEntryType and 
			a.pkyAccountEntry = c.codAccountEntry and 
			a.fldDate >= '$fechaini_gest2' and
			a.fldDate < '$fechaini_det' and
			c.codAccount = '$cod_cuenta_det' and 
			a.sysEnabled = 1 and a.sysAuthorized = 1) t
			GROUP BY t.cod_cuenta;");
		}

	} else {

		//query para los items cuando no tienen centro de costo
		$resultdetsum = mysqli_query($link, "select sum(c.fldDebit) as saldo_debe, sum(c.fldCredit) as saldo_haber
		from 
		actAccountEntry a, actAccountEntryType b, actAccountEntryDetail c
		where 
		$valor_contexto_det 
		a.codType = b.pkyAccountEntryType and 
		a.pkyAccountEntry = c.codAccountEntry and 
		a.fldDate >= '$fechaini_gest2' and
		a.fldDate < '$fechaini_det' and
		c.codAccount = '$cod_cuenta_det' and
		a.sysEnabled = 1 and a.sysAuthorized = 1 
		group by c.codAccount;");
	}

} else { //else if dif

	$asientocc_det = 1;
	//verifica si tiene centro de costo agrupacion
	if($cod_cc_agrupar_det == 0 || $cod_cc_agrupar_det == -1 || $cod_cc_agrupar_det == -10 || $cod_cc_agrupar_det == NULL) {//if agru1
		//cuando NO tiene centro de costo agrupación
		$resultdetsum = mysqli_query($link, "select sum(c.fldDebit * d.fldPercent / 100) as saldo_debe, sum(c.fldCredit * d.fldPercent / 100) as saldo_haber
		from 
		actAccountEntry a, actAccountEntryType b, actAccountEntryDetail c, actAccountEntryDetailCC d
		where 
		$valor_contexto_det 
		a.codType = b.pkyAccountEntryType and 
		a.pkyAccountEntry = c.codAccountEntry and 
		c.pkyAccountEntryDetail = d.codAccountEntryDetail and 
		a.fldDate >= '$fechaini_gest2' and
		a.fldDate < '$fechaini_det' and
		c.codAccount = '$cod_cuenta_det' and 
		d.codCostCenter in ($valor_cod_cc_det) and 
		a.sysEnabled = 1 and a.sysAuthorized = 1 
		group by c.codAccount;");
	} else { //else if agru1
		//cuando SI tiene centro de costo agrupación
		$resultdetsum = mysqli_query($link, "select sum(c.fldDebit * d.fldPercent / 100 * e.fldPercent / 100) as saldo_debe, sum(c.fldCredit * d.fldPercent / 100 * e.fldPercent / 100) as saldo_haber
		from 
		actAccountEntry a, actAccountEntryType b, actAccountEntryDetail c, actAccountEntryDetailCC d, actAccountEntryDetailCC e
		where 
		$valor_contexto_det 
		e.codCostCenter = '$cod_cc_agrupar_det' and 
		c.pkyAccountEntryDetail = e.codAccountEntryDetail AND 
		a.codType = b.pkyAccountEntryType and 
		a.pkyAccountEntry = c.codAccountEntry and 
		c.pkyAccountEntryDetail = d.codAccountEntryDetail and 
		a.fldDate >= '$fechaini_gest2' and
		a.fldDate < '$fechaini_det' and
		c.codAccount = '$cod_cuenta_det' and 
		d.codCostCenter in ($valor_cod_cc_det) and 
		a.sysEnabled = 1 and a.sysAuthorized = 1 
		group by c.codAccount;");
	} //fin if agru1
}//fin if dif
while ($row = mysqli_fetch_array($resultdetsum)) {
	if($mi_cod_pais == 1) {
	$saldo_debe = $row['saldo_debe'];
	$saldo_haber = $row['saldo_haber'];
	}
	if($mi_cod_pais == 176) {
	$saldo_debe = round($row['saldo_debe'],$n_decimales);
	$saldo_haber = round($row['saldo_haber'],$n_decimales);
	}
}
mysqli_free_result($resultdetsum);

if($cod_tipo_cuenta_det == 1 || $cod_tipo_cuenta_det == 5 || $cod_tipo_cuenta_det == 6) {
	$saldo_inicial = $saldo_debe - $saldo_haber;
} else {
	$saldo_inicial = $saldo_haber - $saldo_debe;
}

if($cod_cc_det == 0 || $cod_cc_det == -1 || $cod_cc_det == -10 || $cod_cc_det == NULL) {//if dif1
	if($cod_cc_det == -10){
		if($cod_cc_agrupar_det == -10){
			$resultdet = mysqli_query($link, "SELECT t.cod_asiento AS cod_asiento, t.nro_trans AS nro_trans, t.nro_doc AS nro_doc, t.fecha AS fecha, t.tipo AS tipo, t.glosa AS glosa, t.debe AS debe, t.haber AS haber, t.papa AS papa, t.cod_papa AS cod_papa
			FROM
			(select a.pkyAccountEntry as cod_asiento, a.fldTransactionNumber as nro_trans, a.fldDocumentNumber as nro_doc, a.fldDate as fecha, b.fldName as tipo, a.txtDescription as glosa, c.fldDebit * d.fldPercent / 100 as debe, c.fldCredit * d.fldPercent / 100 as haber, a.fldParentComponent as papa, a.cosComponentKey as cod_papa
			from 
			actAccountEntry a, actAccountEntryType b, actAccountEntryDetail c, actAccountEntryDetailCC d
			where 
			$valor_contexto_det 
			c.pkyAccountEntryDetail NOT IN (SELECT a1.pkyAccountEntryDetail FROM actaccountentrydetail a1, actaccountentrydetailcc b1 WHERE codCostCenter IN ($acum_para_sin_cc) AND a1.pkyAccountEntryDetail = b1.codAccountEntryDetail) AND 
			a.codType = b.pkyAccountEntryType and 
			a.pkyAccountEntry = c.codAccountEntry and 
			c.pkyAccountEntryDetail = d.codAccountEntryDetail and 
			a.fldDate >= '$fechaini_det' and
			a.fldDate <= '$fechafin_det' and
			c.codAccount = '$cod_cuenta_det' and
			a.sysEnabled = 1 and a.sysAuthorized = 1 
			
			UNION ALL 
			
			select a.pkyAccountEntry as cod_asiento, a.fldTransactionNumber as nro_trans, a.fldDocumentNumber as nro_doc, a.fldDate as fecha, b.fldName as tipo, a.txtDescription as glosa, c.fldDebit as debe, c.fldCredit as haber, a.fldParentComponent as papa, a.cosComponentKey as cod_papa
			from 
			actAccountEntry a, actAccountEntryType b, actAccountEntryDetail c
			where 
			$valor_contexto_det 
			c.pkyAccountEntryDetail NOT IN (SELECT DISTINCT codAccountEntryDetail FROM actAccountEntryDetailCC) AND
			a.codType = b.pkyAccountEntryType and 
			a.pkyAccountEntry = c.codAccountEntry and 
			a.fldDate >= '$fechaini_det' and
			a.fldDate <= '$fechafin_det' and
			c.codAccount = '$cod_cuenta_det' and
			a.sysEnabled = 1 and a.sysAuthorized = 1) t
			ORDER BY t.fecha, t.cod_asiento;");
		} else {
			//query primero muestra registros que no estan en el tipo de cc principal y no esta en el el cc de agrupacion, el segundo muestra los registros que sean del cc de agrupacion y no se hayan usado o sea que el detalle sea unico, el tercero muestra los registros que  no esten asugnados a ningun cc
			$resultdet = mysqli_query($link, "SELECT t.cod_asiento AS cod_asiento, t.nro_trans AS nro_trans, t.nro_doc AS nro_doc, t.fecha AS fecha, t.tipo AS tipo, t.glosa AS glosa, t.debe AS debe, t.haber AS haber, t.papa AS papa, t.cod_papa AS cod_papa
			FROM
			(select a.pkyAccountEntry as cod_asiento, a.fldTransactionNumber as nro_trans, a.fldDocumentNumber as nro_doc, a.fldDate as fecha, b.fldName as tipo, a.txtDescription as glosa, c.fldDebit * d.fldPercent / 100 as debe, c.fldCredit * d.fldPercent / 100 as haber, a.fldParentComponent as papa, a.cosComponentKey as cod_papa
			from 
			actAccountEntry a, actAccountEntryType b, actAccountEntryDetail c, actAccountEntryDetailCC d
			where
			$valor_contexto_det 
			d.codCostCenter NOT IN ($acum_para_sin_cc) AND 
			d.codCostCenter != '$cod_cc_agrupar_det' AND
			a.codType = b.pkyAccountEntryType and 
			a.pkyAccountEntry = c.codAccountEntry and 
			c.pkyAccountEntryDetail = d.codAccountEntryDetail and 
			a.fldDate >= '$fechaini_det' and
			a.fldDate <= '$fechafin_det' and
			c.codAccount = '$cod_cuenta_det' and 
			a.sysEnabled = 1 and a.sysAuthorized = 1 

			UNION ALL 

			select a.pkyAccountEntry as cod_asiento, a.fldTransactionNumber as nro_trans, a.fldDocumentNumber as nro_doc, a.fldDate as fecha, b.fldName as tipo, a.txtDescription as glosa, c.fldDebit * d.fldPercent / 100 as debe, c.fldCredit * d.fldPercent / 100 as haber, a.fldParentComponent as papa, a.cosComponentKey as cod_papa
			from 
			actAccountEntry a, actAccountEntryType b, actAccountEntryDetail c, actAccountEntryDetailCC d
			where
			$valor_contexto_det 
			c.pkyAccountEntryDetail NOT IN (SELECT a1.pkyAccountEntryDetail FROM actAccountEntryDetail a1, actAccountEntryDetailCC b1 WHERE codCostCenter IN ($acum_para_sin_cc) AND a1.pkyAccountEntryDetail = b1.codAccountEntryDetail) AND 
			c.pkyAccountEntryDetail IN (select DISTINCT a3.codAccountEntryDetail from actAccountEntryDetailCC a3 WHERE a3.codCostCenter = '$cod_cc_agrupar_det') AND 
			a.codType = b.pkyAccountEntryType and 
			a.pkyAccountEntry = c.codAccountEntry and 
			c.pkyAccountEntryDetail = d.codAccountEntryDetail and 
			a.fldDate >= '$fechaini_det' and
			a.fldDate <= '$fechafin_det' and
			c.codAccount = '$cod_cuenta_det' and 
			a.sysEnabled = 1 and a.sysAuthorized = 1
			
			UNION ALL 

			select a.pkyAccountEntry as cod_asiento, a.fldTransactionNumber as nro_trans, a.fldDocumentNumber as nro_doc, a.fldDate as fecha, b.fldName as tipo, a.txtDescription as glosa, c.fldDebit as debe, c.fldCredit as haber, a.fldParentComponent as papa, a.cosComponentKey as cod_papa
			from 
			actAccountEntry a, actAccountEntryType b, actAccountEntryDetail c
			where 
			$valor_contexto_det 
			c.pkyAccountEntryDetail NOT IN (SELECT DISTINCT codAccountEntryDetail FROM actAccountEntryDetailCC) AND
			a.codType = b.pkyAccountEntryType and 
			a.pkyAccountEntry = c.codAccountEntry and 
			a.fldDate >= '$fechaini_det' and
			a.fldDate <= '$fechafin_det' and
			c.codAccount = '$cod_cuenta_det' and 
			a.sysEnabled = 1 and a.sysAuthorized = 1) t
			ORDER BY t.fecha, t.cod_asiento;");
		}
	} else {
		$resultdet = mysqli_query($link, "select a.pkyAccountEntry as cod_asiento, a.fldTransactionNumber as nro_trans, a.fldDocumentNumber as nro_doc, a.fldDate as fecha, b.fldName as tipo, a.txtDescription as glosa, c.fldDebit as debe, c.fldCredit as haber, a.fldParentComponent as papa, a.cosComponentKey as cod_papa
		from 
		actAccountEntry a, actAccountEntryType b, actAccountEntryDetail c
		where 
		$valor_contexto_det 
		a.codType = b.pkyAccountEntryType and 
		a.pkyAccountEntry = c.codAccountEntry and 
		a.fldDate >= '$fechaini_det' and
		a.fldDate <= '$fechafin_det' and
		c.codAccount = '$cod_cuenta_det' and
		a.sysEnabled = 1 and a.sysAuthorized = 1 
		order by fecha, cod_asiento;");
	}
} else { //else if dif1
	$asientocc_det = 1;
	//verifica si tiene centro de costo agrupacion
	if($cod_cc_agrupar_det == 0 || $cod_cc_agrupar_det == -1 || $cod_cc_agrupar_det == -10 || $cod_cc_agrupar_det == NULL) {//if agru2
		
		$resultdet = mysqli_query($link, "select a.pkyAccountEntry as cod_asiento, a.fldTransactionNumber as nro_trans, a.fldDocumentNumber as nro_doc, a.fldDate as fecha, b.fldName as tipo, a.txtDescription as glosa, c.fldDebit * d.fldPercent / 100 as debe, c.fldCredit * d.fldPercent / 100 as haber, a.fldParentComponent as papa, a.cosComponentKey as cod_papa
		from 
		actAccountEntry a, actAccountEntryType b, actAccountEntryDetail c, actAccountEntryDetailCC d
		where
		$valor_contexto_det 
		a.codType = b.pkyAccountEntryType and 
		a.pkyAccountEntry = c.codAccountEntry and 
		c.pkyAccountEntryDetail = d.codAccountEntryDetail and 
		a.fldDate >= '$fechaini_det' and
		a.fldDate <= '$fechafin_det' and
		c.codAccount = '$cod_cuenta_det' and 
		d.codCostCenter in ($valor_cod_cc_det) and 
		a.sysEnabled = 1 and a.sysAuthorized = 1 
		order by fecha, cod_asiento;");
	} else { //else if agru2
		$resultdet = mysqli_query($link, "select a.pkyAccountEntry as cod_asiento, a.fldTransactionNumber as nro_trans, a.fldDocumentNumber as nro_doc, a.fldDate as fecha, b.fldName as tipo, a.txtDescription as glosa, c.fldDebit * d.fldPercent / 100 * e.fldPercent / 100 as debe, c.fldCredit * d.fldPercent / 100 * e.fldPercent / 100 as haber, a.fldParentComponent as papa, a.cosComponentKey as cod_papa
		from 
		actAccountEntry a, actAccountEntryType b, actAccountEntryDetail c, actAccountEntryDetailCC d, actAccountEntryDetailCC e
		where
		$valor_contexto_det 
		e.codCostCenter = '$cod_cc_agrupar_det' and 
		c.pkyAccountEntryDetail = e.codAccountEntryDetail AND
		a.codType = b.pkyAccountEntryType and 
		a.pkyAccountEntry = c.codAccountEntry and 
		c.pkyAccountEntryDetail = d.codAccountEntryDetail and 
		a.fldDate >= '$fechaini_det' and
		a.fldDate <= '$fechafin_det' and
		c.codAccount = '$cod_cuenta_det' and 
		d.codCostCenter in ($valor_cod_cc_det) and 
		a.sysEnabled = 1 and a.sysAuthorized = 1 
		order by fecha, cod_asiento;");
	} //fin if agru2
}//fin if dif1
?>
<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_det; ?></b>
</td></tr></table>
<p><br /><center><font color="#000099" size="+1"><b>Libro Mayor</b></font></center></p>
<table border="0" cellpadding="2" align="center" width="100%">
<tr>
<td>	
    <table border="1" align="center" cellpadding="2" width="100%">
        <TR> 
        <TD width="25%"><b>Cod. cuenta: </b><?php echo $cod_cuenta_det; ?></TD>
        <TD width="25%"><b>Cuenta: </b><?php echo $nom_cuenta_det; ?></TD>
        <TD width="25%"><b>Descripci&oacute;n: </b><?php echo $nom_desc_det; ?></TD>
        <TD width="25%"><b>Contexto: </b><?php echo $nom_contexto_det; ?></TD>
        </TR>
        <TR>
        <TD><b>De Fecha: </b><?php echo $fechaini_det; ?> <b>a Fecha: </b><?php echo $fechafin_det; ?></TD>
        <TD><b>Centro de Costo: </b><?php echo $nom_centro_costo_det; ?></TD>
		<TD><b>Centro de Costo (Agrupar): </b><?php echo $nom_centro_costo_agrupar_det; ?></TD>
        <TD><b>Expresado en: </b><?php echo $nom_moneda_det; ?></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>", 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="100%">
	<TR BGCOLOR='#ffcccc'> 
    <?php if($fechaini_gest2 == $fechaini_det) { //if fecha igual ?>
    <TD colspan="7"><b>Saldo de fecha cerrado a <?php echo $fechaini_det_saldo; ?></b></TD>
    <?php } else { //else fecha igual ?>
    <TD colspan="7"><b>Saldo de fecha  <?php echo $fechaini_gest2; ?> a <?php echo $fechaini_det_saldo; ?></b></TD>
    <?php } //fin if fecha igual ?>
    
    <?php 
	if($saldo_debe < 0) { 
		$saldo_debe_ver = $saldo_debe * -1;
	?>
    <TD align="right"><b><?php echo '('.number_format($saldo_debe_ver, $n_decimales).')'; ?></b></TD>
    <?php } else { ?>
    <TD align="right"><b><?php echo number_format($saldo_debe, $n_decimales); ?></b></TD>
    <?php } ?>
    <?php 
	if($saldo_haber < 0) { 
		$saldo_haber_ver = $saldo_haber * -1;
	?>
    <TD align="right"><b><?php echo '('.number_format($saldo_haber_ver, $n_decimales).')'; ?></b></TD>
    <?php } else { ?>
    <TD align="right"><b><?php echo number_format($saldo_haber, $n_decimales); ?></b></TD>
    <?php } ?>
    <?php 
	if($saldo_inicial < 0) { 
		$saldo_inicial_ver = $saldo_inicial * -1;
	?>
    <TD align="right"><b><?php echo '('.number_format($saldo_inicial_ver, $n_decimales).')'; ?></b></TD>
    <?php } else { ?>
    <TD align="right"><b><?php echo number_format($saldo_inicial, $n_decimales); ?></b></TD>
    <?php } ?>
    </TR>
    <thead>
    <TR>
    <TD align="center"><b>Cod. Asiento</b></TD>
    <TD align="center"><b>Nro. de Trans.</b></TD>
    <TD align="center"><b>Nro. de Doc.</b></TD>
    <TD align="center" width="60"><b>Fecha</b></TD>
    <TD align="center"><b>Tipo</b></TD>
    <TD align="center"><b>Glosa</b></TD>
    <TD align="center"><b>Gen. Por</b></TD>
    <TD align="center"><b>Debe</b></TD>
    <TD align="center"><b>Haber</b></TD>
    <TD align="center"><b>Saldo</b></TD>
    </TR>
	</thead>
    <tbody class="marcafila">
    <?php
	
	$color = 2;
	$sum_debe_det = 0;
	$sum_haber_det = 0;
	$sum_saldo = $saldo_inicial;
while ($row = mysqli_fetch_array($resultdet)) {
	$cod_asiento = $row['cod_asiento'];
	
	//para enlazar al que genero el asiento
	$papa_componente = $row['papa'];
	$papa_codigo = $row['cod_papa'];
	//$usuario = nombre del usuario
	
	include "../../generadopor.php";
	
	
	if($color % 2 == 0) { //if color
	printf("<tr BGCOLOR='#e2e7fa'><td align='center'><a href='../../ModuleAccounting/VoucherAccountEntry/index.php?pkyAccountEntry=$cod_asiento&showCC=$asientocc_det&user=$usuario_det&token=$token' title='Asiento Contable'>%s</a></td>", $row['cod_asiento']);//cod
	} else {
	printf("<tr><td align='center'><a href='../../ModuleAccounting/VoucherAccountEntry/index.php?pkyAccountEntry=$cod_asiento&showCC=$asientocc_det&user=$usuario_det&token=$token' title='Asiento Contable'>%s</a></td>", $row['cod_asiento']);//cod
	}//cierra if color
	printf("<td align='center'>%s</td>", $row['nro_trans']);//numero de transaccion
	printf("<td align='center'>%s</td>", $row['nro_doc']);//numero de documento
	printf("<td align='right'>%s</td>", $row['fecha']);//fecha
	printf("<td>%s</td>", $row['tipo']);//tipo
	$glosa_det = $row['glosa'];
	$glosa_det = nl2br($glosa_det);
	$glosa_det = str_replace('\n','<br />',$glosa_det);
	printf("<td>%s</td>", $glosa_det);//glosa
	printf("<td align='center'>%s</td>", $papa_enlace);//generado por
	if($mi_cod_pais == 1) {
	$debe_1 = $row['debe'];
	$haber_1 = $row['haber'];
	}
	if($mi_cod_pais == 761) {
	$debe_1 = round($row['debe'],$n_decimales);
	$haber_1 = round($row['haber'],$n_decimales);
	}
	printf("<td align='right'>%s</td>", number_format($debe_1, $n_decimales));//debe
	printf("<td align='right'>%s</td>", number_format($haber_1, $n_decimales));//haber
	$sum_debe_det = $sum_debe_det + $debe_1;
	$sum_haber_det = $sum_haber_det + $haber_1;
	if($cod_tipo_cuenta_det == 1 || $cod_tipo_cuenta_det == 5 || $cod_tipo_cuenta_det == 6) {
		$sum_saldo = $sum_saldo + $debe_1 - $haber_1;
	} else {
		$sum_saldo = $sum_saldo + $haber_1 - $debe_1;
	}
	
	if($sum_saldo < 0) { 
	printf("<td align='right'>(%s)</td></tr>", number_format($sum_saldo * -1, $n_decimales));//saldo
	} else {
	printf("<td align='right'>%s</td></tr>", number_format($sum_saldo, $n_decimales));//saldo
	}
	$color++;
}
mysqli_free_result($resultdet);
?>
<tr BGCOLOR='#ffcccc'><td colspan="7"><b>Total Periodo Cuenta</b></td>
<td align="right"><?php printf("<b>%s</b>", number_format($sum_debe_det,$n_decimales)); ?></td>
<td align="right"><?php printf("<b>%s</b>", number_format($sum_haber_det,$n_decimales)); ?></td>
<?php if($sum_saldo < 0) { ?>
<td align="right"><?php printf("<b>(%s)</b>", number_format($sum_saldo * -1,$n_decimales)); ?></td>
<?php } else { ?>
<td align="right"><?php printf("<b>%s</b>", number_format($sum_saldo,$n_decimales)); ?></td>
<?php } ?>
</tr>
<?php
$sum_saldo_det = $sum_debe_det - $sum_haber_det;
//$digito_cuenta = substr($cod_cuenta_det,0,1);
if($cod_tipo_cuenta_det == 1 || $cod_tipo_cuenta_det == 5 || $cod_tipo_cuenta_det == 6) {//if digito
	if($sum_saldo_det > 0) { 
		$nom_saldo_det = 'Deudor';
		$ver_det = 1;
	}
	if($sum_saldo_det < 0) { 
		$nom_saldo_det = 'Acreedor';
		$sum_saldo_det = $sum_saldo_det * (-1);
		$ver_det = 2;
	}
	if($sum_saldo_det == 0) { 
		$nom_saldo_det = 'Nulo';
		$ver_det = 3;
	}
} else {//else digito
	if($sum_saldo_det > 0) { 
		$nom_saldo_det = 'Deudor';
		$ver_det = 5;
	}
	if($sum_saldo_det < 0) { 
		$nom_saldo_det = 'Acreedor';
		$sum_saldo_det = $sum_saldo_det * (-1);
		$ver_det = 4;
	}
	if($sum_saldo_det == 0) { 
		$nom_saldo_det = 'Nulo';
		$ver_det = 3;
	}
}//fin if digito
?>
<tr BGCOLOR='#ffcccc'><td colspan="7"><b>Saldo <?php echo $nom_saldo_det; ?></b></td>
<?php if($ver_det == 1) { ?>
<td align="right"><?php printf("<b>%s</b>", number_format($sum_saldo_det,$n_decimales)); ?></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<?php } ?>
<?php if($ver_det == 2) { ?>
<td>&nbsp;</td>
<td align="right"><?php printf("<b>(%s)</b>", number_format($sum_saldo_det,$n_decimales)); ?></td>
<td>&nbsp;</td>
</tr>
<?php } ?>
<?php if($ver_det == 3) { ?>
<td align="right"><?php printf("<b>%s</b>", number_format($sum_saldo_det,$n_decimales)); ?></td>
<td align="right"><?php printf("<b>%s</b>", number_format($sum_saldo_det,$n_decimales)); ?></td>
<td>&nbsp;</td>
<?php } ?>
<?php if($ver_det == 4) { ?>
<td>&nbsp;</td>
<td align="right"><?php printf("<b>%s</b>", number_format($sum_saldo_det,$n_decimales)); ?></td>
<td>&nbsp;</td>
</tr>
<?php } ?>
<?php if($ver_det == 5) { ?>
<td align="right"><?php printf("<b>(%s)</b>", number_format($sum_saldo_det,$n_decimales)); ?></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<?php } ?>

<tr BGCOLOR='#ffcccc'><td colspan="7"><b>Total Cuenta</b></td>
<td align="right"><?php printf("<b>%s</b>", number_format($sum_debe_det + $saldo_debe,$n_decimales)); ?></td>
<td align="right"><?php printf("<b>%s</b>", number_format($sum_haber_det + $saldo_haber,$n_decimales)); ?></td>
<?php if($sum_saldo < 0) { ?>
<td align="right"><?php printf("<b>(%s)</b>", number_format($sum_saldo * -1,$n_decimales)); ?></td>
<?php } else { ?>
<td align="right"><?php printf("<b>%s</b>", number_format($sum_saldo,$n_decimales)); ?></td>
<?php } ?>
</tr>
<?php
$sum_saldo_det_gen = $sum_debe_det + $saldo_debe - $sum_haber_det - $saldo_haber;
//$digito_cuenta = substr($cod_cuenta_det,0,1);
if($cod_tipo_cuenta_det == 1 || $cod_tipo_cuenta_det == 5 || $cod_tipo_cuenta_det == 6) {//if digito
	if($sum_saldo_det_gen > 0) { 
		$nom_saldo_det = 'Deudor';
		$ver_det = 1;
	}
	if($sum_saldo_det_gen < 0) { 
		$nom_saldo_det = 'Acreedor';
		$sum_saldo_det_gen = $sum_saldo_det_gen * (-1);
		$ver_det = 2;
	}
	if($sum_saldo_det_gen == 0) { 
		$nom_saldo_det = 'Nulo';
		$ver_det = 3;
	}
} else {//else digito
	if($sum_saldo_det_gen > 0) { 
		$nom_saldo_det = 'Deudor';
		$ver_det = 5;
	}
	if($sum_saldo_det_gen < 0) { 
		$nom_saldo_det = 'Acreedor';
		$sum_saldo_det_gen = $sum_saldo_det_gen * (-1);
		$ver_det = 4;
	}
	if($sum_saldo_det_gen == 0) { 
		$nom_saldo_det = 'Nulo';
		$ver_det = 3;
	}
}//fin if digito
?>
<tr BGCOLOR='#ffcccc'><td colspan="7"><b>Saldo <?php echo $nom_saldo_det; ?></b></td>
<?php if($ver_det == 1) { ?>
<td align="right"><?php printf("<b>%s</b>", number_format($sum_saldo_det_gen,$n_decimales)); ?></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<?php } ?>
<?php if($ver_det == 2) { ?>
<td>&nbsp;</td>
<td align="right"><?php printf("<b>(%s)</b>", number_format($sum_saldo_det_gen,$n_decimales)); ?></td>
<td>&nbsp;</td>
</tr>
<?php } ?>
<?php if($ver_det == 3) { ?>
<td align="right"><?php printf("<b>%s</b>", number_format($sum_saldo_det_gen,$n_decimales)); ?></td>
<td align="right"><?php printf("<b>%s</b>", number_format($sum_saldo_det_gen,$n_decimales)); ?></td>
<td>&nbsp;</td>
<?php } ?>
<?php if($ver_det == 4) { ?>
<td>&nbsp;</td>
<td align="right"><?php printf("<b>%s</b>", number_format($sum_saldo_det_gen,$n_decimales)); ?></td>
<td>&nbsp;</td>
</tr>
<?php } ?>
<?php if($ver_det == 5) { ?>
<td align="right"><?php printf("<b>(%s)</b>", number_format($sum_saldo_det_gen,$n_decimales)); ?></td>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
<?php } ?>
</tbody>
</table>
<?php
}//fin if 3

?>

</body>
</html>
