<?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");
$objetoDocumentos = new documentos2024(); //calcula todos valores finais
$sessao = new sessao();
$senhaCli=$sessao->getVar('iduser');
$idLabo=$sessao->getVar('idLabo');
$inicio=$sessao->getVar('inicio');
$final=$sessao->getVar('final');
$idDoc=$sessao->getVar('transfere');
$cliente=strtoupper($sessao->getVar('cliente' ) ?? "");
if(substr(strtoupper($cliente ?? ""),0,8)=='DIMICRON')$cliente="DIMICRON";//este casuismo é necessario pois a ricetec é RiceTec......

if(substr(strtoupper($cliente ?? ""),0,7)=='RICETEC')$cliente="RICETEC";//este casuismo é necessario pois a ricetec é RiceTec......
//echo("cliente=$cliente<br>");

//echo("1xxxxxxxxxxxxxxidDocumento= $idDoc<br>");

$nomeOperador=$sessao->getVar('nomeuser');
$objetocalculo = new calculos(); //calcula todos valores finais
$pdf=new FPDF('L','mm','A4'); //parametos da pagina 
			 $pdf->open();//abre o fpdf
		
			 $pdf->AliasNbPages();
			 $pdf->SetFont('Arial','',12);
			 $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;
			 $cinza=220;
		     $fonte="Arial";
			 $nomeOperador=5;
			 $pdf->SetFillColor($cinza,$cinza,$cinza); 
			 $linha=0;
			 $posicaox1=10;
             $larg1=20;
             $larg2=20;
             $larg3=30;
             $larg4=50;
             $larg5=15;
             $larg6=10;
             $larg7=10;
             $larg8=10;
             $larg9=10;
             $larg10=10;
			 $larguraDaLinha=4;
	 //AQUI COMECA 

 
     //PARAMETROS GERAIS
     //altura util=210  largura util=297(dados do adobe)
	$cota1=10;//inicio de tudo 
    $pdf->AddPage();//adicionando a primera pagina 
    $vetorNormas=$objetocalculo->capturaNormas("Informe","Forrageiras",$idLabo);
	$posicaoNorma=251;
	$pdf->SetFont('Times','',8);
    $pdf->Rect($posicaoNorma,$cota1,40,25);
	$pdf->setXY($posicaoNorma,$cota1);  $pdf->Cell(40,4,utf8_decode("Formulario:".$vetorNormas[1]),0,0);
	$pdf->setXY($posicaoNorma,$cota1+4);  $pdf->Cell(40,4,utf8_decode("Emissão:".$vetorNormas[2]),0,0);
 
	//$pdf->setXY($posicaoNorma,$cota1+8);  $pdf->Cell(40,4,utf8_decode("Formulario:".$vetorNormas[3]),0,0);
     $margemEsquerda=10;

	 //largura de uma margem a outra = 281  se eu imprimo algo esta soma nao pode ultrapassar este valor
	 $cinza=220;
	 $pdf->SetFillColor($cinza,$cinza,$cinza);
	 $grosso=0.7;
	 $medio=0.4;
	 $fino=0.3;
	 $extraFino=0.1;
	 //ESTAS COTAS SAO AS COTRAS DAS LINHAS HORINTAIS GROSSAS QUE SERVEM DE ORIGEM PARA O QUE VEM A SEGUIR
     $cota1=10;
	 //LINHAS LATERAIS DO  cabecalho
	 $pdf->SetLineWidth($grosso);
	
	 $pdf->rect($margemEsquerda,$cota1,$larguraUtil,25);

     ####################################CABECALHO################################################
	 
     $vetorCabecalho=$objetocalculo->dadoslaboratorio();
	 //$pdf->Cell(30,10,'Angela',1,0,'C'); 30=largura  10=altura   angela=texto   1=com borda    0=quebra de linhya a direita      Centralizado(L,C,R) SINTAXE.....
	 $posicaoCab1=60;$posicaoCab2=245;
	 $caminhoFinal="ImagensClientes/i".$idLabo.".JPG";
	 //echo("caminhofinal=$caminhoFinal<br>");
	 $pdf->Image($caminhoFinal,11,$cota1+1,48,23,'JPG');
	 //o/a didentificacao do lab
	 $pdf->SetFont('Times','B',9);
	 $pdf->setXY($posicaoCab1,$cota1);
	 $pdf->Cell(125,5,utf8_decode($vetorCabecalho[0]),0.5,1,'C');//lab nome
	 //$pdf->SetFont('Times','',10);
	 $pdf->Ln(0);
	 $pdf->Cell($posicaoCab1-$margemEsquerda);
	 $pdf->Cell(125,5,utf8_decode($vetorCabecalho[1]),0.5,1,'C');
	 $pdf->Ln(0);
	 $pdf->Cell($posicaoCab1-$margemEsquerda);
	 $pdf->Cell(125,5,utf8_decode($vetorCabecalho[2]),0.5,1,'C');
	 $pdf->Ln(0);
	 $pdf->Cell($posicaoCab1-$margemEsquerda);
	 //$pdf->Cell(185,5,utf8_decode($vetorCabecalho[3]),0.5,1,'C');
	 $pdf->Cell(125,5,utf8_decode($vetorCabecalho[3]),0.5,1,'C');
	 $pdf->Ln(0);
	 $pdf->Cell($posicaoCab1-$margemEsquerda);
	 $pdf->Cell(125,5,utf8_decode($vetorCabecalho[4]),0.5,1,'C');
	 //aqui cria o vetor que todos documentos vao ter em comum(nume documento, daos do remetente, da especie/cultivar, data documento etc)
     $vetorDadosDocumento=$objetocalculo->dados_gerais_documento($idDoc);
	 //////////////////////////////////////
	 	 ############RESULTADO DE ANALISE########################
 	 #################vai imprimir resultados##########################################
	//aqui vou preparar o vetor de resultados/amostras
	//captura o numero de registros e as id das amostras atraves da leitura da tabela documentosponte amarrada com a id do documento
	//ENTRA DE QUAKQUER MANEIRA
	//echo("3xxxxxxxxxxxxxxidDocumento= $idDoc<br>");

	$generica=new tabelagenerica();
	$generica->tabela="documentosponte";
	$generica->campos_valores = array(
			"dpo_amostra_vinculada" => NULL,
		);
	$generica->extras_select =" where  dpo_documento_autonumerador=".$idDoc." order by dpo_amostra_vinculada LIMIT 4";
	//echo("eeeeexxxxxxxxxxxxxxxxxxxxxxxxxxeeeeeeerro $generica->extras_select <br>");
	$generica->selecionaCampos($generica);
	$contaAmostras=0;
	while ($resgenerica = $generica->retornaDados()):
	    $contaAmostras++;
		//$vetorDPO[$contaAmostras]=$resgenerica->dpo_amostra_vinculada;
		$amostraLong=$resgenerica->dpo_amostra_vinculada;
		
		$vetorAmostraBruto=$objetocalculo->capturaGeralAmostra($amostraLong);
		//aqui temos um abacaxi para resolver
		//se a pessoa joga uma amostra de previa FNALIDADE=PREVIA a amostra vai ter numero na previa
		//mas se o laboratorio for convencional e tiver uma so listagem este campo nao sera usado e viaria zero ali
		//entao eu acho que no iforme deveria fazer um teste: se o numero previa for zero ele imprime o numero definitiva
		$numeroAmostra=$vetorAmostraBruto[25];
		if($numeroAmostra==0)$numeroAmostra=$vetorAmostraBruto[1].'/'.substr($vetorAmostraBruto[36],0,4);
		$vetorResultados[1][$contaAmostras]=$numeroAmostra;//amostra
		$vetorResultados[2][$contaAmostras]=$vetorAmostraBruto[4];//pureza
		$vetorResultados[3][$contaAmostras]=$vetorAmostraBruto[17];//mat.inerte
		$vetorResultados[4][$contaAmostras]=$vetorAmostraBruto[18];//outras esp
		$vetorResultados[5][$contaAmostras]=$vetorAmostraBruto[20];//dosn
        $amostrax=$vetorAmostraBruto[2];//dosn 
		$vetorResultados[6][$contaAmostras]=$vetorAmostraBruto[3];//germinacao
		$vetorResultados[7][$contaAmostras]=$objetocalculo->captura_OD_Especifica($amostraLong,'PMS');
		$vetorResultados[8][$contaAmostras]=$objetocalculo->captura_OD_Especifica($amostraLong,'TZO');
		$vetorResultados[9][$contaAmostras]=$objetocalculo->captura_OD_Especifica($amostraLong,'EAC');
	endwhile;//fecha o whule que percorre todas amostras
	 ////////////////////////////////
	 
	 
	 
	 
	 $pdf->SetLineWidth($medio);
	 $pdf->SetFont('Times','B',10);
	 $cota1+=28; 
	 
	 $pdf->setXY(10,$cota1);
	 $texto=number_format($vetorDadosDocumento[1]/1000,3,'','');;//NUMERO DO INFORME
	 $texto1=$vetorDadosDocumento[4];//ANO DO INFORME
	 $texto1="/".$texto1;
	 $pdf->Cell($larguraUtil,5,utf8_decode('INFORMAÇÃO DE RESULTADO ESPECIAL PARA AMOSTRA DE MISTURAS DE ESPÉCIES Nº ') .$texto.$texto1,1,1,'C');
     $espacador=3;
	 $cota1+=$espacador;
	 $pdf->SetFont('Times','',10);
	 $pdf->setXY($margem,$cota1);

		 $cota1+=$espacador;
		 //imprime o nome cientifico mas tem que se colado ao nome comum
         $pdf->SetFont('Times','I',10);
		 //mede o tamanho do nome comum e acrescenta ao espaco usado para imprimir o texto fixo  [ Resultado de análise de:  ]
		 $tama=strlen($vetorDadosDocumento[2])*1.4;//mede tamanho nome comum .Multiplica por 3 pois sao 3 mm por letra e  este 15 ai é o taamanhao do rotulo especie que vem antes
		 $derrapador=72+$tama;//era 1.2  e 60
		 $pdf->setXY($derrapador,$cota1);

         $pdf->SetFont('Times','',10);
		 $cota1+=$espacador;	 
		 $pdf->setXY($margem,$cota1);
	     $pdf->Cell(100,$larguraDaLinha,'Requerente:'.utf8_decode($vetorDadosDocumento[0]) ,0,1,'L');
		 $cota1+=$espacador;
		 $pdf->setXY($margem,$cota1);
         $pdf->Cell(100,$larguraDaLinha,utf8_decode('Endereço:'.$vetorDadosDocumento[8]) ,0,1,'L');
		 $data=$pdf->vetorFicha[6];
		 $dia=substr($data,8,2);
		 $mes=substr($data,5,2);
		 $ano=substr($data,0,4);//ano   1951-02-28
		 $dataFinal=$dia."/".$mes."/".$ano;
		 $espacador=4;
		 $cota1+=$espacador;
		 $pdf->setXY($margem,$cota1);
	     $pdf->Cell(93,$larguraDaLinha," Amostra: " .$vetorResultados[1][1].'   Lote: ' .$amostrax.'   Data do recebimento da amostra:'.$vetorDadosDocumento[12],0,1,'L');
		 //IMPRIME A LEGENDA PROIBIDA COMERCIALIZACAO
         $pdf->SetFont('Times','BI',10);
		 $cota1+=2*$espacador;
		 $inicioDeclaracaoProibido=100;
		 $tamanhoProibido=95;
		 $pdf->setXY($inicioDeclaracaoProibido,$cota1);
		 $pdf->Cell($tamanhoProibido,2*$espacador,' ',1,0,'C',1);//MOLDURA HACHURRIADA
		 //$cota1+=$espacador;

		 $pdf->setXY($inicioDeclaracaoProibido,$cota1);
	     $pdf->Cell($tamanhoProibido,$espacador,utf8_decode('PROIBIDA A COMERCIALIZAÇÃO'),0,0,'C',1);
		 $cota1+=$espacador;
		 $pdf->setXY($inicioDeclaracaoProibido,$cota1);
	     $pdf->Cell($tamanhoProibido,$espacador,utf8_decode('Art. 76,§1º e §2º, do Decreto 10.586, de 18.12.2020'),0,0,'C',1);
		 $espacador=3;
		 
	

	

	
	//echo("4xxxxxxxxxxxxxxidDocumento= $idDoc  contaAmostras =$contaAmostras $vetorDPO[1]<br>");
    //vai pegar os dados da amopstra la na classe calculo pois ja tem a id da amostra

 
	 //definir a subcotas logo apos a legenda comentada, para ser facil de achar e regurar a calibração
	 
     $cota1+=3*$espacador;
	 $pdf->setXY($margemEsquerda,$cota1);
	 $pdf->SetFont('Times','B',10);
     $pdf->Cell($larguraUtil,$larguraDaLinha,utf8_decode('RESULTADO DA ANÁLISE') ,0,1,'C');	
	 //resultaso sao impressoas a partr da cota 3
	 $pdf->SetFont('Times','',8);
	 $cota1+=$espacador;
	 $cotaLinha=$cota1;//define o começo da impressao de resultados , apenas para naoa ficar em cima da  linha divisoria muito grossa
	 $alturaLinhaResultados=8;//define a largura das linhas de resultados
	//$amostraLong=49920; 
	$vetorMix=$objetoDocumentos->capturaTodoMix($amostraLong);
	$larguraDeful=13; 
		
	 $larg[1]=$larguraDeful+10;
	 $larg[2]=$larguraDeful+20;
	 $larg[3]=$larguraDeful+10;
	 $larg[4]=$larguraDeful;
	 $larg[5]=$larguraDeful;
	 $larg[6]=$larguraDeful;
	 $larg[7]=$larguraDeful;
	 $larg[8]=$larguraDeful;
	 $larg[9]=$larguraDeful;
	 $larg[10]=$larguraDeful;
	 $larg[11]=$larguraDeful;
	 $larg[12]=$larguraDeful;
	 $larg[13]=$larguraDeful;
	 $larg[14]=$larguraDeful;
	 $larg[15]=$larguraDeful;
	 $larg[16]=$larguraDeful;
	 $larg[17]=$larguraDeful;
	 $larg[18]=$larguraDeful;
	 $limite=18;
	 $espacador=3;
     //define os cabecalhos linha 1
     $cabe[1][1]='Nome'.$amostraLong;
     $cabe[1][2]='Nome';
     $cabe[1][3]='Cultivar';
     $cabe[1][4]='Decla-';
     $cabe[1][5]='Anali-';
     $cabe[1][6]='Subs-.';
     $cabe[1][7]='Tempe-';
     $cabe[1][8]='Pureza';
     $cabe[1][9]='Normais';
     $cabe[1][10]='Anor.';
     $cabe[1][11]='Duras';
     $cabe[1][12]='Dor-';
     $cabe[1][13]='Mortas';
     $cabe[1][14]='Data';
     $cabe[1][15]='Validade';
     $cabe[1][16]='TZ';
     $cabe[1][17]='Frio';
     $cabe[1][18]='EAC';
	 
	 
	 
	 //define os cabecalhos linha 2
     $cabe[2][1]='Comum';
     $cabe[2][2]='Científico';
     $cabe[2][3]='rado';
     $cabe[2][4]='rado';
     $cabe[2][5]='sado';
     $cabe[2][6]='trato';
     $cabe[2][7]='ratura';
     $cabe[2][8]='-';
     $cabe[2][9]='-';
     $cabe[2][10]='-';
     $cabe[2][11]='-';
     $cabe[2][12]='mentes';
     $cabe[2][13]='-';
     $cabe[2][14]='análise';
     $cabe[2][15]='-';
     $cabe[2][16]='-';
     $cabe[2][17]='-';
	 $cabe[2][18]='-';
     $pdf->SetLineWidth($extraFino);
     for($L=1;$L<=2;$L++):
	     $cota1+=$espacador;
	     $pdf->setXY($margemEsquerda,$cota1);
	     $alinhamento="L";
    	 for($i=1;$i<=$limite;$i++):
			 $pdf->Cell($larg[$i],$espacador,utf8_decode($cabe[$L][$i]),1,0,$alinhamento,1);
		 endfor;
	 endfor;

     //imprime dados
     for($L=0;$L<count($vetorMix);$L++):
	     $cota1+=$espacador;
	     $pdf->setXY($margemEsquerda,$cota1);
	     $alinhamento="L";
         $vetorMix[$L][1]=substr($vetorMix[$L][1],0,12);//corta um pedaco do nomeccomum cortando em 20 caracteres
		 $vetorMix[$L][2]=substr($vetorMix[$L][2],0,22);//corta um pedaco do nomecientifico cortando em 22 caracteres
		 $vetorMix[$L][3]=substr($vetorMix[$L][3],0,8);//corta um pedaco da cultivar
		 $nomeCientifico=substr($vetorMix[$L][2]);
    	 for($colunaDestino=1;$colunaDestino<=$limite;$colunaDestino++):
		     //CALIBRACAO (joga para a coluna do relatorio a posicao onde esta a o conteudo mix)
             $colunaMix=$colunaDestino;			 
             if($colunaDestino==6)$colunaMix=8;
			 if($colunaDestino>13)$colunaMix=0;
			 $pdf->SetFont('Times','',8);
			 if($colunaDestino==2)$pdf->SetFont('Times','I',8);
			 $pdf->Cell($larg[$colunaDestino],$espacador,utf8_decode($vetorMix[$L][$colunaMix]),1,0,$alinhamento);
		 endfor;
	 endfor;
	 
	 
	 
     ########################################observacoes###########################
	 //retangulo das observacoes
     //retangulo e risco vertical entre contaminantes e observacoes
	 $posicao=130;
	 
     $cota1+=$espacador;
	 $cotaBaixa=130;
	 $alturaRetangulo=50;
     $pdf->Rect($margemEsquerda,$cotaBaixa,$larguraUtil,$alturaRetangulo); 	 
     $pdf->Line($posicao,$cotaBaixa,$posicao,$cotaBaixa+$alturaRetangulo);

 	 $base[1][2]="Observações:";
	 $base[2][2]=$vetorDadosDocumento[19];
	 $base[3][2]=$vetorDadosDocumento[20];
	 $base[4][2]=$vetorDadosDocumento[21];
	 $base[5][2]=$vetorDadosDocumento[22];
	 $base[6][2]=$vetorDadosDocumento[23];
	 $base[7][2]=$vetorDadosDocumento[24];
	 $base[8][2]=$vetorDadosDocumento[25];
	 $base[9][2]=$vetorDadosDocumento[26];

	 //aqui inverte a data
	 $data=$vetorCabecalho[17];
	 $dia=substr($data,8,2);
	 $mes=substr($data,5,2);
	 $ano=substr($data,0,4);//ano   1951-02-28
	 $dataBoletim=$dia."/".$mes."/".$ano;
	 $cotaLinha=$cotaBaixa;
     for($L=1;$L<=9;$L++)
	 {
	     $conteudo=$base[$L][2];
	     if(strlen($conteudo)>2)
		 {
			 $pdf->setXY($posicao,$cotaLinha);
			 $pdf->Cell(190,$larguraDaLinha,utf8_decode($base[$L][2]),0,1,'L');	
			 $cotaLinha+=$larguraDaLinha;
		 }
	 }
	 //aqui imprime o -o- independente de ter colocado ou nao la no campo de observacoes 
	 $pdf->SetXY($posicao,$cotaLinha+4);
	 $pdf->Cell(180,$larguraDaLinha,'-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-O-',0,1,'L');	

	
     ###########OUTRAS ESPECIES CONTAMINANTES########################################
     $contaminantesDocumento=$objetocalculo->acharContaminantesDocumento($idDoc);
     $cotaDOSN=$cotaLinha;//ele incrementa a cota linha e deixa espaco para imprimir logo a seguir os contaminantes	      
     $pdf->setXY($margem,$cotaLinha);
     //se o primeiro  item estver vazio ele nem siquer imprime a esperessao  OUTRAS ESPECIES CONTAMINANTES
	 $pdf->setXY($margem,$cotaBaixa);
     $pdf->Cell(100,$larguraDaLinha,utf8_decode('DETERMINAÇÃO DE OUTRAS ESPECIES POR NÚMERO:'),0,1,'L');	
	 $pdf->SetFont('Times','I',8);
	 $cotaLinha=$cotaBaixa;
     for($L=1;$L<=10;$L++)
	 {
	      $conteudo=$contaminantesDocumento[$L];
		  if(strlen($conteudo)>2):
		 	 $cotaLinha+=$larguraDaLinha;
			 $alturaRetangulo+=$larguraDaLinha;
	         $pdf->SetXY($margem,$cotaLinha);
			 $pdf->Cell(180,$larguraDaLinha,utf8_decode($conteudo),0,1,'L');	
		  endif;
	 }
	 $pdf->SetFont('Times','',8);


	 
	 
	 ########################################ASSINATURAs######################################
	 //terminou de imprimir resultado agora vi para observacoes tecico e assinatura
	 $posicao2=$larguraUtil/2+$margemEsquerda;
     $vetorTecnico=$objetocalculo->dadostecnico($idLabo,'BOLE');
	 $pdf->setXY(10,$cotaBaixa);
 	 //$base[1][3]=$vetorTecnico[6].', '.$vetorDadosDocumento[27];
	 $base[1][3]=$vetorCabecalho[6].", ".$vetorDadosDocumento[27];//local e data

	 $base[2][3]="";
	 $base[3][3]="";
	 $base[4][3]=$vetorTecnico[1];
	 $base[5][3]="RENASEM:".$vetorTecnico[3]."  CREA:".$vetorTecnico[2];
	 $base[6][3]=$vetorTecnico[7];
     $pdf->Line($posicao2,$cotaBaixa,$posicao2+80,$cotaBaixa);//linha separadora horizontal
	 $cotaBaixa+=5*$espacador;
	 $pdf->SetXY($posicao2,$cotaBaixa);$pdf->Cell(90,5,utf8_decode($base[1][3]),0,1,'L');	//data e local
	 $cotaBaixa+=5*$espacador;
	 $pdf->SetXY($posicao2,$cotaBaixa);$pdf->Cell(90,5,utf8_decode($base[4][3]),0,1,'C');	
	 $cotaBaixa+=$espacador;
	 $pdf->SetXY($posicao2,$cotaBaixa);$pdf->Cell(90,5,utf8_decode($base[5][3]),0,1,'C');	
	 $cotaBaixa+=$espacador;
	 $pdf->SetXY($posicao2,$cotaBaixa);$pdf->Cell(90,5,utf8_decode($base[6][3]),0,1,'C');		 
		 
	ob_clean(); // Quando usava essa classe o ob_clean() resolvia meu problema
$pdf->Output("arquivo.pdf","I");
		
?>
