<?php
require_once '../vendor/autoload.php';
require_once '../config/db.php';

use Dompdf\Dompdf;
use Dompdf\Options;

session_start();
if (!isset($_SESSION['user_id'])) {
    header("Location: login.php");
    exit;
}

$user_id = $_SESSION['user_id'];
$fiado_id = intval($_GET['fiado_id'] ?? 0);

if (!$fiado_id) {
    die("Carnê não encontrado.");
}

// Busca dados do fiado e do cliente
$stmt = $pdo->prepare("
    SELECT f.*, c.name as cliente_nome, c.cpf, c.phone
    FROM fiados f
    JOIN client_customers c ON c.id=f.customer_id
    WHERE f.id=? AND f.user_id=?
");
$stmt->execute([$fiado_id, $user_id]);
$fiado = $stmt->fetch();

if (!$fiado) {
    die("Carnê não encontrado.");
}

// Busca parcelas
$stmt = $pdo->prepare("SELECT * FROM installments WHERE fiado_id = ? ORDER BY due_date ASC");
$stmt->execute([$fiado_id]);
$parcelas = $stmt->fetchAll();

// Busca dados do cedente a partir da tabela settings do usuário logado
$stmt = $pdo->prepare("SELECT * FROM settings WHERE user_id = ?");
$stmt->execute([$user_id]);
$settings = $stmt->fetch(PDO::FETCH_ASSOC);

// Dados do cedente usando configurações da tabela settings
$cedente_nome = $settings['nome_empresa'] ?? "Seu Estabelecimento";
$cedente_cnpj = $settings['cnpj'] ?? "CNPJ: 00.000.000/0000-00";
$cedente_endereco = $settings['endereco'] ?? "Endereço, Cidade/UF";
$cedente_contato = $settings['telefone'] ?? "Contato: (00) 00000-0000";
$cedente_logo = $settings['logo'] ?? "";

// Corrige caminho da logo para URL absoluta se necessário
$logo_url_pdf = "";
if (!empty($cedente_logo)) {
    if (!preg_match('/^https?:\/\//', $cedente_logo)) {
        $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? "https" : "http";
        $host = $_SERVER['HTTP_HOST'];
        $logo_url_pdf = $protocol . '://' . $host . '/' . ltrim($cedente_logo, '/');
    } else {
        $logo_url_pdf = $cedente_logo;
    }
}

// CSS do carnê, altura aumentada para 220px
$html = '<style>
body { font-family: Arial, DejaVu Sans, sans-serif; font-size:12px; color:#222; margin:0; }
.parcela {
    border:1px solid #3570c6;
    margin-bottom:12px;
    border-radius:5px;
    overflow:hidden;
    height:220px;
    max-height:220px;
}
.table-top { width:100%; border-collapse:collapse; }
.table-top td, .table-top th { vertical-align:top; }
.im-logo { font-size:18px; color:#3570c6; font-weight:bold; letter-spacing:2px; }
.bold { font-weight:bold; }
.section { border-right:1px solid #3570c6; padding:4px 7px; }
.section:last-child { border-right:none; }
.titulo { font-size:11px; color:#3570c6; font-weight:bold; }
.valor { font-size:13px; color:#222; font-weight:bold; }
.info { font-size:10px; color:#444; }
.divisor { border-top:1px dashed #aaa; margin:5px 0; }
.center { text-align:center; }
td { font-size:12px; }
tr { page-break-inside:avoid; }
.sacado {font-size:10px;}
.logo-pdf {display:block; margin:0 auto 4px auto; max-height:54px;}
.pago { background: #eafff1; color: #1bbf5c; font-weight: bold; border-radius: 4px; padding: 5px 20px; margin: 10px auto 0 auto; font-size: 15px; display:block; text-align:center;}
@media print {
    .parcela { page-break-inside: avoid; }
}
</style>';

foreach ($parcelas as $i => $p) {
    $num_parcela = ($i+1) . "/" . count($parcelas);
    $vencimento = date('d/m/Y', strtotime($p['due_date']));
    $valor = "R$ " . number_format($p['amount'],2,',','.');
    $doc_num = $fiado_id . '-' . ($i+1);
    $processamento = date('d/m/Y', strtotime('-30 days', strtotime($p['due_date'])));
    $especie = "R$";
    $descricao = htmlspecialchars($fiado['description']);

    $logoHtml = (!empty($logo_url_pdf) ? '<img class="logo-pdf" src="'.htmlspecialchars($logo_url_pdf).'" alt="Logo">' : '<div class="im-logo">IM</div>');

    $html .= '
    <div class="parcela">
    <table class="table-top" width="100%">
        <tr>
            <td class="section" width="18%">
                '.$logoHtml.'
                <div class="center info bold">Parcela</div>
                <div class="center">'.$num_parcela.'</div>
                <div class="center info bold" style="margin-top:1px;">Vencimento</div>
                <div class="center bold" style="font-size:12px; color:#3570c6;">'.$vencimento.'</div>
            </td>
            <td class="section" width="50%">
                '.$logoHtml.'
                <div class="info bold">Cedente: '.$cedente_nome.'</div>
                <div class="info">'.$cedente_cnpj.' | '.$cedente_endereco.' | '.$cedente_contato.'</div>
                <table width="100%" style="font-size:10px;margin-top:2px;">
                    <tr>
                        <td>Documento</td>
                        <td>Espécie</td>
                        <td>Processamento</td>
                    </tr>
                    <tr>
                        <td class="bold">'.$doc_num.'</td>
                        <td class="bold">'.$especie.'</td>
                        <td class="bold">'.$processamento.'</td>
                    </tr>
                </table>
                <div style="margin-top:2px;font-size:10px;" class="info">'.$descricao.'</div>
            </td>
            <td class="section" width="18%" style="vertical-align:top;">
                <div class="center info bold">Parcela</div>
                <div class="center">'.$num_parcela.'</div>
                <div class="center info bold" style="margin-top:1px;">Vencimento</div>
                <div class="center bold" style="font-size:12px; color:#3570c6;">'.$vencimento.'</div>
                <div class="center info bold" style="margin-top:8px;">Total</div>
                <div class="center valor" style="margin-bottom:8px;">'.$valor.'</div>';
    // Mostrar "PAGO" centralizado e destacado se estiver pago
    if (isset($p['paid']) && $p['paid']) {
        $html .= '<div class="pago">PAGO</div>';
    }
    $html .= '
            </td>
        </tr>
    </table>
    <div class="divisor"></div>
    <table width="100%" style="font-size:10px;">
        <tr>
            <td width="45%" class="sacado">
                <span class="info bold">Sacado:</span>
                <span class="info">'.htmlspecialchars($fiado["cliente_nome"]).' - CPF: '.htmlspecialchars($fiado["cpf"]).' - Tel: '.htmlspecialchars($fiado["phone"]).'</span>
            </td>
            <td width="55%" class="sacado">
                <span class="info bold">Assinatura Cliente</span>
            </td>
        </tr>
    </table>
    </div>
    ';
}

$options = new Options();
$options->set('isRemoteEnabled', true);
$options->set('isHtml5ParserEnabled', true);
$dompdf = new Dompdf($options);
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'portrait');
$dompdf->render();

$filename = "carne_fiado_{$fiado_id}.pdf";
$dompdf->stream($filename, ["Attachment" => false]);
exit;
?>