<?php
// pdf_grafico.php?camara=0&proceso=0&inicio=01/01/2007%201:00&fin=25/12/2007%207:06
set_time_limit(15000);
ini_set("max_execution_time",25000);
$memoria_otorgada=0;
require_once('startinclude.php');
echo "Generando informe...<br><br>";

$camara=parametro('camara',0);
$proceso=parametro('proceso',0);

$inicio=parametro('inicio',"");
$fin=parametro('fin',"");

$boton_tag=parametro('boton_tag',"");
$accion=parametro('accion',"");
include "lib_form.php";
require_once "util_db.php";
include "lecturadb_slow.php";



leer_camaras($camaras);


if ($proceso) {
	leer_sensoresxproceso($celsius,$proceso);
} else {

	leer_sensoresxcamara($celsius,$camara);
	
}


leer_configuracion($conf);
$tituloreporte1=$conf["nombre_planta"];
$tituloreporte2=$conf["nombre_planta2"];

//define('FPDF_FONTPATH','fpdf/font/');

//require('fpdf/fpdf.php');
//require('fpdf/mc_table.php');


Function fechalarga($num) {
	$tmp=strftime("%d-",$num).ucfirst(strftime("%b",$num)).date("-y H:i",$num);
return($tmp);
}

Function fechacorta($num) {
$tmp=strftime("%d-",$num).ucfirst(strftime("%b",$num)).date("-y",$num);
return($tmp);
}
Function horacorta($num) {
$tmp=date("H:i:s",$num);
return($tmp);
}




// letter 216x279mm (10 margen) = 196 width, 307 (?) height







leer_temp_minima_proceso($armin,$proceso);
leer_temp_maxima_proceso($armax,$proceso);
leer_proceso($procesos,$proceso);

$seccionnum=0;
// datos iniciales***************************************************************************

	$xls2= cabecera("1- Resumen del Proceso","P",1);
	
