TransWar File Browser

Path: C:\

<?php
$if['ID']=utf8_decode('Intervalo de Descanso');
$if['TD']=utf8_decode('Tempo de Direção');
$if['TE']=utf8_decode('Tempo de Espera');
$if['IA']=utf8_decode('Intervalo de Alimentação');
$if['']='';
$tt['ID']=$tt['TD']=$tt['TE']=$tt['IA']=0;
date_default_timezone_set('America/Sao_Paulo');
$base1    = date("d-m-Y"); 
$dateadded= date('Y-m-d', strtotime($base1. ' - 1 day'));
if (isset($_GET['dia']) ){$dia=$_GET['dia'];}else{$dia=$dateadded;}
mkdir(__DIR__.'/pdf/'.$dia.'/', 0777, true);
require('fpdf.php');
function acumula($hora_inicial, $hora_final){
    $i = 1;
    $tempo_total;
    $tempos = array($hora_final, $hora_inicial);
    foreach($tempos as $tempo) {
      $segundos = 0;
      list($h, $m, $s) = explode(':', $tempo);
      $segundos += $h * 3600;
      $segundos += $m * 60;
      $segundos += $s;
      $tempo_total[$i] = $segundos;
      $i++;
    }
    $segundos = $tempo_total[1] - $tempo_total[2];
    $horas = floor($segundos / 3600);
    $segundos -= $horas * 3600;
    $minutos = floor($segundos / 60);
    $segundos -= $minutos * 60;
    if ($segundos>=30){$minutos=$minutos+1;$segundos=0;}
    $return[1]=($minutos*60)+($horas*3600);//tempo para acumuladar
    $horas = str_pad($horas, 2, '0', STR_PAD_LEFT);
    $minutos = str_pad($minutos, 2, '0', STR_PAD_LEFT);
    $segundos = str_pad($segundos, 2, '0', STR_PAD_LEFT);
    $return[0]=$horas.':'.$minutos;//tempo arredondado
    return $return;
}
function totais($inf){
    $horas = floor($inf / 3600);
    $inf -= $horas * 3600;
    $minutos = floor($inf / 60);
    $inf -= $minutos * 60;
    if ($inf>=30){$minutos=$minutos+1;$inf=0;}
    $horas = str_pad($horas, 2, '0', STR_PAD_LEFT);
    $minutos = str_pad($minutos, 2, '0', STR_PAD_LEFT);
    return $horas.':'.$minutos;
}
class PDF extends FPDF
{
    function LoadData($file){
        $lines = file($file);
        $data = array();
        foreach($lines as $line)
            $data[] = explode(';',trim($line));
        return $data;
    }
}
$json = file_get_contents('matriz.json');
$reg = json_decode($json, true);
$lin=count($reg);
$n=0;
foreach ($reg as $value => $x)
{   $n++;$tt['ID']=$tt['TD']=$tt['TE']=$tt['IA']=0;
    $pdf[$n] = new PDF();
    //$data = $pdf[$n]->LoadData('tabela.txt');
    $pdf[$n]->SetFont('Arial','','12');
    $pdf[$n]->AliasNbPages();
    //variável que me diz a quantidade de linhas a ser impressa
    $linhasPpg = 34;
    //variável que me diz quando deve ser impresso o cabeçalho e rodapé
    $linhasCbl = 999;
    //variável para exibir o número da página
    $PageNo = 0;
    //variável que pega o numero de registro que tenho no banco
//    $max = count($data);
    foreach ($x['mov'] as $val => $y)
    {
        if($x['mov'][$val]['ini']!=="" and $x['mov'][$val]['fim']!==""){
//foreach($data as $row)
//{   /*aqui estou definindo nome do arquivo PDF para salvar 
 //   com nome do funcionário mais data*/
    $arq=utf8_decode($x['nome']);
    $email=$x['email'];
    
    /*aqui estou somando a variável, que vai me dizer 
    quando eu devo imprimir o cabeçalho e rodapé*/
    $linhasCbl = $linhasCbl + 1;

    /*------------------------- cabeçalho e rodapé----------------------------------*/

    /*condição para imprimir cabeçalho e rodapé,
    se a variável para imprimir cabeçalho for maior que 
    a variavel com a quantidade de linhas a imprimir,
    então imprima*/
    if ($linhasCbl > $linhasPpg) 
    { 
        //aqui e pego o número da página, toda a vez que eu iimprimir o cabeçalho
        $PageNo = $PageNo + 1;
        
        //adiciono uma pagina para meu relatório
        $pdf[$n]->AddPage('P','A4');
        
        /*-------- imprimo o cabeçalho da página -------*/
        $pdf[$n]->SetFillColor(255,0,0);
        $pdf[$n]->SetTextColor(255);
        $pdf[$n]->SetLineWidth(.2);
        $pdf[$n]->SetFont('Arial','B','12');
        $pdf[$n]->Cell(6,6,"",0,1);
        $pdf[$n]->SetXY(35,20);
        $pdf[$n]->Cell(140,7,'COMPROVANTE DA JORNADA DE TRABALHO','TLRB',0,'C',true);
        $pdf[$n]->SetFillColor(224,235,255);
        $pdf[$n]->SetTextColor(0);
        $pdf[$n]->SetFont('Arial', '', 8);
        $pdf[$n]->Ln();
        $pdf[$n]->SetX(35);
        $pdf[$n]->Cell(20,6,'MOTORISTA','TLRB',0,'C',true);
        $pdf[$n]->Ln();
        $pdf[$n]->SetX(35);
        $pdf[$n]->Cell(20,6,'PIS','TLRB',0,'C',true);
        $pdf[$n]->Ln();
        $pdf[$n]->SetX(35);
        $pdf[$n]->Cell(20,6,'DATA','TLRB',0,'C',true);
        $pdf[$n]->Ln();
        $pdf[$n]->SetFont('Arial','B','10');
        $pdf[$n]->SetXY(55,27);
        $pdf[$n]->Cell(120,6,utf8_decode($x['nome']),'TLRB',0,'L',false);
        $pdf[$n]->Ln();
        $pdf[$n]->SetX(55);
        $pdf[$n]->Cell(120,6,$value,'TLRB',0,'L',false);
        $pdf[$n]->Ln();
        $pdf[$n]->SetX(55);
        $pdf[$n]->Cell(120,6,$x['dia'],'TLRB',0,'L',false);
        /*--------------- fim do cabeçalho da página ---------*/
        /*--------------- imprimo o rodapé--------------------*/
        $pdf[$n]->SetTextColor(0);
        $pdf[$n]->SetXY(85,270);
        $pdf[$n]->Cell(45,6,utf8_decode('Página ').$pdf[$n]->PageNo().'/{nb}',0,0,'C');
        /*--------------- fim do radapé -------------------------*/
        /*--------------- imprimo o cabeçalho da tabela ---------*/
        $header = array('EVENTO','HORA INICIAL', 'HORA FINAL', 'TEMPO','H:M:S','H:M' );
        $pdf[$n]->SetXY(85,45);
        $pdf[$n]->SetFillColor(255,0,0);
        $pdf[$n]->SetTextColor(255);
        $pdf[$n]->SetDrawColor(128,0,0);
        $pdf[$n]->SetLineWidth(.2);
        $pdf[$n]->SetFont('Arial','B','10');
        // cabeçalho
        $w = array(50, 35, 35, 20);
        $pdf[$n]->Cell($w[1],5,$header[1],'TLR',0,'C',true);
        $pdf[$n]->Cell($w[2],5,$header[2],'TLR',0,'C',true);
        $pdf[$n]->Cell($w[3],5,$header[3],'TLR',0,'C',true);
        $pdf[$n]->SetXY(85,50);
        $pdf[$n]->Cell($w[1],5,$header[4],'LRB',0,'C',true);
        $pdf[$n]->Cell($w[2],5,$header[4],'LRB',0,'C',true);
        $pdf[$n]->Cell($w[3],5,$header[5],'LRB',0,'C',true);
        $pdf[$n]->SetXY(35,45);
        $pdf[$n]->Cell($w[0],10,$header[0],'TLRB',0,'C',true);

        $pdf[$n]->Ln();
        /*--------------- fim do cabeçalho da tabela ---------*/
        /*aqui eu zero a variável do cabeçalho para não iimprimir,
        enquanto não atingir a quantidade maxima de linhas por pagina*/				
        $linhasCbl = 0 ;
    }//aqui eu fecho o loop do cabeçalho e rodapé

    /*aqui eu imprimo as linhas da minha tabela*/
    $w = array(50, 35, 35, 20);
    $pdf[$n]->SetFillColor(224,235,255);
    $pdf[$n]->SetTextColor(0);
    $pdf[$n]->SetFont('Arial','','9');
    $pdf[$n]->SetFont('');
    $pdf[$n]->SetX(35);
    $fill = false;
    if ($x['mov'][$val]['ini']=='SEM REGISTRO NESSE DIA')
    {
        $pdf[$n]->Cell(140,6,'SEM REGISTRO NESSE DIA','TLRB',0,'C',$fill);
    }
    else
    {
        $pdf[$n]->Cell($w[0],6,$if[$x['mov'][$val]['evento']],'TLRB',0,'C',$fill);
        $pdf[$n]->Cell($w[1],6,$x['mov'][$val]['ini'],'TLRB',0,'C',$fill);
        $pdf[$n]->Cell($w[2],6,$x['mov'][$val]['fim'],'TLRB',0,'C',$fill);
        $tempo=acumula($x['mov'][$val]['ini'],$x['mov'][$val]['fim']);
        $tt[$x['mov'][$val]['evento']]=$tt[$x['mov'][$val]['evento']]+$tempo[1];
        $pdf[$n]->Cell($w[3],6,$tempo[0],'TLRB',0,'C',$fill);
    }
    $pdf[$n]->Ln();
    $fill = !$fill;
    }
}//aqui eu fecho a impressão do relatório
/*e por último, imprimo o Resumo do dia*/
$fill = false;
$tt1=totais($tt['TD']);
$tt2=totais($tt['TE']);
$tt3=totais($tt['ID']);
$tt4=totais($tt['IA']);
$pdf[$n]->SetFillColor(255,0,0);
$pdf[$n]->SetTextColor(255);
$pdf[$n]->SetLineWidth(.2);
$pdf[$n]->SetFont('Arial','B','10');
$pdf[$n]->Cell(6,5,"",0,1);
$pdf[$n]->SetX(70);
$pdf[$n]->Cell(50,6,'RESUMO DO DIA','TLB',0,'C',true);
$pdf[$n]->Cell(20,6,'H:M','TRB',0,'C',true);
$pdf[$n]->SetFillColor(224,235,255);
$pdf[$n]->SetTextColor(0);
$pdf[$n]->SetFont('Arial', '', 8);
$pdf[$n]->Ln();
$pdf[$n]->SetX(70);
$pdf[$n]->Cell(50,5,utf8_decode('Tempo de Direção'),'TLRB',0,'C',true);
$pdf[$n]->Cell(20,5,$tt1,'LRB',0,'C',$fill);
$pdf[$n]->Ln();
$pdf[$n]->SetX(70);
$pdf[$n]->Cell(50,5,'Tempo de Espera','TLRB',0,'C',true);
$pdf[$n]->Cell(20,5,$tt2,'TLRB',0,'C',$fill);
$pdf[$n]->Ln();
$pdf[$n]->SetX(70);
$pdf[$n]->Cell(50,5,utf8_decode('Intervalo de Descanso'),'TLRB',0,'C',true);
$pdf[$n]->Cell(20,5,$tt3,'TLRB',0,'C',$fill);
$pdf[$n]->Ln();
$pdf[$n]->SetX(70);
$pdf[$n]->Cell(50,5,utf8_decode('Intervalo de Alimentação'),'TLRB',0,'C',true);
$pdf[$n]->Cell(20,5,$tt4,'TLRB',0,'C',$fill);

$pdf[$n]->Output('pdf/'.$dia.'/'.$arq.".pdf","F"); //aqui ele salva o aarquivo PDF.
if ($email!=='')
  {
    include('email-pdf.php');
  }
}
?>