<?php
//require('fpdf.php');

class PDF_MC_Table extends FPDF
{
var $widths;
var $aligns;





function Footer()
{
    $this->SetY(-15);
    $this->SetFont('Arial','I',8);
    //$this->Cell(0,9,'Area Soporte Servicios Red Corporativa',2,0,'C');
    $this->Cell(0,10,'ATS INTECH Pág. #'.$this->PageNo(),2,0,'C');
	
}



function SetWidths($w)
{
    //Set the array of column widths
    $this->widths=$w;
}

function SetAligns($a)
{
    //Set the array of column alignments
    $this->aligns=$a;
}

function Row($data)
{
    //Calculate the height of the row
    $nb=0;
	
    for($i=0;$i<count($this->widths);$i++)
        $nb=max($nb,$this->NbLines($this->widths[$i],$data[$i]));
    $h=5*$nb;
    //Issue a page break first if needed
    $this->CheckPageBreak($h);
    //Draw the cells of the row
    for($i=0;$i<count($this->widths);$i++)
    {
        $w=$this->widths[$i];
        $a=isset($this->aligns[$i]) ? $this->aligns[$i] : 'L';
        //Save the current position
        $x=$this->GetX();
        $y=$this->GetY();
        //Draw the border
        $this->Rect($x,$y,$w,$h,'DF');
        //Print the text
        $this->MultiCell($w,5,$data[$i],0,$a,0);
        //Put the position to the right of the cell
        $this->SetXY($x+$w,$y);
    }
    //Go to the next line
    $this->Ln($h);
}
function Rowborderless($data)
{
    //Calculate the height of the row
    $nb=0;
	
    for($i=0;$i<count($this->widths);$i++)
        $nb=max($nb,$this->NbLines($this->widths[$i],$data[$i]));
    $h=5*$nb;
    //Issue a page break first if needed
    $this->CheckPageBreak($h);
    //Draw the cells of the row
    for($i=0;$i<count($this->widths);$i++)
    {
        $w=$this->widths[$i];
        $a=isset($this->aligns[$i]) ? $this->aligns[$i] : 'L';
        //Save the current position
        $x=$this->GetX();
        $y=$this->GetY();
        //Print the text
        $this->MultiCell($w,5,$data[$i],0,$a,0);
        //Put the position to the right of the cell
        $this->SetXY($x+$w,$y);
    }
    //Go to the next line
    $this->Ln($h);
}

function CheckPageBreak($h)
{
    //If the height h would cause an overflow, add a new page immediately
    if($this->GetY()+$h>$this->PageBreakTrigger)
        $this->AddPage($this->CurOrientation);
}

function NbLines($w,$txt)
{
    //Computes the number of lines a MultiCell of width w will take
    $cw=&$this->CurrentFont['cw'];
    if($w==0)
        $w=$this->w-$this->rMargin-$this->x;
    $wmax=($w-2*$this->cMargin)*1000/$this->FontSize;
    $s=str_replace("\r",'',$txt);
    $nb=strlen($s);
    if($nb>0 and $s[$nb-1]=="\n")
        $nb--;
    $sep=-1;
    $i=0;
    $j=0;
    $l=0;
    $nl=1;
    while($i<$nb)
    {
        $c=$s[$i];
        if($c=="\n")
        {
            $i++;
            $sep=-1;
            $j=$i;
            $l=0;
            $nl++;
            continue;
        }
        if($c==' ')
            $sep=$i;
        $l+=$cw[$c];
        if($l>$wmax)
        {
            if($sep==-1)
            {
                if($i==$j)
                    $i++;
            }
            else
                $i=$sep+1;
            $sep=-1;
            $j=$i;
            $l=0;
            $nl++;
        }
        else
            $i++;
    }
    return $nl;
}

/* ************************************************* FORMATO ************************/

	function h($datos,$w) {
		$this->SetFont('Arial','',11);
		
		$this->SetFillColor(231,231,231);
		$this->SetTextColor(0);
		$this->SetDrawColor(0,0,0);
		$this->SetLineWidth(.1);
		$this->SetFont('','B');
		$this->SetWidths($w);
		$this->row($datos);				
	}
	function h1($datos) {
		$w=array(22,23,17,60,38); // 160
		$this->h($datos,$w);
		
	}
	function h2($datos) {
		$w=array(80,80); // 160
		$this->h($datos,$w);
	}
	function h3($datos) {
		$w=array(50,110); // 160
		$this->h($datos,$w);
	}

