<?php
require_once(dirname(dirname(__FILE__))."/paineladm/funcoes.php");
$pathlocal = dirname(__FILE__);
//require_once(dirname($pathlocal)."/paineladm/classes/fpdf.class.php");
//require_once(dirname($pathlocal)."/paineladm/classes/sessao.class.php");
$material = $_COOKIE['material'];
$sessao = new sessao();
$modelo=$sessao->getVar('controle');
$preenchimento=$sessao->getVar('controle1');

$cliente=$sessao->getVar('cliente');
$senhaCli=$sessao->getVar('iduser');
$idLabo=$sessao->getVar('idLabo');
$inicio=$sessao->getVar('inicio');
$final=$sessao->getVar('final');
$anoCorrente=$sessao->getVar('anocorrente');
$anoAmostra=$anoCorrente;
$finalidade=$sessao->getVar('finalidade');
echo ("finalidade= $finalidade<br>");
$enquadramento=$finalidade;
$nomeOperador=$sessao->getVar('nomeuser');
$amostraLong=$sessao->getVar('amostraLong');
//echo("amostralong= $amostraLong<br>");
$objetocalculo = new calculos(); //calcula todos valores finais
$vetorCabecalho=$objetocalculo->dadoslaboratorio();

$pdf=new FPDF('L','mm','A4'); //parametos da pagina 
			 $pdf->open();//abre o fpdf

			 $pdf->SetFont('Arial','',7);
			 $pdf->SetDrawColor(10,10,10);
			 $maximoHAdobe=297;//isso para vertical
			 $maximoLAdobe=210;//isso para vertical
			 $maximoLAdobe=297;//isso para horizontal
			 $maximoHAdobe=210;//isso para horizontal
		     $margemEsquerdaExterna=10;
		     $margemEsquerda=10;
			 $margem=$margemEsquerda;
			 $margemDireita=$maximoLAdobe-6;
			 $larguraUtil=$maximoLAdobe-16;
			 $futer=$maximoHAdobe-10;
			 //$larguraUtil=$maximoLAdobe;
			 $cinza=220;
		     //$fonte="Arial";
			 $nomeOperador=5;
			 $pdf->SetFillColor($cinza,$cinza,$cinza); 

			//aqi imprime O ULTIMO..
			//$matrizLargura[13]=70;
     		$pdf->setXY(239,$cota1);
			$largura=$matrizLargura[13];
			$larguraTexto=ceil($largura*.7);
			$texto=$matrizTitulo[13];
			$texto=substr($texto,0,$largura);//pois as vezes vai acavalar alguns textos
		    $pdf->Cell($largura,10,utf8_decode($texto),1,0,'C',1);//lab nome






            //cria o array conteudo################################################33
			//ENTRA DE QUAKQUER MANEIRA
			$generica=new tabelagenerica();
			$generica1=new tabelagenerica();
			//echo $finalidade;
			
			$campos=" select fic_amostra, fic_lote,ctv_nome,esp_nome, prd_nome,fic_categoria,fic_safra,fic_dt_entrada,fic_repre_unid,fic_id,fic_observacao,fic_procedencia ";
			   $generica->extras_select =$campos ."  from  ficha,cultivar,remetente,amostrador,especies  where fic_amostra>='".$inicio."' &&   fic_amostra<='".$final."'            && prd_id=fic_produtor   && amt_id=fic_amostrador && fic_cultivar=ctv_id   && ctv_especie=esp_id  and fic_ano='".$anoCorrente."'  && fic_labo=" . $idLabo." order by fic_amostra";
			   
        
			$generica->selecionaCamposEspecial($generica);
			$contador=1;
            //vou criar a matriz de conteudos que vai ter linhas e colunas
			while ($resgenerica= $generica->retornaDados()):
				$amostraLong=$resgenerica->fic_id;
			    $vetorAmostraBruto=$objetocalculo->capturaGeralAmostra($amostraLong);//captura TUDO 
    
                $matrizConteudo[$contador][1]=str_pad($resgenerica->fic_amostra, 4, "0", STR_PAD_LEFT).'/'.date("y",strtotime($resgenerica->fic_dt_entrada));
                //$matrizConteudo[$contador][2]=$resgenerica->fic_tta;
                $matrizConteudo[$contador][2]=date("d/m/y",strtotime($resgenerica->fic_dt_entrada));
                $matrizConteudo[$contador][3]=$resgenerica->prd_nome;
                $matrizConteudo[$contador][4]=$resgenerica->fic_procedencia;
                $matrizConteudo[$contador][5]=$resgenerica->esp_nome;
                $matrizConteudo[$contador][6]=$resgenerica->ctv_nome;
                $matrizConteudo[$contador][7]=$resgenerica->fic_lote;
			    $matrizConteudo[$contador][8]=$vetorAmostraBruto[90];//repres
                $matrizConteudo[$contador][9]=$resgenerica->fic_safra;
                $matrizConteudo[$contador][10]=$resgenerica->fic_categoria;
                $funcao=$resgenerica->fic_funcao;				
                //Se a funcao for MONITORAR QUALIDADE ele pega a data do teste de gemrinacao
				//caso contrariro pega o numero do documento(se houver)
				$documento="";
				$dataDoc="";

                   //captura o numero do documento e o tipo
				   //ENTRA DE QUAKQUER MANEIRA
					$genericaDoc=new tabelagenerica();
					$genericaDoc->tabela="documentosponte,documentos";
					$genericaDoc->campos_valores = array(
						   "doc_numero" => NULL,
						   "doc_tipo" => NULL,
						   "doc_data" => NULL,
					);
					$genericaDoc->extras_select =" where dpo_documento_autonumerador=doc_id &&  dpo_amostra_vinculada=".$amostraLong;
					$genericaDoc->selecionaCampos($genericaDoc);
					while ($resgenericaDoc= $genericaDoc->retornaDados()):
		               $tipoDoc=$resgenericaDoc->doc_tipo;
		               $numeroDoc=$resgenericaDoc->doc_numero;
		               $dataDoc=date("d/m/y",strtotime($resgenericaDoc->doc_data));  
					   $documento=substr($tipoDoc,0,1).str_pad($numeroDoc, 4, "0", STR_PAD_LEFT).date("/y",strtotime($resgenericaDoc->doc_data));
					   //AQUI APAGA A CULTIVAR SE O DOCUMENTO FOR INFORME
					   if(substr($tipoDoc,0,1)=='I')$matrizConteudo[$contador][6]='-O-';
                       //$documento='dafo';
                    endwhile;      
				
			    $matrizConteudo[$contador][11]=$documento;//
			    $matrizConteudo[$contador][12]=$dataDoc;//
			    $matrizConteudo[$contador][13]=$resgenerica->fic_observacao;//

                $amostraLong=$resgenerica->fic_id;
				

			    $contador++;
                //if($contador>30)break;
			endwhile; 
			$totalPaginas=ceil($contador/30);//arredonda para cima

			
			//	$pdf->Cell($largura,5,"xxxxxxxxxxxxxxx" .$contador ." limite=". $limite,1,0,'L');//lab nome		
