<?php
require '../conexao/conexao.php';
require 'query_orcamento.php';

function formataData($var) {
    if ($var <> '') {
        return substr($var, 8, 2) . '/' . substr($var, 5, 2) . '/' . substr($var, 0, 4);
    }
    return '';
}

function getServerIpFromUrl($url) {
    $parsedUrl = parse_url($url);
    if (isset($parsedUrl['host'])) {
        $host = $parsedUrl['host'];
        if (isset($parsedUrl['port'])) {
            return $host . ':' . $parsedUrl['port'];
        }
        return $host;
    }
    return null;
}

$url = "http://" . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$serverIp = getServerIpFromUrl($url);

require 'dompdf/autoload.inc.php';

use Dompdf\Dompdf;
use Dompdf\Options;

$options = new Options();
$options->set('isRemoteEnabled', true);
$dompdf = new Dompdf($options);

// Busca logo
$sqlSelect = "SELECT logo, imagem_cabecalho_pdf, imagem_rodape_pdf FROM personaliza_paginas LIMIT 1";
$resultado = $connectionmysql->query($sqlSelect);
if ($resultado && $resultado->num_rows > 0) {
    $linha = $resultado->fetch_assoc();
    $imagemExistente = $linha['logo'];
    if (!file_exists($_SERVER['DOCUMENT_ROOT'] . '/mandareceita/assets/images/' . $imagemExistente)) {
        $imagemExistente = 'logomanda.png';
    }
    
    // Verifica imagem cabeçalho PDF
    $imagemCabecalhoPdf = $linha['imagem_cabecalho_pdf'];
    if (!$imagemCabecalhoPdf || !file_exists($_SERVER['DOCUMENT_ROOT'] . '/mandareceita/assets/images/' . $imagemCabecalhoPdf)) {
        $imagemCabecalhoPdf = 'header-bg.jpg';
    }
    
    // Verifica imagem rodapé PDF
    $imagemRodapePdf = $linha['imagem_rodape_pdf'];
    if (!$imagemRodapePdf || !file_exists($_SERVER['DOCUMENT_ROOT'] . '/mandareceita/assets/images/' . $imagemRodapePdf)) {
        $imagemRodapePdf = 'header-bg.jpg';
    }
} else {
    $imagemExistente = 'logomanda.png';
    $imagemCabecalhoPdf = 'CAPA_ORCAMENTO_MR.png';
    $imagemRodapePdf = 'CAPA_ORCAMENTO_MR.png';
}

$dataFormatada = formataData(date('Y-m-d H:i:s'));
$filialOrcamento = new FilialOrcamento($connection, $connectionmysql);

// 🚩 Recebe os parâmetros da URL
$formula = $_GET['id'] ?? '';
$dataEntrega = $_GET['data'] ?? '';
$filiais = $_GET['cdfil'] ?? null;
$validadeOrcamento = $_GET['validade'] ?? '';
$n_orcamento = $formula; // Já é o número completo

// Consulta orçamentos
$dadosOrcamento = $filialOrcamento->consultaOrcamentoPorFormula($filiais, '', $dataEntrega, $n_orcamento);

// Build the CSS with proper variable interpolation
$css = '
    <style>
        body {
            font-family: Arial, sans-serif;
            margin: 0;
            padding: 0;
            color: #333;
            background-color: #ffffff;
        }
        .header-background {
            background-image: url("http://' . $serverIp . '/mandareceita/assets/images/' . $imagemCabecalhoPdf . '");
            background-size: cover;
            background-position: center;
            min-height: 200px;
        }
        .footer-background {
            background-image: url("http://' . $serverIp . '/mandareceita/assets/images/' . $imagemRodapePdf . '");
            background-size: cover;
            background-position: center;
            min-height: 150px;
            margin-top: 20px;
        }
        .main-content {
            padding: 20px;
        }';