	function h4($datos) {
		$w=array(10,90,40,20); // 160
		$this->h($datos,$w);
	}

	function h5($datos) {
		$w=array(160); // 160
		$this->h($datos,$w);
	}	
	
	function d($datos,$w) {		
		$this->SetFillColor(255,255,255);
		$this->SetTextColor(0);
		$this->SetDrawColor(0,0,0);
		$this->SetLineWidth(.1);
		$this->SetFont('','');		
		$this->SetWidths($w);
		$this->row($datos);				
	}	
	
	function d1($datos) {
	$w=array(20,40,25,20,30,25); // 160
	$this->d($datos,$w);
	
	}

	function d2($datos) {
		$w=array(40,120); // 160
		$this->SetWidths($w);
		$this->d($datos,$w);			
	}	

	function d3($datos) {
		$w=array(10,70,80); // 160
		$this->SetWidths($w);
		$this->d($datos,$w);			
	}		
	function d4($datos) {
		$w=array(10,90,35,25);
		$this->d($datos,$w);
	}	

	function d5($datos) {
		$w=array(10,150); // 160
		$this->d($datos,$w);
	}		

	
	function cabecera($titulo,$orientacion="L",$extendido=0) {
		global $prefrio,$nombretipoprefrio,$nombrecamara;
		global $tituloreporte1,$tituloreporte2;
		global $finicial,$ffinal;
		
		global $procesos,$proceso,$camaras,$camara;
		global $armin,$armax;
		
		global $inicio,$fin;
		

		$prefriotmp=$prefrio % 100000;
		$this->AddPage($orientacion);
		
		$datos=array("Ats Intech","","","","","  Página N° ".$this->PageNo());
		$this->n6b($datos,"");
		if ($proceso) {
			$datos=array("Id Proceso :N°$proceso","","","","",$tituloreporte1);
		} else {
			$datos=array("Id Camara :".$camaras[$camara]["nombre_camara"],"","","","",$tituloreporte1);
		}
		$this->n6b($datos,"");
		
		$datos=array("","","","","",$tituloreporte2);
		$this->n6b($datos,"");
		if ($proceso) {
			$datos=array("INFORME DE PROCESO");
		} else {
			$datos=array("INFORME DE CAMARA");
		}
		$this->titulo1($datos);
		$datos=array(trim($nombretipoprefrio));
		$this->titulo1($datos);
		$this->linea();
		$datos=array($titulo);
		$this->n6($datos,"B");
		$this->linea();
		$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");
		}
		$this->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>";
		}
		$this->n7($datos,"");
		$datos=array("Origen","Destino","Estado","Frecuencia"," ");
		$datos=array("Condicion","Operador Inicial","Operador Final","Frecuencia","Duración");
		$this->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);
		$this->n7($datos,"");		
		if ($extendido) {
		$this->linea();	
		$datos=array("Operador Inicial","Operador Final");
		$this->n7borde($datos,"B");
		$datos=array($procesos[11],$procesos[18]);
		$this->n7borde($datos,"");	

		$datos=array("Condicion Inicial","Condicion Final");
		$this->n7borde($datos,"B");
		$datos=array($procesos[8],$procesos[19]);
		$this->n7borde($datos,"");	
		// argentina
		$datos=array("Inspector Inicial","Inspector Final");
		$this->n7borde($datos,"B");
		$datos=array($procesos[24],$procesos[31]);
		$this->n7borde($datos,"");	

	
		
		$datos=array("Lectura Minima del Proceso","Lectura Maxima del Proceso");
		$this->n7borde($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);
		$this->n7borde($datos,"");			
		
		$datos=array("Inicio Vuelta 1","Fin Vuelta 1");
		$this->n7borde($datos,"B");
		$datos=array($procesos[12],$procesos[13]);
		$this->n7borde($datos,"");			
		$datos=array("Inicio Vuelta 2","Fin Vuelta 2");
		$this->n7borde($datos,"B");
		$datos=array($procesos[14],$procesos[15]);
		$this->n7borde($datos,"");		
		$datos=array("Inicio Vuelta 3","Fin Vuelta 3");
		$this->n7borde($datos,"B");
		$datos=array($procesos[16],$procesos[17]);
		$this->n7borde($datos,"");		

		$datos=array("Inicio Vuelta 4","Fin Vuelta 4");
		$this->n7borde($datos,"B");
		$datos=array($procesos[27],$procesos[28]);
		$this->n7borde($datos,"");	


		$datos=array("Inicio Vuelta 5","Fin Vuelta 5");
		$this->n7borde($datos,"B");
		$datos=array($procesos[29],$procesos[30]);
		$this->n7borde($datos,"");			
	}
	$this->linea();	
		
	}
	
	function linea() {	
		$this->Ln(5);
	}
	function titulo1($datos) {
		$this->SetFont('','BU',10);
		$this->Cell(186,5,$datos[0],0,0,"C");
		$this->Ln();
	}
	
	function n6($datos,$b) {
		$par=0;
		$num=count($datos);
		for ($i=0;$i<$num;$i++) {
			$par++;
			if ($par>1) { 
				$this->SetFont('','',10);
				$this->Cell(186/$num,5,$datos[$i],0,0,"L");	
				$par=0;
				} else {
				$this->SetFont('',$b,10);
				$this->Cell(186/$num,5,$datos[$i],0,0,"L");	
				}		
		}
		$this->Ln();
	}
	function n6b($datos,$b) {
	/*	$par=0;
		$num=count($datos);
		$alineacion="L";
		for ($i=0;$i<$num;$i++) {
			$par++;
			if ($i>=4) {
				$alineacion="R";
			}
			if ($par>1) { 
				$this->SetFont('','',10);
				
				$this->Cell(186/$num,5,$datos[$i],0,0,$alineacion);	
				$par=0;
				} else {
				$this->SetFont('',$b,10);
				$this->Cell(186/$num,5,$datos[$i],0,0,$alineacion);	
				}		
		}
		$this->Ln();
		*/
		$w=array(31,31,31,31,31,31);
		$this->aligns=array('L','L','L','R','R','R');
		$this->SetFillColor(255,255,255);
		$this->SetTextColor(0);
		$this->SetDrawColor(0,0,0);
		$this->SetLineWidth(0);
		$this->SetFont('',$b);		
		$this->SetWidths($w);
		$this->Rowborderless($datos);			
	}	
	
	function n7($datos,$b) {
	
		/*$num=count($datos);
		for ($i=0;$i<$num;$i++) {
			$this->SetFont('',$b,10);
			$this->Cell(186/$num,5,$datos[$i],0,0,"L");			
		}
		$this->Ln();
		*/
		$num=count($datos);
		$w=array_fill(0,$num,186/$num);		
		$this->aligns=array_fill(0,$num,"L");
		$this->SetFillColor(255,255,255);
		$this->SetTextColor(0);
		$this->SetDrawColor(0,0,0);
		$this->SetLineWidth(0);
		$this->SetFont('',$b);		
		$this->SetWidths($w);
		$this->Rowborderless($datos);			
	}

	function n7borde($datos,$b) {
	
		/*$num=count($datos);
		for ($i=0;$i<$num;$i++) {
			$this->SetFont('',$b,10);
			$this->Cell(186/$num,5,$datos[$i],0,0,"L");			
		}
		$this->Ln();
		*/
		$num=count($datos);
		$w=array_fill(0,$num,186/$num);		
		$this->aligns=array_fill(0,$num,"L");
		$this->SetFillColor(255,255,255);
		$this->SetTextColor(0);
		$this->SetDrawColor(0,0,0);
		$this->SetLineWidth(.1);
		$this->SetFont('',$b);		
		$this->SetWidths($w);
		$this->Row($datos);			
	}	
	function n20($datos,$anchodatos,$b) {
		$num=count($datos);
		for ($i=0;$i<$num;$i++) {
			$this->SetFont('',$b,6);
			$this->Cell(186*$anchodatos[$i]/100,3,$datos[$i],0,0,"L");			
		}
		$this->Ln();
	}
	
	function n8($datos,$anchodatos,$bolddatos) {
		$num=count($datos);
		for ($i=0;$i<$num;$i++) {
				$this->SetFont('',$bolddatos[$i],10);
				$this->Cell(186*$anchodatos[$i]/100,4,$datos[$i],0,0,"L");			
		}
		$this->Ln();
	}
	
	


}


?>