<?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




$pdf=new PDF_MC_Table("P","mm","Letter");
$pdf->SetAuthor("Jorge Castro Castillo");
$pdf->SetCreator("PREFRIO ATS INTECH 2007");
$pdf->SetTitle("Informe Prefrio Proceso ".$proceso);
$pdf->SetSubject("Informe Prefrio Proceso ".$proceso);
$pdf->SetFont('Times','',12);
$pdf->SetMargins(10,10,10,10);
$pdf->SetAutoPageBreak(false,10);

$pdf->SetTitle("Documento");
$pdf->SetFont('','',8);


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

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




if (!$inicio) {
	$seccionnum++;
	$pdf->cabecera("$seccionnum.- Resumen del Proceso","P",1);
}
// temperatura***************************************************************************
$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]);




if ($num_elem>30 and $num_elem<=40) {
	//$pdf->AddPage("L");
	$pdf->cabecera("$seccionnum.- Listado de Temperaturas","L");

	$pdf->SetFont('Times','',6);
	$w[0]=16;
	$max_elemxpage=39;
	for ($i=1;$i<$num_elem;$i++) {
		$ancho=((269-16)/$num_elem);
		
		$w[$i]=$ancho;
	}
} 
if ($num_elem>40) {
	$pdf->cabecera("$seccionnum.- Listado de Temperaturas","L");
	$pdf->SetFont('Times','',5);
	$max_elemxpage=39;
	$w[0]=12;
	for ($i=1;$i<$num_elem;$i++) {
		$ancho=((269-12)/$num_elem);
		
		$w[$i]=$ancho;
	}
} 

if ($num_elem>15 and $num_elem<=30) {
	$pdf->cabecera("$seccionnum.- Listado de Temperaturas","P");
	$pdf->SetFont('Times','',5);	
	$max_elemxpage=49;
	$w[0]=12;
	for ($i=1;$i<$num_elem;$i++) {
		$ancho=((196-12)/$num_elem);
		
		$w[$i]=$ancho;
	}	
}
if ($num_elem<=15) {
	$pdf->cabecera("$seccionnum.- Listado de Temperaturas","P");
	$pdf->SetFont('Times','',8);	
	$max_elemxpage=49;
	$w[0]=20;
	
	for ($i=1;$i<$num_elem;$i++) {
		$ancho=((196-20)/$num_elem);
	
		$w[$i]=$ancho;
	}	
}






/* normal */
/*
$w[0]=12;
$k1[0]="99/99/99 33:33";
for ($i=1;$i<50;$i++) {
$ancho=((269-12)/50);
$k1[$i]="-55.5";
$w[$i]=$ancho;
}
$pdf->SetFont('Times','',5);
*/

		$pdf->SetFillColor(255,255,255);
		$pdf->SetTextColor(0);
		$pdf->SetDrawColor(0,0,0);
		$pdf->SetLineWidth(.1);
		$pdf->SetFont('','');
			$k1[0]=" ";
			$alineacion=array("L");
			for ($e=1;$e<$num_elem;$e++) {
				$alineacion[].="C";
				if ($num_elem>10) {
					$k1[$e]=$celsius[$e-1]["nombre"];
				} else {
					$k1[$e]=$celsius[$e-1]["nombre"];
				}
			}		
			
		$pdf->SetWidths($w);
		$pdf->SetAligns($alineacion);
		$pdf->row($k1);

		$pdf->SetFillColor(255,255,255);
		$pdf->SetTextColor(0);
		$pdf->SetDrawColor(0,0,0);
		$pdf->SetLineWidth(.1);
		$pdf->SetFont('','');
		$pdf->SetWidths($w);
		$contador=13;
//for ($ext=0;$ext<20;$ext++) {
		
		for ($i=0;$i<$num_lectura;$i++) {
			$contador++;
			
			//$k1[0]=fechalarga($tabla[0][$i]);
			$k1[0]=$tabla[0][$i];
			for ($e=1;$e<$num_elem;$e++) {
				$k1[$e]=@$tabla[$e][$i];
			}
			
			if ($contador>=$max_elemxpage) {
				if ($num_elem>30) {
					$pdf->AddPage("L");
				} else {
					$pdf->AddPage("P");
				}
				$contador=0;
			}
			if ($i % 2) {
				$pdf->SetFillColor(230,230,230);
			} else {
				$pdf->SetFillColor(255,255,255);
			}
			if (($i % 300) == 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>";
				}					
								
			}
		$pdf->row($k1);	
		}
	//}

		
