<!DOCTYPE html>
<html lang="es-ES">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Pantalla Reporte Libro Diario</title>

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

$rep=$_GET["rep"];
$tipo=$_GET["tipo"];
$fechaini=$_POST["fechaini"];
$fechafin=$_POST["fechafin"];
//$usuario=$_POST["usuario"];
$mostrar=$_POST["mostrar"];
$formato=$_POST["formato"];
$modulo=$_POST["modulo"];
$centro_costo=$_POST["centrocosto"];
$cod_contexto=$_POST["contexto"];
$cod_tipo_asiento=$_POST["tipo_asiento"];
?>

<?php if($formato == 0) { ?>
<link href="../../libros.css" rel="stylesheet" type="text/css" />

<style type="text/css" media="print">
@page {size: letter;}
DIV {page-break-after: always;}
</style>

<?php } else { ?>
<link href="../../maincss.css" rel="stylesheet" type="text/css" />
<link href="../../printcss.css" rel="stylesheet" type="text/css" media="print" />
<?php } ?> 
</head>
<?php


$n_decimales = 2;

if($mi_cod_pais == 176) { //if paraguay
$n_decimales = 0;
}//fin if paraguay

?>
<body>
<?php

//Inicio reporte Libro Diario

if($rep == 9 && $tipo == 1) { // if 2
$filas_por_pagina = 36;

//bucle por cada dia
if($mostrar == 0){//if mostrar 0
	$var_anulado = ' a.sysEnabled = 1 and ';
	$texto_anulado = '';
	$texto_anulado2 = 'Solo V&aacute;lidos';
}//fin if mostrar 0
if($mostrar == 1){//if mostrar 1 
	$var_anulado = ' ';
	$texto_anulado = '- VALIDOS Y ANULADOS';
	$texto_anulado2 = 'V&aacute;lidos y Anulados';
}//fin if mostrar 1
if($mostrar == 2){//if mostrar 2 
	$var_anulado = ' a.sysEnabled = 0 and ';
	$texto_anulado = '- SOLO ANULADOS';
	$texto_anulado2 = 'Solo Anulados';
}//fin if mostrar 2

if($formato == 0){//if formato 
	$nom_formato = 'Libro Diario';
} else {
	$nom_formato = 'Reporte';
}//fin if formato

$fechaini_det = $fechaini;

if($modulo == 'Todos'){//if modulo 0
	$texto_modulo = 'Todos';
	$var_modulo = ' '; 
} else {//else modulo 0
	if($modulo == NULL) {//if modulo null
		$texto_modulo = 'Contabilidad - Asiento Contable';
		$var_modulo = ' a.fldParentComponent is NULL and ';
	} else {//else modulo null
		$resultmod = mysqli_query($link, "select rtrim(fldName) as comp, txtDescription as nom_comp, txtModuleDescription as nom_modulo 
		from srvComponent 
		where 
		rtrim(fldName) = '$modulo';");
		while ($row = mysqli_fetch_array($resultmod)) { 
			$texto_modulo = $row['nom_modulo'].' - '.$row['nom_comp'];
		}
		mysqli_free_result($resultmod);
		$var_modulo = ' a.fldParentComponent = "'.$modulo.'" and';
	}//fin if modulo null
}//fin if modulo 0

//contexto
if($cod_contexto == -1){ 
	$nom_contexto = '';
	$nom_contexto2 = 'Todos';
	$valor_contexto = ' ';
	$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 = '- Contexto '.$row['contexto'];;
			$nom_contexto2 = $row['cod_contexto'].' - '.$row['contexto'];
		}
		mysqli_free_result($resultcontx);
	$valor_contexto = ' a.sysContext = '.$cod_contexto.' and ';
	$valor_contexto2 = ' b.sysContext = '.$cod_contexto.' and ';	
}

//tipo asiento
if($cod_tipo_asiento == -1){ 
	$nom_tipo_asiento = '';
	$nom_tipo_asiento2 = 'Todos';
	$valor_tipo_asiento = ' ';
	$valor_tipo_asiento2 = ' ';
} else {
	if($cod_tipo_asiento == -2){ //if 2
		$nom_tipo_asiento = '- Asiento Autom&aacute;tico';
		$nom_tipo_asiento2 = 'Autom&aacute;tico';
		$valor_tipo_asiento = ' a.codType < 10 and ';
		$valor_tipo_asiento2 = ' b.codType < 10 and ';
	} else { //else if 2 
		if($cod_tipo_asiento == -3){ //if 3
			$nom_tipo_asiento = '- Asiento Manual';
			$nom_tipo_asiento2 = 'Manual';
			$valor_tipo_asiento = ' a.codType > 10 and ';
			$valor_tipo_asiento2 = ' b.codType > 10 and ';
		} else { //else if 3
			$resulttipoa = mysqli_query($link, "select pkyAccountEntryType as cod_tipo, fldName as tipo
		from actAccountEntryType
			where 
			pkyAccountEntryType = '$cod_tipo_asiento';");
				while ($row = mysqli_fetch_array($resulttipoa)) {   
					$nom_tipo_asiento = '- Asiento '.$row['tipo'];
					$nom_tipo_asiento2 = $row['cod_tipo'].' - '.$row['tipo'];
				}
				mysqli_free_result($resulttipoa);
			$valor_tipo_asiento = ' a.codType = '.$cod_tipo_asiento.' and ';
			$valor_tipo_asiento2 = ' b.codType = '.$cod_tipo_asiento.' and ';	
		} //fin if 3
	}//fin if 2
}//fin if 1

if($centro_costo == -1) {
	//$nom_centro_costo = 'Todos';
	//$valor_cc = ' ';
	$nom_centro_costo = 'Ninguno';
	$valor_cc = ' a.codType = '.$centro_costo.' and ';
} 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 ';
}

$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;

if($hay_cc != 0) {//if hay0

	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 if hay0

$fin_cc = $i - 1;

if($formato == 0) { //if formato

while($fechaini_det <= $fechafin) { //while fecha

$result3 = mysqli_query($link, "select a.pkyAccountEntry as cod_mov_det, a.fldTransactionNumber as nro_trans, a.fldDocumentNumber as nro_doc, a.fldDate as fecha, b.fldName as tipo, a.codExchangeRate as cod_tc, a.txtDescription as glosa, a.fldParentComponent as papa, a.cosComponentKey as cod_papa, a.sysEnabled as enabled, a.sysAuthorized as authorized, g.fldName as usuario_reg
from actAccountEntry a, actAccountEntryType b, accGroup g
where 
$var_anulado 
$var_modulo 
$valor_contexto 
$valor_tipo_asiento 
a.sysAuthorizationGroup = g.pkyGroup and 
a.fldDate = '$fechaini_det' and
a.codType = b.pkyAccountEntryType 
order by nro_trans;");
$mat_cab = array();
$i = 1;
	while ($row = mysqli_fetch_array($result3)) {
	$mat_cab[$i][1] = $row['cod_mov_det'];
	$mat_cab[$i][2] = $row['nro_trans'];
	$mat_cab[$i][3] = $row['nro_doc'];
	$mat_cab[$i][4] = $row['fecha'];
	$mat_cab[$i][5] = $row['tipo'];
	$mat_cab[$i][6] = $row['cod_tc'];
	$glosa = $row['glosa'];
	$glosa = nl2br($glosa);
	$glosa = str_replace('\n','<br />',$glosa);
	$mat_cab[$i][7] = $glosa;
	$mat_cab[$i][8] = $row['usuario_reg'];
	$mat_cab[$i][9] = $row['enabled'];
	$mat_cab[$i][10] = $row['authorized'];
	$mat_cab[$i][11] = $row['papa'];
	$mat_cab[$i][12] = $row['cod_papa'];
	$i++;
	}
	mysqli_free_result($result3);

$fin = $i - 1;

$sum_debe = 0;
$sum_haber = 0;
$sum_debe_cc = array();
$sum_haber_cc = array();
$imp = 1;
$nro_filas_acum = 0;
$pag = 1;



for($k = 1; $k <= $fin; $k++) { //for bucle

?>
<?php if($imp == 1) { //if imp?>
<?php if($mostrar_logo_reportes_formato == 0) { //if formato 0 ?>
<table border="0" align="center" cellpadding="2" width="100%">
<tr>
	<td width="33%"><?php echo $usuario; ?></td>
    <td width="33%" align="center"><b>LIBRO DIARIO <?php echo $texto_anulado; ?> <?php echo $nom_contexto; ?> <?php echo $nom_tipo_asiento; ?></b></td>
    <td width="33%" align="right"><b>P&aacute;gina: <?php echo $pag; ?></b></td>
</tr>
<tr>
	<td width="33%"><b>Nombre o Raz&oacute;n Social: </b><?php echo $nombre_empresa; ?></td>
    <td width="33%"><b>NIT: </b><?php echo $mi_nit; ?></td>
    <td width="33%" align="right">EXPRESADO EN BOLIVIANOS</td>
</tr>
</table>
<?php } //fin if formato 0 ?>

<?php if($mostrar_logo_reportes_formato == 1) { //if formato 1 ?>
<table border="0" align="center" cellpadding="2" width="100%">
<tr>
	<td rowspan="2" width="15%"><img src="../../Images/logo.jpg" alt="Logo" width="100" height="40" /></td>
    <td width="33%">&nbsp;</td>
    <td width="33%" align="center"><b>LIBRO DIARIO <?php echo $texto_anulado; ?> <?php echo $nom_contexto; ?> <?php echo $nom_tipo_asiento; ?></b></td>
    <td width="33%" align="right"><b>P&aacute;gina: <?php echo $pag; ?></b></td>
</tr>
<tr>
	<td width="33%"><b>Nombre o Raz&oacute;n Social: </b><?php echo $nombre_empresa; ?></td>
    <td width="33%" align="center"><b>NIT: </b><?php echo $mi_nit; ?></td>
    <td width="33%" align="right">EXPRESADO EN BOLIVIANOS</td>
</tr>
</table>
<?php } //fin if formato 1 ?>
<br />

<table border="1" align="center" cellpadding="2" width="100%">
    <TR> 
    <TD align="center" style='border-bottom: solid 1px'><b>Fecha<br/>Cod.</b></TD>
    <TD align="center" style='border-bottom: solid 1px'><b>Detalle</b></TD>
    <?php if($hay_cc != 0) {//if hay0 ?>
    <?php for($c = 1; $c <= $fin_cc; $c++) {//for c0 ?>
    <TD align="center" style='border-bottom: solid 1px'><b><?php echo $mat_tipocc[$c][4]; ?><br/><?php echo $mat_tipocc[$c][2]; ?> Debe</b></TD>
    <TD align="center" style='border-bottom: solid 1px'><b><?php echo $mat_tipocc[$c][4]; ?><br/><?php echo $mat_tipocc[$c][2]; ?> Haber</b></TD>
    <?php }// fin for c0 ?>
    <TD align="center" style='border-bottom: solid 1px'><b>Sin Centro de Costo<br/>Debe</b></TD>
    <TD align="center" style='border-bottom: solid 1px'><b>Sin Centro de Costo<br/>Haber</b></TD>
	<?php }// fin if hay0 ?>
    <TD align="center" style='border-bottom: solid 1px'><b>Debe</b></TD>
    <TD align="center" style='border-bottom: solid 1px'><b>Haber</b></TD>
    </TR>
   
<?php 
$imp = 0;

}//fin if imp ?>
<?php
$cod_det = $mat_cab[$k][1];

//para enlazar al que genero el asiento
$papa_componente = $mat_cab[$k][11];
$papa_codigo = $mat_cab[$k][12];
//$usuario = nombre del usuario

include "../../generadopor.php";

	
//query para sacar el nombre de los componentes
	/*
	select case when rtrim(fldName) = 'ComponentAccountEntry' then NULL else rtrim(fldName) end as comp, txtDescription as nom_comp, txtModuleDescription as nom_modulo 
from srvComponent 
where 
codType = 3 or 
codType = 5 and 
sysEnabled = 1 and sysAuthorized = 1
order by nom_modulo, nom_comp
	*/

$resultdet = mysqli_query($link, "select a.pkyAccountEntryDetail as cod_asiento_det, a.codAccountEntry as cod_asiento, a.codAccount as cod_cuenta, b.fldName as nom_cuenta, a.fldDebit as debe, a.fldCredit as haber
from actAccountEntryDetail a, actAccount b
where
a.codAccountEntry = '$cod_det' and
a.codAccount = b.pkyAccount 
order by haber, cod_asiento_det;");

$mat_det = array ();
$d = 1;
	while ($row = mysqli_fetch_array($resultdet)) { //while 44
		$mat_det[$d][1] = $row['cod_cuenta'];
		$mat_det[$d][2] = $row['nom_cuenta'];
		if($mi_cod_pais == 1) {
		$mat_det[$d][3] = $row['debe'];
		$mat_det[$d][4] = $row['haber'];
		}
		if($mi_cod_pais == 176) {
		$mat_det[$d][3] = round($row['debe'],$n_decimales);
		$mat_det[$d][4] = round($row['haber'],$n_decimales);
		}
		$cod_asiento2 = $row['cod_asiento'];
		$cod_asiento_det2 = $row['cod_asiento_det'];
		
		if($hay_cc != 0) {//if hay1
		//para cc
		//bucle para centro de costo
		$ccc = 0; //contador 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];
		//echo $cod_cc.' - '.$cod_asiento_det2.' - '.$cod_asiento2.'<br>';
		if($mi_cod_pais == 1) {//if 1
		$resultcc1 = mysqli_query($link, "select c.pkyAccountEntryDetailCC as cod, a.codAccount as codcuenta, (a.fldDebit * c.fldPercent / 100) as debecc, (a.fldCredit * c.fldPercent / 100) as habercc
		from actAccountEntryDetail a, actAccountEntry b, actAccountEntryDetailCC c
		where 
		$valor_contexto2 
		$valor_tipo_asiento2 
		a.codAccountEntry = b.pkyAccountEntry and 
		a.pkyAccountEntryDetail = c.codAccountEntryDetail and 
		c.codCostCenter = '$cod_cc' and 
		a.pkyAccountEntryDetail = '$cod_asiento_det2' and 
		a.codAccountEntry = '$cod_asiento2';");
		
		while ($row = mysqli_fetch_array($resultcc1)) {//while cc1
			$mat_det[$d][5 + $ccc] = $row['debecc']; //empieza 5 debe
			$mat_det[$d][6 + $ccc] = $row['habercc']; //empieza 6 haber
			//echo $cod_cc.' - '.$cod_asiento_det2.' - '.$cod_asiento2.' / '.$mat_det[$d][5 + $ccc].' - '.$mat_det[$d][6 + $ccc].'<br>';
			$suma_debecc = $suma_debecc + $row['debecc'];
			$suma_habercc = $suma_habercc + $row['habercc'];
			$ccc = $ccc + 2;
		}//fin while cc1
		$mat_det[$d][5 + $ccc] = $suma_debecc-$mat_det[$d][3]; //debe sin cc
		$mat_det[$d][6 + $ccc] = $suma_habercc-$mat_det[$d][4]; //haber sin cc
		}//fin if 1
		
		if($mi_cod_pais == 176) {//if 176
		$resultcc1 = mysqli_query($link, "select c.pkyAccountEntryDetailCC as cod, a.codAccount as codcuenta, round(a.fldDebit * c.fldPercent / 100,'$n_decimales') as debecc, round(a.fldCredit * c.fldPercent / 100,'$n_decimales') as habercc
		from actAccountEntryDetail a, actAccountEntry b, actAccountEntryDetailCC c
		where 
		$valor_contexto2 
		$valor_tipo_asiento2 
		a.codAccountEntry = b.pkyAccountEntry and 
		a.pkyAccountEntryDetail = c.codAccountEntryDetail and 
		c.codCostCenter = '$cod_cc' and 
		a.pkyAccountEntryDetail = '$cod_asiento_det2' and 
		a.codAccountEntry = '$cod_asiento2';");
		
		while ($row = mysqli_fetch_array($resultcc1)) {//while cc1
			$mat_det[$d][5 + $ccc] = round($row['debecc'],$n_decimales); //empieza 5 debe
			$mat_det[$d][6 + $ccc] = round($row['habercc'],$n_decimales); //empieza 6 haber
			//echo $cod_cc.' - '.$cod_asiento_det2.' - '.$cod_asiento2.' / '.$mat_det[$d][5 + $ccc].' - '.$mat_det[$d][6 + $ccc].'<br>';
			$suma_debecc = $suma_debecc + round($row['debecc'],$n_decimales);
			$suma_habercc = $suma_habercc + round($row['habercc'],$n_decimales);
			$ccc = $ccc + 2;
		}//fin while cc1
		$mat_det[$d][5 + $ccc] = round($suma_debecc,$n_decimales)-$mat_det[$d][3]; //debe sin cc
		$mat_det[$d][6 + $ccc] = round($suma_habercc,$n_decimales)-$mat_det[$d][4]; //haber sin cc
		}//fin if 176
		mysqli_free_result($resultcc1);
		
		}//fin for c
		
		}//fin if hay1
		
		$d++;
	} //fin while 44

$numero_filas = mysqli_num_rows($resultdet);

$fin_x = $numero_filas;

mysqli_free_result($resultdet);


//para controlar que un asiento que tenga >= filas por pagina se imprima completo
if($numero_filas >= $filas_por_pagina && $nro_filas_acum == 0) {
	$numero_filas = $filas_por_pagina - 2;	
	
}

$nro_filas_acum = $nro_filas_acum + $numero_filas + 2; //suma acumulada filas del asiento + cabecera + linea abajo

//$color = 2;
$sum_debe_det = 0;
$sum_haber_det = 0;
$sum_debe_det_cc = array();
$sum_haber_det_cc = array();
if($nro_filas_acum <= $filas_por_pagina) {//if filas acum
	if($mat_cab[$k][9] == 0) {//if anulado 0
		$reg_anulado = '<font color="#FF0000">ANULADO</font>';
	} else {//else if anulado 0
		$reg_anulado = '';
	}//fin if anulado 0
		
	printf("<tr><td align='left'><b>%s</b></td>", $mat_cab[$k][4]);//fecha
	printf("<td align='center'><b>--%s -- %s -- Asto. %s -- Doc. %s -- Gen. %s (%s) %s--</b></td>", $mat_cab[$k][5], $mat_cab[$k][2], $mat_cab[$k][1], $mat_cab[$k][3], $papa_enlace, $mat_cab[$k][8], $reg_anulado);//tipo, transaccion, asiento, documento, generado por, usuario, anulado
	printf("<td>&nbsp;</td>");//debe
	printf("<td>&nbsp;</td>");//haber
	
	//para cc
	if($hay_cc != 0) {//if hay3
		for($c = 1; $c <= $fin_cc+1; $c++) {//for c3
		printf("<td>&nbsp;</td>");//debe
		printf("<td>&nbsp;</td>");//haber
		}//fin for c3
	}//fin if hay3
	echo '</tr>';
	
	for ($x = 1; $x <= $fin_x; $x++) { //for 55
   	printf("<tr><td align='right'>%s</td>", $mat_det[$x][1]);//codigo cuenta
	if($mat_det[$x][4] == 0) {
	printf("<td align='left'>%s</td>", $mat_det[$x][2]);//detalle
	} else {
	printf("<td align='left'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%s</td>", $mat_det[$x][2]);//detalle	
	}
	
	//para cc
	if($hay_cc != 0) {//if hay2
		$ccc = 0; //contador cc
		$s = 1; //contador suma
		for($c = 1; $c <= $fin_cc+1; $c++) {//for c2
			printf("<td align='right'>%s</td>", number_format($mat_det[$x][5 + $ccc], $n_decimales));//debe
			printf("<td align='right'>%s</td>", number_format($mat_det[$x][6 + $ccc], $n_decimales));//haber
			if($mat_cab[$k][9] == 1) {//if anulado0
				$sum_debe_cc[$s] = $sum_debe_cc[$s] + $mat_det[$x][5 + $ccc];
				$sum_haber_cc[$s] = $sum_haber_cc[$s] + $mat_det[$x][6 + $ccc];
			}//fin if anulado0
			$sum_debe_det_cc[$s] = $sum_debe_det_cc[$s] + $mat_det[$x][5 + $ccc];
			$sum_haber_det_cc[$s] = $sum_haber_det_cc[$s] + $mat_det[$x][6 + $ccc];
			$s++;
			$ccc = $ccc + 2;
		}//fin for c2
		$fin_sum = $s - 1;
	}//fin if hay2
	
	printf("<td align='right'>%s</td>", number_format($mat_det[$x][3], $n_decimales));//debe
	printf("<td align='right'>%s</td></tr>", number_format($mat_det[$x][4], $n_decimales));//haber
	if($mat_cab[$k][9] == 1) {//if anulado
		$sum_debe = $sum_debe + $mat_det[$x][3];
		$sum_haber = $sum_haber + $mat_det[$x][4];
	}//fin if anulado
	$sum_debe_det = $sum_debe_det + $mat_det[$x][3];
	$sum_haber_det = $sum_haber_det + $mat_det[$x][4];
	} //fin for 55
	
	printf("<tr><td>&nbsp;</td>");//codigo cuenta
	printf("<td>%s</td>", $mat_cab[$k][7]);//glosa
	
	if($hay_cc != 0) {//if hay2
	for($s = 1; $s <= $fin_sum; $s++) {//for c2
	printf("<td align='right'><b>%s</b></td>", number_format($sum_debe_det_cc[$s],$n_decimales));
	printf("<td align='right'><b>%s</b></td>", number_format($sum_haber_det_cc[$s],$n_decimales));
	} //fin for c2
	} //fin if hay2
	printf("<td align='right'><b>%s</b></td>", number_format($sum_debe_det, $n_decimales));//debe
	printf("<td align='right'><b>%s</b></td></tr>", number_format($sum_haber_det, $n_decimales));//haber
	printf("<tr><td><hr /></td>");
	printf("<td><hr /></td>");
	printf("<td><hr /></td>");//debe
	printf("<td><hr /></td>");//haber
	
	if($hay_cc != 0) {//if hay3
	for($s = 1; $s <= $fin_sum; $s++) {//for c3
	printf("<td><hr /></td>");//debe
	printf("<td><hr /></td>");//haber
	} //fin for c3
	} //fin if hay3
	echo '</tr>';
	
} else {//else if filas acum
	$nro_filas_acum = 0;
	$k--;
	$imp = 1;
	$pag++;
	?>
    </table>
    <div>
	</div>
    <?php
}//fin if filas acum
//mysqli_free_result($resultdet);
}//fin for bucle
$fecha_total = $fechaini_det;
$fechaini_det = strtotime ( '+1 day' , strtotime ( $fechaini_det ) ) ;
$fechaini_det = date ( 'Y-m-d' , $fechaini_det );
//echo $fechaini_det;
	
	?>
    <?php if($fin != 0) { //if fin 0 ?>
    <tr>
    <td colspan="2" align="left" style='border-top: solid 1px'><b>TOTAL <?php echo $fecha_total; ?></b></td>
    <?php if($hay_cc != 0) {//if hay1 ?>
    <?php for($s = 1; $s <= $fin_sum; $s++) {//for c1 ?>
    <TD align="right" style='border-top: solid 1px'><?php printf("<b>%s</b>", number_format($sum_debe_cc[$s],$n_decimales)); ?></TD>
    <TD align="right" style='border-top: solid 1px'><?php printf("<b>%s</b>", number_format($sum_haber_cc[$s],$n_decimales)); ?></TD>
    <?php }// fin for c1 ?>
	<?php }// fin if hay1 ?>
    <td align="right" style='border-top: solid 1px'><?php printf("<b>%s</b>", number_format($sum_debe,$n_decimales)); ?></td>
    <td align="right" style='border-top: solid 1px'><?php printf("<b>%s</b>", number_format($sum_haber,$n_decimales)); ?></td>
    </tr>
    </table>
    <div>
	</div>
	<?php } //fin if fin 0?>
    <?php
}//fin while fecha



} else {// else if formato


$imp = 1;
while($fechaini_det <= $fechafin) { //while fecha

$result3 = mysqli_query($link, "select a.pkyAccountEntry as cod_mov_det, a.fldTransactionNumber as nro_trans, a.fldDocumentNumber as nro_doc, a.fldDate as fecha, b.fldName as tipo, a.codExchangeRate as cod_tc, a.txtDescription as glosa, a.fldParentComponent as papa, a.cosComponentKey as cod_papa, a.sysEnabled as enabled, a.sysAuthorized as authorized, g.fldName as usuario_reg
from actAccountEntry a, actAccountEntryType b, accGroup g
where 
$var_anulado 
$var_modulo 
$valor_contexto 
$valor_tipo_asiento 
a.sysAuthorizationGroup = g.pkyGroup and 
a.fldDate = '$fechaini_det' and
a.codType = b.pkyAccountEntryType 
order by nro_trans;");
$mat_cab = array();
$i = 1;
	while ($row = mysqli_fetch_array($result3)) {
	$mat_cab[$i][1] = $row['cod_mov_det'];
	$mat_cab[$i][2] = $row['nro_trans'];
	$mat_cab[$i][3] = $row['nro_doc'];
	$mat_cab[$i][4] = $row['fecha'];
	$mat_cab[$i][5] = $row['tipo'];
	$mat_cab[$i][6] = $row['cod_tc'];
	$glosa = $row['glosa'];
	$glosa = nl2br($glosa);
	$glosa = str_replace('\n','<br />',$glosa);
	$mat_cab[$i][7] = $glosa;
	$mat_cab[$i][8] = $row['usuario_reg'];
	$mat_cab[$i][9] = $row['enabled'];
	$mat_cab[$i][10] = $row['authorized'];
	$mat_cab[$i][11] = $row['papa'];
	$mat_cab[$i][12] = $row['cod_papa'];
	$i++;
	}
	mysqli_free_result($result3);

$fin = $i - 1;

$sum_debe = 0;
$sum_haber = 0;
$sum_debe_cc = array();
$sum_haber_cc = array();
//$imp = 1;
$nro_filas_acum = 0;
$pag = 1;
$color = 2;

for($k = 1; $k <= $fin; $k++) { //for bucle

?>
<?php if($imp == 1) { //if imp?>
<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>Libro Diario</b></font></center></p>

<table border="1" align="center" cellpadding="2" width="100%">
    <TR> 
    <TD width="25%"><b>M&oacute;dulo - Componente:  </b><?php echo $texto_modulo; ?></TD>
    <TD width="25%"><b>Tipo: </b><?php echo $nom_tipo_asiento2; ?></TD>
    <TD width="25%"><b>Centro de Costo: </b><?php echo $nom_centro_costo; ?></TD>
    <TD width="25%"><b>Formato: </b><?php echo $nom_formato; ?></TD>
    </TR>
    <TR>
    <TD><b>De Fecha: </b><?php echo $fechaini; ?> <b>a Fecha: </b><?php echo $fechafin; ?></TD>
    <TD><b>Mostrar: </b><?php echo $texto_anulado2; ?></TD>
    <TD><b>Contexto: </b><?php echo $nom_contexto2; ?></TD>
    <TD><b>Expresado en: </b><?php echo $nom_moneda_principal; ?></TD>
    </TR>
</table>
<br />
<table border="1" align="center" cellpadding="2" width="100%">
<tbody class="marcafila">
	<TR> 
    <TD align="center"><b>Fecha<br/>Cod.</b></TD>
    <TD align="center"><b>Detalle</b></TD>
    <?php if($hay_cc != 0) {//if hay0 ?>
    <?php for($c = 1; $c <= $fin_cc; $c++) {//for c0 ?>
    <TD align="center"><b><?php echo $mat_tipocc[$c][4]; ?><br/><?php echo $mat_tipocc[$c][2]; ?> Debe</b></TD>
    <TD align="center"><b><?php echo $mat_tipocc[$c][4]; ?><br/><?php echo $mat_tipocc[$c][2]; ?> Haber</b></TD>
    <?php }// fin for c0 ?>
    <TD align="center"><b>Sin Centro de Costo<br/>Debe</b></TD>
    <TD align="center"><b>Sin Centro de Costo<br/>Haber</b></TD>
	<?php }// fin if hay0 ?>
    <TD align="center"><b>Debe</b></TD>
    <TD align="center"><b>Haber</b></TD>
	</TR>
	

	
   
<?php 
$imp = 0;

}//fin if imp ?>
<?php
$cod_det = $mat_cab[$k][1];

//para enlazar al que genero el asiento
$papa_componente = $mat_cab[$k][11];
$papa_codigo = $mat_cab[$k][12];
//$usuario = nombre del usuario

include "../../generadopor.php";


$resultdet = mysqli_query($link, "select a.pkyAccountEntryDetail as cod_asiento_det, a.codAccountEntry as cod_asiento, a.codAccount as cod_cuenta, b.fldName as nom_cuenta, a.fldDebit as debe, a.fldCredit as haber
from actAccountEntryDetail a, actAccount b
where
a.codAccountEntry = '$cod_det' and
a.codAccount = b.pkyAccount 
order by haber, cod_asiento_det;");

$mat_det = array ();
$d = 1;
	while ($row = mysqli_fetch_array($resultdet)) { //while 44
		$mat_det[$d][1] = $row['cod_cuenta'];
		$mat_det[$d][2] = $row['nom_cuenta'];
		if($mi_cod_pais == 1) {
		$mat_det[$d][3] = $row['debe'];
		$mat_det[$d][4] = $row['haber'];
		}
		if($mi_cod_pais == 176) {
		$mat_det[$d][3] = round($row['debe'],$n_decimales);
		$mat_det[$d][4] = round($row['haber'],$n_decimales);
		}
		$cod_asiento2 = $row['cod_asiento'];
		$cod_asiento_det2 = $row['cod_asiento_det'];
		
		if($hay_cc != 0) {//if hay1
		//para cc
		//bucle para centro de costo
		$ccc = 0; //contador cc
		$suma_debecc = 0;
		$suma_habercc = 0;
		//$suma_saldocc = 0;
		for($c = 1; $c <= $fin_cc; $c++) {//for c
		
		$cod_cc = $mat_tipocc[$c][1];
		
		if($mi_cod_pais == 1) {//if 1
		$resultcc1 = mysqli_query($link, "select c.pkyAccountEntryDetailCC as cod, a.codAccount as codcuenta, (a.fldDebit * c.fldPercent / 100) as debecc, (a.fldCredit * c.fldPercent / 100) as habercc
		from actAccountEntryDetail a, actAccountEntry b, actAccountEntryDetailCC c
		where 
		$valor_contexto2 
		$valor_tipo_asiento2 
		a.codAccountEntry = b.pkyAccountEntry and 
		a.pkyAccountEntryDetail = c.codAccountEntryDetail and 
		c.codCostCenter = '$cod_cc' and 
		a.pkyAccountEntryDetail = '$cod_asiento_det2' and 
		a.codAccountEntry = '$cod_asiento2';");
		
		while ($row = mysqli_fetch_array($resultcc1)) {//while cc1
			$mat_det[$d][5 + $ccc] = $row['debecc']; //empieza 5 debe
			$mat_det[$d][6 + $ccc] = $row['habercc']; //empieza 6 haber
			$suma_debecc = $suma_debecc + $row['debecc'];
			$suma_habercc = $suma_habercc + $row['habercc'];
			$ccc = $ccc + 2;
		}//fin while cc1
		$mat_det[$d][5 + $ccc] = $suma_debecc-$mat_det[$d][3]; //debe sin cc
		$mat_det[$d][6 + $ccc] = $suma_habercc-$mat_det[$d][4]; //haber sin cc
		}//fin if 1
		
		if($mi_cod_pais == 176) {//if 176
		$resultcc1 = mysqli_query($link, "select c.pkyAccountEntryDetailCC as cod, a.codAccount as codcuenta, round(a.fldDebit * c.fldPercent / 100,'$n_decimales') as debecc, round(a.fldCredit * c.fldPercent / 100,'$n_decimales') as habercc
		from actAccountEntryDetail a, actAccountEntry b, actAccountEntryDetailCC c
		where 
		$valor_contexto2 
		$valor_tipo_asiento2 
		a.codAccountEntry = b.pkyAccountEntry and 
		a.pkyAccountEntryDetail = c.codAccountEntryDetail and 
		c.codCostCenter = '$cod_cc' and 
		a.pkyAccountEntryDetail = '$cod_asiento_det2' and 
		a.codAccountEntry = '$cod_asiento2';");
		
		while ($row = mysqli_fetch_array($resultcc1)) {//while cc1
			$mat_det[$d][5 + $ccc] = round($row['debecc'],$n_decimales); //empieza 5 debe
			$mat_det[$d][6 + $ccc] = round($row['habercc'],$n_decimales); //empieza 6 haber
			$suma_debecc = $suma_debecc + round($row['debecc'],$n_decimales);
			$suma_habercc = $suma_habercc + round($row['habercc'],$n_decimales);
			$ccc = $ccc + 2;
		}//fin while cc1
		$mat_det[$d][5 + $ccc] = round($suma_debecc,$n_decimales)-$mat_det[$d][3]; //debe sin cc
		$mat_det[$d][6 + $ccc] = round($suma_habercc,$n_decimales)-$mat_det[$d][4]; //haber sin cc
		}//fin if 176
		mysqli_free_result($resultcc1);
		
		}//fin for c
		
		}//fin if hay1
		
		$d++;
	} //fin while 44

$fin_x = mysqli_num_rows($resultdet);
mysqli_free_result($resultdet);



if($color % 2 == 0) { //if color
	$v_color = "BGCOLOR='#e2e7fa' ";
} else {
	$v_color = ' '; 
}

$sum_debe_det = 0;
$sum_haber_det = 0;
$sum_debe_det_cc = array();
$sum_haber_det_cc = array();

	if($mat_cab[$k][9] == 0) {//if anulado 0
		$reg_anulado = '<font color="#FF0000">ANULADO</font>';
	} else {//else if anulado 0
		$reg_anulado = '';
	}//fin if anulado 0
		
	printf("<tr $v_color style='border-bottom:dashed #FFF 1px;'><td align='left'>%s</td>", $mat_cab[$k][4]);//fecha
	printf("<td align='center'>--%s -- %s -- Asto. %s -- Doc. %s -- Gen. %s (%s) %s--</td>", $mat_cab[$k][5], $mat_cab[$k][2], $mat_cab[$k][1], $mat_cab[$k][3], $papa_enlace, $mat_cab[$k][8], $reg_anulado);//tipo, transaccion, asiento, documento, generado por, usuario, anulado
	printf("<td>&nbsp;</td>");//debe
	printf("<td>&nbsp;</td>");//haber
	
	//para cc
	if($hay_cc != 0) {//if hay3
		for($c = 1; $c <= $fin_cc+1; $c++) {//for c3
		printf("<td>&nbsp;</td>");//debe
		printf("<td>&nbsp;</td>");//haber
		}//fin for c3
	}//fin if hay3
	echo '</tr>';
	
	for ($x = 1; $x <= $fin_x; $x++) { //for 55
   	printf("<tr $v_color style='border-bottom:dashed #DDD 1px;'><td align='right'>%s</td>", $mat_det[$x][1]);//codigo cuenta
	if($mat_det[$x][4] == 0) {
	printf("<td align='left'>%s</td>", $mat_det[$x][2]);//detalle
	} else {
	printf("<td align='left'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%s</td>", $mat_det[$x][2]);//detalle	
	}
	
	//para cc
	if($hay_cc != 0) {//if hay2
		$ccc = 0; //contador cc
		$s = 1; //contador suma
		for($c = 1; $c <= $fin_cc+1; $c++) {//for c2
			printf("<td align='right'>%s</td>", number_format($mat_det[$x][5 + $ccc], $n_decimales));//debe
			printf("<td align='right'>%s</td>", number_format($mat_det[$x][6 + $ccc], $n_decimales));//haber
			if($mat_cab[$k][9] == 1) {//if anulado0
				$sum_debe_cc[$s] = $sum_debe_cc[$s] + $mat_det[$x][5 + $ccc];
				$sum_haber_cc[$s] = $sum_haber_cc[$s] + $mat_det[$x][6 + $ccc];
			}//fin if anulado0
			$sum_debe_det_cc[$s] = $sum_debe_det_cc[$s] + $mat_det[$x][5 + $ccc];
			$sum_haber_det_cc[$s] = $sum_haber_det_cc[$s] + $mat_det[$x][6 + $ccc];
			$s++;
			$ccc = $ccc + 2;
		}//fin for c2
		$fin_sum = $s - 1;
	}//fin if hay2
	
	printf("<td align='right'>%s</td>", number_format($mat_det[$x][3], $n_decimales));//debe
	printf("<td align='right'>%s</td></tr>", number_format($mat_det[$x][4], $n_decimales));//haber
	if($mat_cab[$k][9] == 1) {//if anulado
		$sum_debe = $sum_debe + $mat_det[$x][3];
		$sum_haber = $sum_haber + $mat_det[$x][4];
	}//fin if anulado
	$sum_debe_det = $sum_debe_det + $mat_det[$x][3];
	$sum_haber_det = $sum_haber_det + $mat_det[$x][4];
	} //fin for 55
	
	printf("<tr $v_color><td>&nbsp;</td>");//codigo cuenta
	printf("<td>%s</td>", $mat_cab[$k][7]);//glosa
	
	if($hay_cc != 0) {//if hay2
	for($s = 1; $s <= $fin_sum; $s++) {//for c2
	printf("<td align='right'><b>%s</b></td>", number_format($sum_debe_det_cc[$s],$n_decimales));
	printf("<td align='right'><b>%s</b></td>", number_format($sum_haber_det_cc[$s],$n_decimales));
	} //fin for c2
	} //fin if hay2
	printf("<td align='right'><b>%s</b></td>", number_format($sum_debe_det, $n_decimales));//debe
	printf("<td align='right'><b>%s</b></td>", number_format($sum_haber_det, $n_decimales));//haber
	echo '</tr>';
	
	$color++;
}//fin for bucle
$fecha_total = $fechaini_det;
$fechaini_det = strtotime ( '+1 day' , strtotime ( $fechaini_det ) ) ;
$fechaini_det = date ( 'Y-m-d' , $fechaini_det );
	
	?>
    <?php if($fin != 0) { //if fin 0 ?>
    <tr BGCOLOR="#ffcccc">
    <td colspan="2" align="left"><b>TOTAL <?php echo $fecha_total; ?></b></td>
    <?php if($hay_cc != 0) {//if hay1 ?>
    <?php for($s = 1; $s <= $fin_sum; $s++) {//for c1 ?>
    <TD align="right"><?php printf("<b>%s</b>", number_format($sum_debe_cc[$s],$n_decimales)); ?></TD>
    <TD align="right"><?php printf("<b>%s</b>", number_format($sum_haber_cc[$s],$n_decimales)); ?></TD>
    <?php }// fin for c1 ?>
	<?php }// fin if hay1 ?>
    <td align="right"><?php printf("<b>%s</b>", number_format($sum_debe,$n_decimales)); ?></td>
    <td align="right"><?php printf("<b>%s</b>", number_format($sum_haber,$n_decimales)); ?></td>
    </tr>
  
 
	<?php } //fin if fin 0?>
    <?php
}//fin while fecha

}//fin if formato
?>
</tbody>
</table>
<?php
} //fin if 2

?>

</body>
</html>
