<?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);
$proceso0=parametro('proceso0',0);
$proceso1=parametro('proceso1',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);

	 leer_sensoresxproceso($celsius, $proceso0);


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 " . $proceso0." hasta ".$proceso1);
$pdf->SetSubject("Informe Prefrio Proceso " . $proceso0);
$pdf->SetFont('Times', '', 12);
$pdf->SetMargins(10, 10, 10, 10);
$pdf->SetAutoPageBreak(false, 10);

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

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

// temperatura***************************************************************************
$seccionnum++;
// ob_flush;
//for ($ext=0;$ext<20;$ext++) {
//leer_temp_pdf($tabla,$camara,$proceso,$inicio,$fin);
leer_todos_procesos(&$tabla,$camaras[$camara]["id_camara"],$proceso0,$proceso1,9999,9999,0,0);
//}
$num_elem=count($celsius) + 3;

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

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

	 $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->AddPage("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->AddPage("P");
	 $pdf->SetFont('Times', '', 8);
	 $max_elemxpage=49;
	 $w[0]=10;

	 for ($i=1; $i < $num_elem; $i++)
		  {
		  $ancho = ((196 - 20) / $num_elem);

		  $w[$i]=$ancho;
		  }
		$w[2]+=10;  
	 }
	
		$pdf->titulo1(array("Plantilla Resumen Camara :".$camaras[$camara]["nombre_camara"]));
		$pdf->linea();
		$pdf->linea();


$pdf->SetFillColor(255, 255, 255);
$pdf->SetTextColor(0);
$pdf->SetDrawColor(0, 0, 0);
$pdf->SetLineWidth(.1);
$pdf->SetFont('', '');
$k1[0]=" ";
$alineacion=array("L");
$k1[1]="Proc";
$k1[2]="Fecha";

for ($e=1; $e < $num_elem; $e++)
	 {
	 $alineacion[].="C";

	 if ($num_elem > 10)
		  {
		  $k1[$e+2]=@$celsius[$e - 1]["nombre"];
		  }
	 else
		  {
		  $k1[$e+2]=@$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]);
	if ($i % 2) {
		$k1[0]="S";
		$k1[1]=" ";
	} else {
		$k1[0]="E";
		$k1[1]=$tabla[0][$i];
	}
	

	 for ($e=1; $e < $num_elem; $e++)
		  {
		  $k1[$e+1]=@$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);
	 }
//}


//Determine a temporary file name in the current directory
//$file=basename(tempnam(getcwd(), 'pdf'));
$fechafile=date("j_m_Y_g_i_s");
$file="../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>";
?>