// LOG		***************************************************************************
//$pdf->AddPage("P");	

if (!$inicio) {
	$seccionnum++;	
	$pdf->cabecera("$seccionnum.- Listado de Estados","P");
	leer_estado_pdf($estadolog,$proceso);

	//debug($estadolog);

	$num_log=count($estadolog);

			$pdf->SetFillColor(255,255,255);
			$pdf->SetTextColor(0);
			$pdf->SetDrawColor(0,0,0);
			$pdf->SetLineWidth(.1);
			$pdf->SetFont('','');
			$w=array(40,100);
			$pdf->SetWidths($w);
		$pdf->SetFillColor(230,230,230);
		$k1=array("Fecha","Evento");
		$pdf->row($k1);
		$pdf->SetFillColor(255,255,255);
	for ($i=0;$i<$num_log;$i++) {
		$k1=array($estadolog[$i][2],$estadolog[$i][3]);	
		$pdf->row($k1);
	}
}
// tarja ***************************************************************************	
$seccionnum++;	
$pdf->cabecera("$seccionnum.- Listado de Tarjas","P");
//leer_tarjaxproceso($tarja,$tarjase,$tarjasc,$proceso);

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

//debug($estadolog);

$num_tarja=count($tarja);

		$pdf->SetFillColor(255,255,255);
		$pdf->SetTextColor(0);
		$pdf->SetDrawColor(0,0,0);
		$pdf->SetLineWidth(.1);
		$pdf->SetFont('','');
		$w=array(18,24,24,24,22,22,24);
		$pdf->SetWidths($w);
	$pdf->SetFillColor(230,230,230);
	$alineacion=array("L","L","L","L","L","L","L");
	$pdf->SetAligns($alineacion);
	$k1=array("Numero","Tarja","Embalaje","Etiqueta","Kg.","Num. Cajas",CALIBRE);
	$pdf->row($k1);
	$pdf->SetFillColor(255,255,255);
	
	
$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);	
	
	$pdf->row($k1);
}	
$w=array(30,50,30,50);
$pdf->SetWidths($w);
	
	
		


// grafico ***************************************************************************	

$seccionnum++;	

if (count($tabla[0])>3) {
	$pdf->cabecera("$seccionnum.- Grafico","P");
	$yactual=$pdf->GetY();
	$link=crearlinkgenerico("grafico3.php?_jpg_csimd=1&camara=$camara&proceso=$proceso&escala_minima=-56&escala_maxima=56&rango=0");
	$pdf->Image($link,20,$yactual,186,250-$yactual,"jpg");
}


// debug...�
/*
	$memoria_total=ini_get("memory_limit")*1;
	$memoria_usada=floor(memory_get_peak_usage(true)/1048576);
	$memoria_libre=floor(($memoria_total-$memoria_usada)*1000/$memoria_total)/10;


	$k1=array($memoria_total,$memoria_usada,$memoria_libre,"Etiqueta","Kg.","Num. Cajas","Calibre");
	$pdf->row($k1);
*/	
// debug	


//Determine a temporary file name in the current directory
$file=basename(tempnam(getcwd(),'pdf'));
$fechafile=date("j_m_Y_g_i_s");                 
$file="c:/ats/pf_".$camara."_($fechafile).pdf";
echo "Si no abre la ventana, abra <a href='$file'>aqui</a>";
				@ob_flush();
				@flush();
				@ob_flush();
				@flush();
echo "<br>";
echo "<br>";
echo "<br>";
echo "<br>";
echo "<br>";
				@ob_flush();
				@flush();
				@ob_flush();
				@flush();

//Save PDF to file
$pdf->Output($file);
//JavaScript redirection
echo "<HTML><SCRIPT>document.location='informe_prefrio.php?f=$file';</SCRIPT></HTML>";
?> 