function cabecera($titulo,$orientacion="L",$extendido=0) {
		global $nombretipoprefrio,$nombrecamara;
		global $tituloreporte1,$tituloreporte2;
		global $finicial,$ffinal;
		
		global $procesos,$proceso,$camaras,$camara;
		global $armin,$armax;
		
		global $inicio,$fin;
		
		$tmp="<table border=1>";
	
		
		$datos=array("Ats Intech","","","","","  ");
		$tmp.=n6($datos,"");
		if ($proceso) {
			$datos=array("Id Proceso :N°$proceso","","","","",$tituloreporte1);
		} else {
			$datos=array("Id Camara :".$camaras[$camara]["nombre_camara"],"","","","",$tituloreporte1);
		}
		$tmp.=n6($datos,"");
		
		$datos=array("","","","","",$tituloreporte2);
		$tmp.=n6($datos,"");
		if ($proceso) {
			$datos=array("INFORME DE PROCESO");
		} else {
			$datos=array("INFORME DE CAMARA");
		}
		$tmp.=titulo1($datos);
		$datos=array(trim($nombretipoprefrio));
		$tmp.=titulo1($datos);
		$tmp.="<br>";
		$datos=array($titulo);
		$tmp.=n6($datos,"B");
		$tmp.="<br>";
		$datos=array("Proceso:","Camara:"," Inicio","F/H Final");
		if (!$inicio) {
			$datos=array("Camara:","Inicio","Final","Destino:","Especie");
		} else {
			$datos=array("Camara:","Desde","Hasta","Destino:","Especie");
		}
		$tmp.=n7($datos,"B");
		
		
		$sql="select * from pf_especies order by nombre_especie";
		$campo_texto="nombre_especie";
		$campo_valor="id_especie";
		$texto_defecto="sin especie";
		generar_combo($sql,$campo_valor,$campo_texto,&$arregloespecie,$texto_defecto);	
		$especie=buscarcombo($procesos[0],$arregloespecie);
		$datos=array($proceso,$camaras[$camara]["nombre_camara"],$procesos[9],$procesos[10]);
		if (!$inicio) {
			$datos=array($camaras[$camara]["nombre_camara"],$procesos[9],$procesos[10],$procesos[6],$especie);
			$dif=cnvdateepoch($procesos[10])-cnvdateepoch($procesos[9]);
		} else {
			if ($proceso) {
	//			echo "??? $inicio $fin <br>";
				$inicio=((cnvdateepoch($procesos[9])-cnvdateepoch($inicio))>0)?$procesos[9]:$inicio;
				$fin=((cnvdateepoch($procesos[10])-cnvdateepoch($fin))<0)?$procesos[10]:$fin;

				$datos=array($camaras[$camara]["nombre_camara"],$inicio,$fin,$procesos[6],$especie);
				$dif=cnvdateepoch($fin)-cnvdateepoch($inicio);
			} else {
//				echo "??? $inicio $fin <br>";

				$datos=array($camaras[$camara]["nombre_camara"],$inicio,$fin,$procesos[6],$especie);
				$dif=cnvdateepoch($fin)-cnvdateepoch($inicio);			
			}
		//	echo "??? $inicio $fin <br>";
		}
		$tmp.=n7($datos,"");
		$datos=array("Origen","Destino","Estado","Frecuencia"," ");
		$datos=array("Condicion","Operador Inicial","Operador Final","Frecuencia","Duración");
		$tmp.=n7($datos,"B");
		if ($dif<180) {
			$diftexto=$dif." minuto(s)";
		}
		if ($dif>=180 and $dif<2160) {
			$diftexto=floor($dif/60)." hora(s)";
		}	
		if ($dif>=2160 ) {
			$diftexto=floor($dif/1440)." dia(s)";
		}		
		if (!$proceso) {
			$estado="Continuo";
			$diftexto="--";
			$procesos[4]="10";
			$procesos[18]="--";
			$procesos[11]="--";
		} else {
			$estado=($procesos[26]=="F")?"Finalizado":"No Finalizado";
		}
		$datos=array($procesos[5],$procesos[6],$estado,$procesos[4]." minuto(s)"," d ");
		$datos=array($estado,$procesos[11],$procesos[18],$procesos[4]." minuto(s)",$diftexto);
		$tmp.=n7($datos,"");		
		if ($extendido) {
		$tmp.="<br>";	
		$datos=array("Operador Inicial","Condicion Inicial");
		$tmp.=n7($datos,"B");
		$datos=array($procesos[11],$procesos[8]);
		$tmp.=n7($datos,"");	

		$datos=array("Operador Final","Condicion Final");
		$tmp.=n7($datos,"B");
		$datos=array($procesos[18],$procesos[19]);
		$tmp.=n7($datos,"");	
		
		$datos=array("Lectura Minima del Proceso","Lectura Maxima del Proceso");
		$tmp.=n7($datos,"B");
		

		
		$mintxt=($armin[2]/10)." registrado el ".$armin[1]." en el sensor ".$armin[3];
		$maxtxt=($armax[2]/10)." registrado el ".$armax[1]." en el sensor ".$armax[3];
		
		$datos=array($mintxt,$maxtxt);
		$tmp.=n7($datos,"");			
		
		$datos=array("Inicio Vuelta 1","Fin Vuelta 1");
		$tmp.=n7($datos,"B");
		$datos=array($procesos[12],$procesos[13]);
		$tmp.=n7($datos,"");			
		$datos=array("Inicio Vuelta 2","Fin Vuelta 2");
		$tmp.=n7($datos,"B");
		$datos=array($procesos[14],$procesos[15]);
		$tmp.=n7($datos,"");		
		$datos=array("Inicio Vuelta 3","Fin Vuelta 3");
		$tmp.=n7($datos,"B");
		$datos=array($procesos[16],$procesos[17]);
		$tmp.=n7($datos,"");				
	}
	$tmp.="<br>";	
	$tmp.="</table>";	
		return($tmp);
	}
	function n6($arreglo,$bold) {
		$tmp="";
		$b=($bold=="B")?"<b>":"";
		$b2=($bold=="B")?"</b>":"";		
		for ($i=0;$i<count($arreglo);$i++) {
			$tmp.="<td>$b".$arreglo[$i]."$b2</td>";
		}
		return("<tr>".$tmp."</tr>\n");
	}
	function n7($arreglo,$bold) {
		$tmp="";
		$b=($bold=="B")?"<b>":"";
		$b2=($bold=="B")?"</b>":"";
		for ($i=0;$i<count($arreglo);$i++) {
			$tmp.="<td>$b".$arreglo[$i]."$b2</td>";
		}
		return("<tr>".$tmp."</tr>\n");
	}	
	function titulo1($arreglo) {
		$tmp="";
		for ($i=0;$i<count($arreglo);$i++) {
			$tmp.="<td colspan=6>".$arreglo[$i]."</td>";
		}
		return("<tr>".$tmp."</tr>\n");
	}	
	