//agora imprime	o corpo		
//o indice vai permitir eu imprimir na ordem que eu quiser e inclusive suprimir linhas	
			//se a pessoa quer imprimir um protocolo vazio(para documentação da qualidade)
			if($preenchimento=="branco"):
               $contador=0;
			endif;
			
            //para cada modelo defino as larguras e os titulos. Suprimo as colunas que nao usar
			//com isso ja consigo que ele me mostre so o que eu realmente quero no livro
			//no vetor indices eu digo quais as colunas e em que posicao relativa
			$matrizLargura[1]=12;$matrizTitulo[1]='Amostra';
			$matrizLargura[2]=12; $matrizTitulo[2]='Data';//era 18
			$matrizLargura[3]=55; $matrizTitulo[3]='Requerente';//era37
			$matrizLargura[4]=19; $matrizTitulo[4]='Procedência';//era25
			$matrizLargura[5]=19; $matrizTitulo[5]='Espécie';//era25
			$matrizLargura[6]=23; $matrizTitulo[6]='Cultivar';
			$matrizLargura[7]=19; $matrizTitulo[7]='Lote';
			$matrizLargura[8]=25; $matrizTitulo[8]='Repres.';//renasem do requerente
			$matrizLargura[9]=15; $matrizTitulo[9]='Safra';
			$matrizLargura[10]=16; $matrizTitulo[10]='Categoria';
			$matrizLargura[11]=15; $matrizTitulo[11]='DocTo';
			$matrizLargura[12]=15; $matrizTitulo[12]='Data';
			$matrizLargura[13]=33; $matrizTitulo[13]='Observação';
			$limite=sizeof($matrizLargura);
			//cria 13 posicoes para usar com set xy
			$distancia=$margem;
			for($i=1;$i<=$limite;$i++):
               $posicoes[$i]=	$distancia;		
			   $distancia+=$matrizLargura[$i];
			endfor;
			

		    $cinza=230;
			$pdf->SetFillColor($cinza,$cinza,$cinza); 
			$pdf->SetFont('Arial','',7);	
			$contadorLinhasPagina=0;
			
			
			//cria a tabela que vai exportar para excel
			$tabela = '<table border="1">';
			$tabela .= '<tr>';
			 $tabela .= '<td colspan="8">Exportacao de dados para Excel - Sistema SilasNet</tr>';//usa para o titulo tantas colunas quanto foi definido em coslpan
			 $tabela .= '</tr>';
			 $tabela .= '<tr>';
			 for($je=1;$je<=20;$je++):
				$tabela .= '<td>'.utf8_decode($matrizTitulo[$je]).'</td>';
			 endfor;
			 //so para ver como adiciona as colunas...hihihi
			 //$tabela .= '<td><b>Nome</b></td>';
			 //$tabela .= '<td><b>Email</b></td>';
			 $tabela .= '</tr>';
			 $vetorNormas=$objetocalculo->capturaNormas("Protocolo","Padrao",$idLabo);
             $pagina=$vetorNormas[2]-1;//vai digitar o numero da pagina que deseja que saia na seeuencia

			$contadorLinhasPagina=0;
			for($i=1;$i<=$contador;$i++):
			    $cota1+=4.5;
			    //imprime o timbrado
                //se o contador é igual a 0, imprime o timbrado  
				if($contadorLinhasPagina==0):
				    $pdf->AddPage();//adicionando a primera pafina 
					$pagina++;
					$cota1=4.5;
					$pdf->Rect($margemEsquerda,$cota1,$larguraUtil-3,20,'FD');//sintaxe do rect  (x,y,largura,altura'fill draw'	

                    //$pdf->SetFont('Times','',7);
			        //cabecalho
				 	$posicaoCab1=60;$posicaoCab2=245;
		            $caminhoFinal="ImagensClientes/i".$idLabo.".JPG";
		            $pdf->Image($caminhoFinal,11,7,24,12,'JPG');
					$cota1=5;			
					$pdf->SetFont('Arial','B',10);
					$pdf->setXY($posicaoCab1,$cota1);$pdf->Cell(140,5,utf8_decode('Laboratório de Análise de Sementes'),0,1,'C');
	     			$pdf->setXY($posicaoCab1,$cota1+5);$pdf->Cell(140,5,utf8_decode('FORMULÁRIO'),0,1,'C');//lab nome
	     			$pdf->setXY($posicaoCab1,$cota1+10);$pdf->Cell(140,5,utf8_decode('LIVRO DE PROTOCOLO'),0,1,'C');//lab nome
					 $posicaoNorma=248;
					 $pdf->SetFont('Arial','',7);
					 $pdf->Rect($posicaoNorma,5,40,15);
					 $pdf->setXY($posicaoNorma,5);  $pdf->Cell(40,4,utf8_decode("Identificação:".$vetorNormas[1]),0,0);
					 $pdf->setXY($posicaoNorma,9);  $pdf->Cell(40,4,utf8_decode("Página:".$pagina.'/'.$anoCorrente),0,0);
					 $pdf->setXY($posicaoNorma,13);  $pdf->Cell(40,4,utf8_decode("Data Emissão:".$vetorNormas[3]),0,0);
			 
			 
                    $pdf->SetFont('Arial','',7);

		            //aqui imprime a linha de cabecalho //posso negrita/ colocar hachurrado etc 
		            $cota1=$cota1+21;
					$pdf->setXY($margemEsquerda,$cota1-7);
					//$pdf->Cell(50,5,utf8_decode('Ano:'.$anoCorrente),1,0,'L',1);//lab nome
		            $pdf->Rect($margemEsquerda,$cota1,$larguraUtil-3,10,'FD');//sintaxe do rect  (x,y,largura,altura'fill draw'	
					//imprime casuismo da amostra		
					$pdf->setXY($posicoes[1],$cota1+1);$pdf->Cell($matrizLargura[1],4,utf8_decode('Amostra'),0,0,'C');
		     		$pdf->setXY($margemEsquerda,$cota1+5);$pdf->Cell($matrizLargura[1],4,utf8_decode('Nº'),0,0,'C');

					//aqi imprime varios que sao normais...
		     		$pdf->setXY($margemEsquerda+$matrizLargura[1],$cota1);
					for($j=2;$j<=10;$j++):
						$largura=$matrizLargura[$j];
						$larguraTexto=ceil($largura*.7);
						$texto=$matrizTitulo[$j];
						$texto=substr($texto,0,$largura);//pois as vezes vai acavalar alguns textos
		     			$pdf->Cell($largura,10,utf8_decode($texto),1,0,'C',1);//lab nome
					endfor;

					//imprime casuismo do laudo		
					$pdf->setXY($posicoes[11],$cota1);$pdf->Cell(30,5,'Boletim/Informativo',1,0,'C');
		     		$pdf->setXY($posicoes[11],$cota1+5);$pdf->Cell(15,5,utf8_decode('Nº'),1,0,'C');
		     		$pdf->Cell(15,5,utf8_decode('Data'),1,0,'C');
					$pdf->setXY($posicoes[13],$cota1+2.5);
		     		$pdf->Cell($matrizLargura[13],5,utf8_decode('Observação'),0,0,'C');
					$cota1=36;
                    ////////////////////////
                    $pdf->SetFont('Arial','',6);
					
				endif;//aqui encerra o if que controla o contador de paginas e imprime cabecalho e dao salto de pagina




			
			    //negritar linhas de cores alternadas
				$file=0;  
			    if($i % 2 == 0):
				    $file=1;
			    endif;	
				
					
				$pdf->setXY($margemEsquerda,$cota1);
	            $tabela .= '<tr>';
                for($j=1;$j<=$limite;$j++): 
					$largura=$matrizLargura[$j];
					$larguraTexto=ceil($largura*.7);
					$texto=$matrizConteudo[$i][$j];
					$tabela .= '<td>'.$texto.'</td>';
					$texto=substr($texto,0,$larguraTexto);//pois as vezes vai acavalar alguns textos
				    $pdf->Cell($largura,4.5,utf8_decode($texto),1,0,'C',$file);//lab nome
                endfor;
		        $tabela .= '</tr>';
				///////////vai colocar o rodape//////////////////////////
				
			    $contadorLinhasPagina++;
				//para forcar sair a assinatura toda vez que troca o numero de pagina
				if($contadorLinhasPagina==25):
				   $contadorLinhasPagina=0;
                endif;
				if($contadorLinhasPagina==0)://colocar 30 depois
				   //SETOR DO RODAPE
					$cotaR1=190;
					//terminou de imprimir resultado agora vi para observacoes tecico e assinatura
				     $cota4=150;
				     $vetorTecnico=$objetocalculo->dadostecnico($idLabo,'BOLE');
				     $cota7=$cota4;
					 $cotaLinha=$cota4;
				     $pdf->setXY(150,$cota7-10);
					 $base[4][3]=$vetorTecnico[1];
					 $base[5][3]="RENASEM:".$vetorTecnico[3]."  CREA:".$vetorTecnico[2];
					 $base[6][3]=$vetorTecnico[7];// seria o cargo?
					 $pdf->SetXY(150,$cota7);$pdf->Cell(90,5,utf8_decode($base[1][3]),0,1,'L');	
				     $pdf->Line(150,$cota7+25,250,$cota7+25);//linha separadora horizontal
					 $pdf->SetXY(150,$cota7+26);$pdf->Cell(90,5,utf8_decode($base[4][3]),0,1,'C');	
					 $pdf->SetXY(150,$cota7+31);$pdf->Cell(90,5,utf8_decode($base[5][3]),0,1,'C');	
					 $pdf->SetXY(150,$cota7+36);$pdf->Cell(90,5,utf8_decode($base[6][3]),0,1,'C');	//ESTE ITEM É ASSINATURA SIM;NAO	
					$pdf->SetFont('Arial','',7);
				endif;
				//////////////////////////////
            endfor;
			
		   $tabela .= '</table>';
		   $sessao->setVar('controleExcel',$tabela);
   				
				/////////////
			//endfor;
