<?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');
$finalidade=$sessao->getVar('finalidade');
$cliente=$sessao->getVar('cliente');
$senhaCli=$sessao->getVar('iduser');
$idLabo=$sessao->getVar('idLabo');
$inicio=$sessao->getVar('inicio');
$final=$sessao->getVar('final');
$previsao=$sessao->getVar('controle1');
$pagamento=$sessao->getVar('controle2');
$criterio=$sessao->getVar('controle3');
$observacaoDireta=$sessao->getVar('controle5');
$anoAmostras=$sessao->getVar('controle6');
$ultimoComprovanteEmitido=1+$sessao->getVar('controle7');
$anoCorrente=$sessao->getVar('anocorrente');

$finalidade=$sessao->getVar('finalidade');
$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('P','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;
			 $margemDireita=$maximoLAdobe-6;
			 $larguraUtil=$maximoLAdobe-16;
			 $futer=$maximoHAdobe-10;
			 //$larguraUtil=$maximoLAdobe;
			 $cinza=220;
		     //$fonte="Arial";
			 $nomeOperador=5;
			 $pdf->SetFillColor($cinza,$cinza,$cinza); 
			 $pdf->AddPage();//adicionando a primera pafina 
			        $vetorNormas=$objetocalculo->capturaNormas("Comprovante","Basico",$idLabo);
					$posicaoNorma=164;
					if(substr($cliente,0,5)!='TS LA' && $cliente!='JATAI' ):
						$pdf->Rect($posicaoNorma,10,40,15);
						$pdf->setXY($posicaoNorma,10);  $pdf->Cell(40,4,utf8_decode("Formulario:".$vetorNormas[1]),0,0);
						$pdf->setXY($posicaoNorma,14);  $pdf->Cell(40,4,utf8_decode("Emissão:".$vetorNormas[2]),0,0);
						$pdf->setXY($posicaoNorma,18);  $pdf->Cell(40,4,utf8_decode("Formulario:".$vetorNormas[3]),0,0);
                    endif;
             //$pdf->SetFont('Times','',7);
			 //trouxe o codigo , quero capturar o nome do remetnte
		    $idProdutor=$sessao->getVar('idProdutor'); 	
			$generica=new tabelagenerica();
			$generica->tabela="remetente";
			$generica->campos_valores = array( 
				   "prd_nome" => NULL,
				);
			$generica->extras_select =" where  prd_id=" . $idProdutor;
			$generica->selecionaCampos($generica);
		    while ($res = $generica->retornaDados()):
		        $produtor=$res->prd_nome;
		    endwhile;               		 
			//aqui vi fazer um laco que vai imprimir 2 vias 
  			
            for($laco=0;$laco<=1;$laco++):
			    $cota1=10;
			   	$espacadorVertical=145*$laco;	
				
			    //cabecalho
			 	$posicaoCab1=60;$posicaoCab2=245;
	            $caminhoFinal="ImagensClientes/i".$idLabo.".JPG";
	            $pdf->Image($caminhoFinal,11,3+$espacadorVertical,48,23,'JPG');
				$pdf->setXY($posicaoCab1,$cota1+$espacadorVertical);$pdf->Cell(140,5,utf8_decode($vetorCabecalho[0]),0,1,'L');//lab nome
     			$pdf->setXY($posicaoCab1,$cota1+4+$espacadorVertical);$pdf->Cell(140,5,utf8_decode($vetorCabecalho[1]),0,1,'L');//lab nome
     			$pdf->setXY($posicaoCab1,$cota1+8+$espacadorVertical);$pdf->Cell(140,5,utf8_decode($vetorCabecalho[2]),0,1,'L');//lab nome
     			$pdf->setXY($posicaoCab1,$cota1+12+$espacadorVertical);$pdf->Cell(140,5,utf8_decode($vetorCabecalho[3]),0,1,'L');//lab nome
     			$pdf->setXY($posicaoCab1,$cota1+16+$espacadorVertical);$pdf->Cell(140,5,utf8_decode($vetorCabecalho[4]),0,1,'L');//lab nome
     			$pdf->setXY($posicaoCab1,$cota1+20+$espacadorVertical);$pdf->Cell(140,5,'Requerente:'.utf8_decode($produtor),0,1,'L');//lab nome
				if($pagamento=='Pago'):
				   //$ultimoComprovanteEmitido++;
     			   $pdf->setXY($margemEsquerda,$cota1+20);$pdf->Cell(140,5,utf8_decode('Comprovante Nº:'.$ultimoComprovanteEmitido."/".$anoCorrente.$pagamento),0,1,'L');//lab nome
				endif;   
				
				/*atencao para o detalhe
				    //nao deletar estes comentarios
                    Esta é a coleção STANDART que provavelmente nenhum vai querer mas que referecncia todo relatorio
                    quando vou criar um novo pego daqui e personalizo, mudando as larguras, os titulos e removendo
					as linhas indesejadas.
					Detalhe: Posso até trocar de posicao colocando amostra depois de lote e vice versa 
					$matrizLargura[1]=15;$matrizTitulo[1]='Amostra';
					$matrizLargura[2]=15;$matrizTitulo[2]='Lote';
					$matrizLargura[3]=30; $matrizTitulo[3]='Cultivar';
					$matrizLargura[4]=55; $matrizTitulo[4]='Requerente';
					$matrizLargura[5]=80; $matrizTitulo[5]='Testes';
					$matrizLargura[6]=15; $matrizTitulo[6]='RENASEM';//renasem do requerente
					$matrizLargura[7]=50; $matrizTitulo[7]='Amostrador';
					$matrizLargura[8]=10; $matrizTitulo[8]='RENASEM';//rensem do amostrador
					$matrizLargura[9]=30; $matrizTitulo[9]='Espécie';
					$matrizLargura[10]=10; $matrizTitulo[10]='Safra';
					$matrizLargura[11]=10; $matrizTitulo[11]='Categoria';
					$matrizLargura[12]=15; $matrizTitulo[12]='Represent.';
					$matrizLargura[13]=10; $matrizTitulo[13]='Peneira';
					$matrizLargura[14]=10; $matrizTitulo[14]='Dt Amostragem';
					$matrizLargura[15]=7; $matrizTitulo[15]='Previa';
					$matrizLargura[16]=7; $matrizTitulo[16]='BAS';
					$matrizLargura[17]=7; $matrizTitulo[17]='DT.Receb.';
					$matrizLargura[18]=20; $matrizTitulo[18]='Observações';
                    Exemplo: A posicao 1 SEMPRE será AMOSTRA,  indiferente do modelo
				    entretanto um vai chamar de amostra e outro quer que chame de protocolo 
				    por isso preciso colocar os titulos dentro do if do modelo
					CUIDADO: O primeiro indice deful do vetor é zero. Exemplo: Se eu defino array[4,5,6] o indice 4 é o item zero do arrray
                */ 
                //venho aqui e simplesmente escolho as colunas que eu quero no meu livro
				if($modelo=='CURTO'):
                    //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
					//no vetor indices eu digo quais as colunas e em que posicao relativa
					$matrizLargura[1]=15;  $matrizTitulo[1]='Amostra';
					$matrizLargura[2]=15;  $matrizTitulo[2]='Lote';
					$matrizLargura[3]=30;  $matrizTitulo[3]='Espécie';
					$matrizLargura[4]=30;  $matrizTitulo[4]='Cultivar';
					$matrizLargura[5]=50;  $matrizTitulo[5]='Requerente';
					$matrizLargura[6]=50;  $matrizTitulo[6]='Testes';
					$matrizLargura[7]=15;  $matrizTitulo[7]='RENASEM';//renasem do requerente
					$matrizLargura[8]=50;  $matrizTitulo[8]='Amostrador';
					$matrizLargura[9]=10;  $matrizTitulo[9]='RENASEM';//rensem do amostrador
					$matrizLargura[10]=30;  $matrizTitulo[10]='Espécie';
					$matrizLargura[11]=10; $matrizTitulo[11]='Safra';
					$matrizLargura[12]=10; $matrizTitulo[12]='Categoria';
					$matrizLargura[13]=10; $matrizTitulo[13]='Represent.';
					$matrizLargura[14]=10; $matrizTitulo[14]='Peneira';
					$matrizLargura[15]=10; $matrizTitulo[15]='Dt Amostragem';
					$matrizLargura[16]=7;  $matrizTitulo[16]='Previa';
					$matrizLargura[17]=7;  $matrizTitulo[17]='BAS';
					$matrizLargura[18]=20;  $matrizTitulo[18]='DT.Receb.';
					$matrizLargura[19]=20; $matrizTitulo[19]='Observações';
					$matrizLargura[20]=32; $matrizTitulo[20]='Custo';
                    $vetorIndices=array(1,2,3,4,6,18,20);//define as colunas que vou ter e  as posicoes delas
				endif;
            //esta linha mede quantos itens eu defini no array e é basica para imperessao
            $limite=sizeof($vetorIndices);
				
            //aqui imprime a linha de cabecalho //posso negrita/ colocar hachurrado etc 
            $cota1=$cota1+25;
			$pdf->setXY($margemEsquerda,$cota1+$espacadorVertical);
            for($j=1;$j<=$limite;$j++):
				$indice=$vetorIndices[$j-1]; //O PRIMEIRO ITEM DO ARRAY É ZERO, CUIDAR COM ISSO
				$largura=$matrizLargura[$indice];
				$larguraTexto=ceil($largura*.7);
				$texto=$matrizTitulo[$indice];
				$texto=substr($texto,0,$larguraTexto);//pois as vezes vai acavalar alguns textos
			    $pdf->Cell($largura,5,utf8_decode($texto),1,0,'L',1);//lab nome
			endfor;
 
//pega datas em formato brasileiro/confere se esta valida e converte para formato americano	
		   $inicio=$sessao->getVar('inicio');
           $final=$sessao->getVar('final');
           if($criterio=='POR_DATA'):
			   $objetoValidacao=new validacao();
			   //data de inicio
			   $retorno=$objetoValidacao->converteDataBrasil_americana($inicio);//esta data vai validar o ano e somente esta
			   if($retorno=='invalida'):
				   printMSG('Amigo, preencha corretamente a data de entrada no formato dd/mm/aaaa, e do ano corrente. ','alerta');
			   else:
				   $inicio_americana=$retorno;
			   endif;
			   //data final
			   $retorno=$objetoValidacao->converteDataBrasil_americana($final);//esta data vai validar o ano e somente esta
			   if($retorno=='invalida'):
				   printMSG('Amigo, preencha corretamente a data final no formato dd/mm/aaaa, e do ano corrente. ','alerta');
			   else:
				   $final_americana=$retorno;
			   endif;
			else:   
                $amostraInicial=$inicio;			   
                $amostraFinal=$final;			   
            endif;//VERIFICA SE O CRITORIO É DATA	
	
	
	
	
            //cria o array conteudo################################################33
			//ENTRA DE QUAKQUER MANEIRA
			$generica=new tabelagenerica();
			$campos=" select fic_custo,fic_amostra, fic_lote,ctv_nome,fic_categoria,fic_safra,fic_peneira,fic_dt_entrada,fic_repre_unid,fic_id,esp_nome,fic_dt_amostragem,fic_amostra_previa,fic_observacao ";

			if($criterio=='POR_DATA'):
			     $generica->extras_select =$campos ."  from  ficha,cultivar,especies  where fic_dt_entrada between  '".$inicio_americana."' and '".$final_americana."'  && fic_cultivar=ctv_id   && ctv_especie=esp_id   && fic_produtor=" . $idProdutor." order by fic_amostra";
            else:
			     $generica->extras_select =$campos ."  from  ficha,cultivar,especies  where year(fic_dt_entrada)='".$anoAmostras."' and  fic_amostra between  '".$amostraInicial."' and '".$amostraFinal."'  && fic_cultivar=ctv_id   && ctv_especie=esp_id    &&  fic_produtor=" . $idProdutor." order by fic_amostra";
			endif;

			$generica->selecionaCamposEspecial($generica);
			$contador=1;
            //vou criar a matriz de conteudos que vai ter linhas e colunas
			$valorTotal=0;
			while ($resgenerica= $generica->retornaDados()):
			    $amostraLong=$resgenerica->fic_id;
	    		if($finalidade=='DEFINITIVA'):
 			       $matrizConteudo[$contador][1]=$resgenerica->fic_amostra;//
				else:
			       $matrizConteudo[$contador][1]=$resgenerica->fic_amostra_previa;//
				endif;
                $matrizConteudo[$contador][2]=$resgenerica->fic_lote;
			    $matrizConteudo[$contador][4]=$resgenerica->ctv_nome;//
			    $matrizConteudo[$contador][3]=$resgenerica->esp_nome;//
			    $matrizConteudo[$contador][18]=date("d/m/Y",strtotime($resgenerica->fic_dt_entrada));//
				//aqui vai gravar o campo fic_pagou caso tenha sido marcado PAGO
				$identificadorPGTO="";
                if($pagamento=='Pago'): 
                   $user = new amostras(array(
                        'fic_pagou'=>'SIM',
						'fic_dt_pagou'=>date("Y-m-d"),
					    'fic_comprovante'=>$ultimoComprovanteEmitido,
                    ));
                    $user->valorpk = $amostraLong;
                    $user->extras_select = "WHERE   fic_id=$amostraLong";
                    $user->selecionaTudo($user);
                    $res = $user->retornaDados();
                    $user->atualizar($user);
					$identificadorPGTO="(Pago)";
                endif;

				$custo=0;
                $amostraLong=$resgenerica->fic_id;
				$testes=$objetocalculo->capturaTestesSolicitados($amostraLong);	
			    $matrizConteudo[$contador][6]=$testes;//e
			    
				//determina o custo				
				$custo=$resgenerica->fic_custo;
				$matrizConteudo[$contador][20]=number_format($custo,2,'.','');
			    $valorTotal+= $custo;
				$contador++;
                if($contador>30)break;
			endwhile; 
			
//agora imprime	o corpo		
//o indice vai permitir eu imprimir na ordem que eu quiser e inclusive suprimir linhas			
			for($i=1;$i<=$contador;$i++):
                $cota1+=5;
				$pdf->setXY($margemEsquerda,$cota1+$espacadorVertical);
                for($j=1;$j<=$limite;$j++): 
				    $indice=$vetorIndices[$j-1]; 
					$largura=$matrizLargura[$indice];
					$larguraTexto=ceil($largura*.7);
					$texto=$matrizConteudo[$i][$indice];
					$texto=substr($texto,0,$larguraTexto);//pois as vezes vai acavalar alguns textos
				    $pdf->Cell($largura,5,utf8_decode($texto),1,0,'L');//lab nome
                endfor;
			endfor;
			$pdf->setXY(100,$cota1+$espacadorVertical);
//////////////
			$pdf->setFont('Arial','B',10);
			$pdf->Cell($matrizLargura[6],5,utf8_decode('Previsão de entrega-->'),1,0,'R');//lab nome
			$pdf->Cell($matrizLargura[18],5,$previsao,1,0,'L');//lab nome
			$pdf->Cell($matrizLargura[20],5,'T='.number_format($valorTotal,2,'.','').$identificadorPGTO,1,0,'L');//lab nome
            $pdf->setFont('Arial','',7);
///////////


//IMPRIME LOCAL DATA E ASSINATURA
$cotaFinal=$cota1+10;
$pdf->setXY($margemEsquerda,$cotaFinal-5);
//$observacaoDireta="xxxxxxx";
$pdf->Cell($larguraUtil,5,utf8_decode($observacaoDireta),0,1,'L');
$pdf->setXY($margemEsquerda,$cotaFinal+$espacadorVertical);
$pdf->Cell(80,5,utf8_decode($vetorCabecalho[6]).', '.date("d/m/Y"),0,1,'L');//

$cotaFinal=$cota1+20;
//IMPRIME O REQUERENTE
$pdf->Line(55,$cotaFinal+$espacadorVertical,105,$cotaFinal+$espacadorVertical);
$pdf->setXY(30,$cotaFinal+$espacadorVertical);
$pdf->Cell(100,5,utf8_decode($produtor),0,1,'C');//
$pdf->setXY(30,$cotaFinal+5+$espacadorVertical);
$pdf->Cell(100,5,utf8_decode('Cliente'),0,1,'C');//
//captura o rt
$vetorTecnico=$objetocalculo->dadostecnico($idLabo,'BOLE');

$nomeTecnico=$vetorTecnico[1];//nome do rt
//IMPRIME O TECNICO
$pdf->Line(130,$cotaFinal+$espacadorVertical,190,$cotaFinal+$espacadorVertical);
$pdf->setXY(110,$cotaFinal+$espacadorVertical);
$pdf->Cell(100,5,utf8_decode($vetorCabecalho[0]),0,1,'C');//
$pdf->setXY(110,$cotaFinal+5+$espacadorVertical);
$pdf->Cell(100,5,utf8_decode('Laboratório'),0,1,'C');//
$pdf->setXY(110,$cotaFinal+10+$espacadorVertical);
$pdf->Cell(100,5,utf8_decode('Pedido analisado e aceito'),0,1,'C');//

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

		
		
?>
