<?php   
ob_start(); 
error_reporting(E_ALL);
ini_set('display_errors', 1);

use Dompdf\Dompdf;
use Dompdf\Options;

// Verifica se o autoloader está na pasta padrão vendor ou na pasta local dompdf
if (file_exists(__DIR__ . "/vendor/autoload.php")) {
    require_once __DIR__ . "/vendor/autoload.php";
} else {
    require_once("dompdf/autoload.inc.php");
}

include_once("includes/conexao.php");
      
if(isset($_GET['id']) && !empty($_GET['id'])){
     
    $id_recibo = $_GET['id'];

    $busca = mysqli_query($con,"SELECT pg.*,cli.* FROM pagamentos pg INNER JOIN clientes cli ON pg.id_cliente=cli.id_cliente
     WHERE pg.id='$id_recibo'");
    $dados = mysqli_fetch_assoc($busca);
     
    $cliente = $dados['nome_cliente'];
    $valor = $dados['valor_pago'];
    $siku = $dados['data'];
    $id_credito = $dados['id_pagamento'];
    
    $query = mysqli_query($con,"SELECT * FROM creditos WHERE id='$id_credito'");
    $result = mysqli_fetch_assoc($query);
     
    $totalLoan = $result['total'];
    $saldo = $totalLoan - $valor;
     
    $Dias = "30";
       
    $date = new DateTime($siku);
    $ano = $date->format('Y'); // Define o ano para o número do recibo não ficar vazio
    
    $date->modify('+' .$Dias. 'day');
    $mudanca_frente_1 = $date->format('Y-m-d');

    $nova_data = $mudanca_frente_1;
     
    $html6 = ''; // Inicializa a variável para evitar Notice

    $html6 .= '<table width="100%">';   
    $html6 .= '<thead style="background-color:silver">';
    $html6 .= '<tr>';
    $html6 .= '<th>Ref.</th>';
    $html6 .= '<th>Total credito</th>';
    $html6 .= '<th>Valor pago</th>';
    $html6 .= '<th>Saldo</th>';
    $html6 .= '<th>Estado</th>';
    $html6 .= '<th>Data</th>';
    $html6 .= '</tr>';
    $html6 .= '</thead>';
    $html6 .= '<tbody>';
    
    $item = 1;
    $estado1 = 'Pago';

    // Como o ponteiro de $busca já leu o primeiro registro acima, 
    // reiniciamos o ponteiro para o loop ler corretamente os dados
    mysqli_data_seek($busca, 0);

    while($row_transacoes = mysqli_fetch_assoc($busca)){
        $html6 .= '<tr>';
        $html6 .= '<td>'.$item. "</td>";
        $html6 .= '<td>'.number_format($totalLoan,2,",","."). "</td>";
        $html6 .= '<td>'.number_format($row_transacoes['valor_pago'],2,",",".") . "</td>";
        $html6 .= '<td>'.number_format($saldo,2,",","."). "</td>";
        $html6 .= '<td>'.$estado1. "</td>";
        $html6 .= '<td>'.$row_transacoes['data'] . "</td></tr>";
    }
} 

$html6 .= '</tbody>';
$html6 .= '</table>';
         
$buscar_empresa = "SELECT * FROM empresa LIMIT 1";
$lingamo = mysqli_query($con,$buscar_empresa);
$associar = mysqli_fetch_assoc($lingamo);
$nome_empresa = $associar['nome_empresa'];
$nuit_empresa = $associar['nuit'];
$endereco_empresa = $associar['endereco'];
$email_empresa = $associar['email'];
$contactos = $associar['contactos'];
$logo_empresa = $associar['logo'];

/*
|--------------------------------------------------------------------------
| PREPARAR LOGO EM BASE64
|--------------------------------------------------------------------------
*/

/*
|--------------------------------------------------------------------------
| LOGO DA EMPRESA - BASE64
|--------------------------------------------------------------------------
*/

$logoPath = '';

if (!empty($logo_empresa)) {

    $nomeLogo = basename($logo_empresa);

    $logoFisico = __DIR__ . '/img/' . $nomeLogo;

    if (is_file($logoFisico) && is_readable($logoFisico)) {

        // Descobrir extensão
        $extensao = strtolower(
            pathinfo($logoFisico, PATHINFO_EXTENSION)
        );

        // Definir MIME sem mime_content_type()
        switch ($extensao) {

            case 'jpg':
            case 'jpeg':
                $mime = 'image/jpeg';
                break;

            case 'png':
                $mime = 'image/png';
                break;

            case 'gif':
                $mime = 'image/gif';
                break;

            case 'webp':
                $mime = 'image/webp';
                break;

            default:
                $mime = 'image/jpeg';
                break;
        }

        // Ler imagem
        $conteudoImagem = file_get_contents($logoFisico);

        if ($conteudoImagem !== false) {

            $logoPath =
                'data:' .
                $mime .
                ';base64,' .
                base64_encode($conteudoImagem);
        }

    } else {

        error_log(
            "LOGO NÃO ENCONTRADO OU SEM PERMISSÃO: " .
            $logoFisico
        );
    }
}

$html = '
<p>Por meio da presente, a Fleusa Mola Micocrédito E.I, declara para os devidos fins ter recebido a importância de
 <b>'.number_format($valor,2,",",".").'MT</b> do senhor(a) <b>'.$cliente.'</b>,
referente ao credito no total de '.number_format($totalLoan,2,",",".").' MT, tendo como saldo o valor de '.number_format($saldo,2,",",".").'.</p>

<br>
<p><b><i>Tabela de Pagamento:</i></b></p>
'.$html6.'

<br><br>
<p align="center" style="padding-top:0px">Assinatura</p><br>                      
<p align="center" style="padding-top:-40px">_______________________________ </p>  
';   

// Configuração correta das Opções do Dompdf para carregar imagens locais de forma segura
$options = new Options();
$options->set('isRemoteEnabled', true);
$options->set('isHtml5ParserEnabled', true);
$options->set('chroot', __DIR__); 

$dompdf = new Dompdf($options);

// Carrega o HTML estruturado de forma limpa (Apenas 1 load_html)
$dompdf->load_html('
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <style>
        table, th, td {
            border: 1px solid black;
            border-collapse: collapse;
            padding: 5px;
            text-align: left;
        }
        .jonas {
            position: relative;
            width: 100%;
            height: 130px;
            margin-bottom: 20px;
        }
        .logo {
            position: absolute;
            left: 0;
            top: 0;
            width: 150px;
        }
        .logo img {
            width: 100%;
            height: auto;
        }
        .empresa {
            position: absolute;
            right: 0;
            top: 0;
            width: 360px;
            text-align: right;
            font-size: 14px;
            line-height: 20px;
        } 
        .titulo {
            text-align: right;
            margin-top: 10px;
            margin-bottom: 20px;
        }
    </style>
</head>
<body>
    <div class="jonas">
        <div class="logo">
    '.(!empty($logoPath)
        ? '<img src="'.$logoPath.'" alt="Logo">'
        : '').'
</div>
        <div class="empresa">
            <strong>'.$nome_empresa.'</strong><br>
            NUIT: '.$nuit_empresa.'<br>
            Cell: (+258) '.$contactos.'<br>
            Endereço: '.$endereco_empresa.'<br>
            Email: '.$email_empresa.'<br>
            Pemba - Moçambique
        </div>
    </div>
    
    <div class="titulo">
        <h3><b>Recibo nº: 00'.$id_recibo.'/'.$ano.'</b></h3>
    </div>
    
    <div class="conteudo">
        '.$html.'
    </div>
</body>
</html>
');

// Limpa qualquer saída acidental do buffer antes de gerar o PDF
if (ob_get_length()) ob_clean();

$dompdf->setPaper('A4', 'portrait');
$dompdf->render();

$dompdf->stream(
    "recibo_".$id_recibo.".pdf", 
    array(
        "Attachment" => false
    )
);
exit;
?>