//vai imprimir na nultima pagina
				   //SETOR DO RODAPE
                 //vai fazer a pergunta se contador linhaspagina >0 para que nao imrpruma duas vezes o rodape
				 if($contadorLinhasPagina>0):
					$cotaR1=190;
					//terminou de imprimir resultado agora vi para observacoes tecico e assinatura
				     $cota4=150;
				     $vetorTecnico=$objetocalculo->dadostecnico($idLabo,'BOLE');
				     $cota7=$cota4;
					 $cotaLinha=$cota4;
				     $pdf->setXY(150,$cota7-10);
					 $base[4][3]=$vetorTecnico[1];
					 $base[5][3]="RENASEM:".$vetorTecnico[3]."  CREA:".$vetorTecnico[2];
					 $base[6][3]=$vetorTecnico[7];// seria o cargo?
					 $pdf->SetXY(150,$cota7);$pdf->Cell(90,5,utf8_decode($base[1][3]),0,1,'L');	
				     $pdf->Line(150,$cota7+25,250,$cota7+25);//linha separadora horizontal
					 $pdf->SetXY(150,$cota7+26);$pdf->Cell(90,5,utf8_decode($base[4][3]),0,1,'C');	
					 $pdf->SetXY(150,$cota7+31);$pdf->Cell(90,5,utf8_decode($base[5][3]),0,1,'C');	
					 $pdf->SetXY(150,$cota7+36);$pdf->Cell(90,5,utf8_decode($base[6][3]),0,1,'C');	//ESTE ITEM É ASSINATURA SIM;NAO	
					$pdf->SetFont('Arial','',7);
                 endif;





			
			
			ob_clean(); // Quando usava essa classe o ob_clean() resolvia meu problema
$pdf->Output("arquivo.pdf","I");

		
		
?>