if (!$inicio) {
	$seccionnum++;
	
}
// temperatura***************************************************************************
$xls="<table>";
$lineatotal=0;
$lineasheet=0;
$numsheet=-1;
$seccionnum++;
// ob_flush;
//for ($ext=0;$ext<20;$ext++) {
	leer_temp_pdf($tabla,$camara,$proceso,$inicio,$fin);
//}
$num_elem=count($celsius)+1;

$num_lectura=count($tabla[0]);




	

	$w[0]=16;
	$max_elemxpage=39;
	for ($i=1;$i<$num_elem;$i++) {
		$ancho=((269-16)/$num_elem);
		
		$w[$i]=$ancho;
	}









		$cabeceraxls="<tr>";
			$k1[0]=" ";
			$alineacion=array("L");
			$cabeceraxls.="<td>Fecha</td>";
			for ($e=1;$e<$num_elem;$e++) {
				$alineacion[].="C";
				$k1[$e]=$celsius[$e-1]["nombre"];
				$cabeceraxls.="<td>".$k1[$e]."</td>";
			}		
		$cabeceraxls.="</tr>\n";
		$contador=13;
//for ($ext=0;$ext<20;$ext++) {
		$xls.=$cabeceraxls;
		for ($i=0;$i<$num_lectura;$i++) {
			$contador++;
			$lineatotal++;
			$lineasheet++;
			if ($lineasheet>30000) {
				$numsheet++;
				$xlsmax[$numsheet]=$xls."</table>\n";
				$xls="<table>".$cabeceraxls;
				$lineasheet=0;
			}
			$xls.="<tr>";
			//$k1[0]=fechalarga($tabla[0][$i]);
			$k1[0]=$tabla[0][$i];
			for ($e=0;$e<$num_elem;$e++) {
				$k1[$e]=@$tabla[$e][$i];
				$xls.="<td>".$k1[$e]."</td>";
			}
			if (($i % 3000) == 0) {
				@ob_flush();
				@flush();
				$memoria_total=ini_get("memory_limit")*1;
				$memoria_usada=floor(memory_get_usage(true)/1048576);
				$memoria_libre=floor(($memoria_total-$memoria_usada)*1000/$memoria_total)/10;
				echo "<li>leyendo temperatura ".($i+1)." de $num_lectura . Memoria Libre :".$memoria_libre."% </li>";
				if ($memoria_libre<20 and $memoria_otorgada==1) {
					ini_set('memory_limit','512M');
					$memoria_otorgada=2;
					echo "<li>Otorgando maximo de memoria. El sistema puede volverse lento e inestable.</li>";
				}					
				if ($memoria_libre<20 and $memoria_otorgada==0) {
					ini_set('memory_limit','256M');
					$memoria_otorgada=1;
					echo "<li>Otorgando memoria adicional para reportes mas largos</li>";
				}					
								
			}
		$xls.="</tr>\n";
		}
	//}

		
// LOG		***************************************************************************
$xls.="</table>";