$html = '
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title>Orçamentos</title>
    ' . $css . '
    <style>
        .page-title {
            font-size: 20px;
            font-weight: bold;
            margin-bottom: 8px;
        }
        .card-box {
            border: 1px solid #ddd;
            border-radius: 5px;
            padding: 15px;
            background-color: #f9f9f9;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
        }
        th, td {
            border: 1px solid #ddd;
            padding: 8px;
            text-align: left;
        }
        th {
            background-color: #6c757d;
            color: white;
            font-weight: bold;
        }
        tr:nth-child(even) {
            background-color: #f8f9fa;
        }
        tr:hover {
            background-color: #e9ecef;
        }
        .total-row th {
            background-color: #28a745;
            color: white;
            font-weight: bold;
        }
        .footer {
            margin-top: 20px;
            font-size: 12px;
            text-align: center;
        }
        .fonte-negrito { font-weight: bold; }
        table { width: 100%; border-collapse: collapse; margin: 20px 0; }
        th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
        th { background: #6c757d; color: white; font-weight: bold; }
        tr:nth-child(even) { background: #f9f9f9; }
        tr:hover { background: #f1f1f1; }
        .header-content { display: flex; justify-content: space-between; align-items: center; margin-bottom: 15px; }
        .header-content img { max-width: 150px; height: auto; float: right; margin-top: -75px; margin-right: 25px; }
        .header-content h2 { margin: 0; }
    </style>
</head>
<body>
    <div class="header-background"></div>
    <div class="card-box mt-3">
        <div class="header-content">
            <div>
                <h2 class="page-title">Orçamentos - ' . $dataFormatada . '</h2>
                <p>Obrigado por enviar sua receita para nosso Atendimento</p>
            </div>
            <div>
                <img src="' . realpath(__DIR__ . '/../KPI/assets/images/' . $imagemExistente) . '" alt="Logo">
            </div>
        </div>

        <table>
            <thead>
                <tr>
                    <th>N° do orçamento</th>
                    <th>Descrição</th>
                    <th>Dosagem</th>
                    <th>Valor Discriminado</th>
                    <th>Valor Final</th>
                </tr>
            </thead>
            <tbody>';

$orcamentosAgrupados = [];

foreach ($dadosOrcamento as $item) {
    $key = $item['ORCAMENTO'] . '-' . $item['NUMEROFORMULA'];
    if (!isset($orcamentosAgrupados[$key])) {
        $orcamentosAgrupados[$key] = [
            'cabecalho' => $item,
            'produtos' => []
        ];
    }
    $orcamentosAgrupados[$key]['produtos'][] = $item;
}

foreach ($orcamentosAgrupados as $orcamento) {
    $cabecalho = $orcamento['cabecalho'];
    $produtos = $orcamento['produtos'];
    $valor_total = $cabecalho['VALOR_ORCAMENTO'];
    $valor_bruto = $cabecalho['VALOR_ORCAMENTO'] + $cabecalho['QVD'];

    $html .= '<tr>
        <td class="fonte-negrito">' . htmlspecialchars($cabecalho['ORCAMENTO'] . '-' . $cabecalho['MULTIPLO']) . '</td>
        <td class="fonte-negrito">' . htmlspecialchars($cabecalho['NOMEFORMAFARMACEUTICA']) . '</td>
        <td class="fonte-negrito">' . $cabecalho['QVD'] . '</td>
        <td class="fonte-negrito">Valor Bruto: R$ ' . number_format($valor_bruto, 2, ',', '.') . '</td>
        <td class="fonte-negrito">R$ ' . number_format($valor_total, 2, ',', '.') . '</td>
    </tr>';

    $html .= '<tr><td colspan="5"><strong>Produtos:</strong><ul>';
    foreach ($produtos as $produto) {
        $html .= '<li>' . htmlspecialchars($produto['NOMEPRODUTO']) . ' - ' . $produto['QUANTIDADE'] . ' ' . $produto['UNIDADE'] . '</li>';
    }
    $html .= '</ul></td></tr>';
}


$html .= '
            </tbody>
        </table>

        <p>A aprovação total, parcial ou qualquer observação deverá ser feita com seu vendedor.</p>
        <p class="footer" style="font-size:15px"><strong>Orçamento válido por ' . htmlspecialchars($validadeOrcamento) . ' dias.</strong></p>
    </div>
    <div class="footer-background"></div>
</body>
</html>';

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

$orcamentoPrincipal = $dadosOrcamento[0] ?? null;
if ($orcamentoPrincipal) {
    $nomeArquivo = sprintf("orcamento-%s-%s.pdf", $orcamentoPrincipal['ORCAMENTO'], $orcamentoPrincipal['MULTIPLO']);
} else {
    $nomeArquivo = "orcamento.pdf";
}

$dompdf->stream($nomeArquivo, array("Attachment" => false));
exit;