if (!$inicio) {
	$seccionnum++;	
	$xls.="<table>";
	leer_estado_pdf($estadolog,$proceso);


		$xls.="<tr><td>Fecha</td><td>Evento</td></tr>\n";
		
	for ($i=0;$i<$num_log;$i++) {
		$k1=array($estadolog[$i][2],$estadolog[$i][3]);	
		$xls.="<tr><td>".$estadolog[$i][2]."</td><td>".$estadolog[$i][3]."</td></tr>\n";
		
	}
	$xls.="</table>";
}

// tarja ***************************************************************************	
$seccionnum++;	
$xls.="<table>";
//leer_tarjaxproceso($tarja,$tarjase,$tarjasc,$proceso);

		leer_tarjaxproceso($tarja,$tarjase,$tarjasc
			,$tarjaseti,$tarjaskg,$tarjascajas,$tarjascali
			,$proceso);

//debug($estadolog);

$num_tarja=count($tarja);


	$xls.="<tr><td>Numero</td><td>Tarja</td><td>Embalaje</td><td>Etiqueta</td><td>Kg.</td><td>Num. Cajas</td><td>Calibre</td></tr>\n";
	
	
$sql="select * from pf_envase order by nombre_envase";
$campo_texto="nombre_envase";
$campo_valor="id_envase";
$texto_defecto="--";
generar_combo($sql,$campo_valor,$campo_texto,&$arregloenvase,$texto_defecto);	


$sql="select * from pf_calibre order by nombre_calibre";
$campo_texto="nombre_calibre";
$campo_valor="id_calibre";
$texto_defecto="--";
generar_combo($sql,$campo_valor,$campo_texto,&$arreglocalibre,$texto_defecto);	
	
for ($i=0;$i<$num_tarja;$i++) {
	if (!$tarja[$i]) break;
	$es_sensor1=($i+1)." [".(($tarjasc[$i])?"X":"   ")."]";
	$es_envase1=buscarcombo(@$tarjase[$i],$arregloenvase);
	$es_calibre=buscarcombo(@$tarjascali[$i],$arreglocalibre);
	$k1=array($es_sensor1,@$tarja[$i],$es_envase1
		,$tarjaseti[$i],$tarjaskg[$i],$tarjascajas[$i],$es_calibre);	
	$xls.="<tr><td>".$es_sensor1."</td><td>".@$tarja[$i]."</td><td>".$es_envase1."</td><td>".$tarjaseti[$i]."</td><td>".$tarjaskg[$i]."</td><td>".$tarjascajas[$i]."</td><td>".$es_calibre."</td></tr>\n";
	
}	

$xls.="</table>";
	
		



$numsheet++;
$xlsmax[$numsheet]=$xls;
$xls="";		
//Determine a temporary file name in the current directory
$file2=basename(tempnam(getcwd(),'xls'));
$fechafile=date("j_m_Y_g_i_s");                 

$file2="../xls_encabezado_".$camara."_(".$fechafile.$i.").xls";
	$fp = fopen($file2, 'w');
	fwrite($fp, $xls2);
	fclose($fp);


echo"<br>";

for ($i=0;$i<=$numsheet;$i++) {
	$file="../xls_".$camara."_(".$fechafile.$i.").xls";
	echo "<b>Plantilla Excel :N ".($i+1)."</b> <a href='$file'>temperaturas</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href='$file2'>encabezado</a>";
	$xls=$xlsmax[$i];
	$fp = fopen($file, 'w');
	fwrite($fp, $xls);
	fclose($fp);

	$xls = str_replace("<table>", "<table border=1>", $xls);
	echo"<br>";
	echo"<div style='width:90%; height:300px;overflow:auto; BORDER: #000 1px solid ; '>";
	echo $xls2;
	echo "<br>";
	echo "<hr>";
	echo "<br>";
	echo $xls;
	echo "</div>";

}
				@ob_flush();
				@flush();
				@ob_flush();
				@flush();
echo "<br>";
echo "<br>";
echo "<br>";
echo "<br>";
echo "<br>";
				@ob_flush();
				@flush();
				@ob_flush();
				@flush();


//JavaScript redirection
if ($numsheet==0) {
	//echo "<HTML><SCRIPT>document.location='informe_prefrio_xls.php?f=$file';</SCRIPT></HTML>";
}
?> 