<?php
require '../link_orcamento/dompdf/autoload.inc.php';
require '../conexao/conexao.php';
require '../configuracao/get_config.php';
require './consulta_bd.php';
require '../querys/query-configuracao-metas.php';

use Dompdf\Dompdf;
use Dompdf\Options;

error_reporting(E_ALL);
ini_set('display_errors', 1);

// Classe e configs
$consulta_painel_vendedores = new ConsultaPainelVendedores();
$configuracoes = new Configuracoes();
$ConfiguracaoMetas = new ConfiguracaoMetas($connectionmysql);
$ConsultaPermissoes = $ConfiguracaoMetas->consultaPermissoes();
$nome_para_vendedores = $configuracoes->get_nomeclatura_vendedor(true);
$nome_para_vendedor = $configuracoes->get_nomeclatura_vendedor();

$exibirManipulado = false;
$exibirRevenda = false;
$exibirMarcaPropria = false;

foreach ($ConsultaPermissoes as $permissao) {
    if ($permissao['id_tipo_meta'] == 2) {
        $exibirManipulado = true;
    } elseif ($permissao['id_tipo_meta'] == 1) {
        $exibirRevenda = true;
    } elseif ($permissao['id_tipo_meta'] == 3) {
        $exibirMarcaPropria = true;
    }
}

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

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

// DEBUG: pega o conteúdo bruto do input e decodifica
$rawInput = file_get_contents('php://input');
$data = json_decode($rawInput, true);

// Se não recebeu dados, retorna erro e para execução
if (!$data) {
    header('Content-Type: application/json; charset=utf-8');
    echo json_encode(['success' => false, 'message' => 'Erro ao receber os dados ou JSON inválido']);
    exit;
}

// Pegando dados do POST JSON
$ano = $data['ano'] ?? null;
$mes = $data['mes'] ?? null;
$cdfun = $data['cdfun'] ?? null;
$nomefun = $data['nomefun'] ?? null;

if (!$ano || !$mes || !$nomefun) {
    header('Content-Type: application/json; charset=utf-8');
    echo json_encode(['success' => false, 'message' => 'Faltando parâmetros obrigatórios']);
    exit;
}


// Config DomPDF
$options = new Options();
$options->set('isRemoteEnabled', true);
$options->set('isHtml5ParserEnabled', true);
$options->set('isPhpEnabled', true);
$options->set('chroot', $_SERVER['DOCUMENT_ROOT']);

$dompdf = new Dompdf($options);

// Busca logo do banco
$sqlSelect = "SELECT logo FROM personaliza_paginas LIMIT 1";
$resultado = $connectionmysql->query($sqlSelect);
$imagemExistente = ($resultado && $resultado->num_rows > 0)
    ? $resultado->fetch_assoc()['logo']
    : 'logomanda.png';

$caminhoImages = $_SERVER['DOCUMENT_ROOT'] . '\KPI\assets/images/' . $imagemExistente;
$caminhoLogo   = $_SERVER['DOCUMENT_ROOT'] . '\KPI\assets/images/logo/' . $imagemExistente;

if (file_exists($caminhoImages)) {
    $caminhoFinal = $caminhoImages;
} elseif (file_exists($caminhoLogo)) {
    $caminhoFinal = $caminhoLogo;
} else {
    $caminhoFinal = file_exists($_SERVER['DOCUMENT_ROOT'] . '\KPI\assets/images/logomanda.png')
        ? $_SERVER['DOCUMENT_ROOT'] . '\KPI\assets/images/logomanda.png'
        : $_SERVER['DOCUMENT_ROOT'] . '\KPI\assets/images/logo/logomanda.png';
}

$imagemSrc = '';
if (!empty($caminhoFinal) && file_exists($caminhoFinal)) {
    $tipoImagem = pathinfo($caminhoFinal, PATHINFO_EXTENSION);
    $imagemBase64 = base64_encode(file_get_contents($caminhoFinal));
    $imagemSrc = 'data:image/' . $tipoImagem . ';base64,' . $imagemBase64;
}

$primeiroDia = "01/" . str_pad($mes, 2, '0', STR_PAD_LEFT) . "/$ano";
$ultimoDia = (new DateTime("$ano-" . str_pad($mes, 2, '0', STR_PAD_LEFT) . "-01"))->modify('last day of this month')->format('d/m/Y');
$Data = $primeiroDia . ' a ' . $ultimoDia;

// Monta o HTML do PDF
$html = <<<HTML
<!DOCTYPE html>
<html lang="pt-br">
<head>
<meta charset="UTF-8">
<style>
    table {
        margin: 0 auto;
        text-align: center;
        width: 100%;
        border-collapse: collapse;
    }
    th, td {
        border: 1px solid black;
        padding: 5px;
    }
    .header-content {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 20px;
    }
    .logo {
        max-width: 150px;
    }
    .titulo-container h2 {
        margin: 0;
        padding: 5px;
    }
</style>
</head>
<body>
<div class="wrapper candidato">
    <div class="container-fluid">
        <div class="card-box mt-3">
            <div class="row">
                <div class="header-content">
                    <div class="col-12">
                    <div style="float: left; width: 80%; text-align: left;">
                        <h1>{$nome_para_vendedor}: {$nomefun}</h1>
                    </div>
                    <div style="float: right; width: 20%; text-align: right;">
                        <img src="{$imagemSrc}" class="logo" alt="Logo">
                    </div>
                    </div>
                </div>
                <div class="col-12">
                    <div class="titulo-container"><h2>Valores - {$Data}</h2></div>
                </div>
            </div>
        </div>
    </div>
</div>
<table>
<thead>
<tr>
    <th rowspan="2">Filiais</th>
HTML;

if ($exibirManipulado) $html .= "<th colspan='4'>Manipulado</th>";
if ($exibirRevenda) $html .= "<th colspan='3'>Revenda</th>";
if ($exibirMarcaPropria) $html .= "<th colspan='3'>Marca Própria</th>";
$html .= "<th colspan='3'>Total Geral</th></tr><tr>";

if ($exibirManipulado) {
    $html .= "<th>Meta</th><th>Realizado</th><th>Terceiros</th><th>Projeção</th>";
}
if ($exibirRevenda) {
    $html .= "<th>Meta</th><th>Realizado</th><th>Projeção</th>";
}
if ($exibirMarcaPropria) {
    $html .= "<th>Meta</th><th>Realizado</th><th>Projeção</th>";
}
$html .= "<th>Meta</th><th>Realizado</th><th>Projeção</th></tr></thead><tbody>";

foreach ($data['dados'] as $linha) {
    $html .= "<tr><td>{$linha[0]}</td>";
    $index = 1;

    if ($exibirManipulado) {
        $html .= "<td>{$linha[$index++]}</td><td>{$linha[$index++]}</td><td>{$linha[$index++]}</td><td>{$linha[$index++]}</td>";
    }
    if ($exibirRevenda) {
        $html .= "<td>{$linha[$index++]}</td><td>{$linha[$index++]}</td><td>{$linha[$index++]}</td>";
    }
    if ($exibirMarcaPropria) {
        $html .= "<td>{$linha[$index++]}</td><td>{$linha[$index++]}</td><td>{$linha[$index++]}</td>";
    }
    $html .= "<td>{$linha[$index++]}</td><td>{$linha[$index++]}</td><td>{$linha[$index++]}</td></tr>";
}

$html .= "</tbody></table><br><br><div style='text-align:center;margin-top:50px;'><hr style='width:300px;border:1px solid black;'><p>{$nomefun}</p></div></body></html>";

// Gera PDF e exibe no navegador
$dompdf->loadHtml($html);
$dompdf->setPaper('A4', 'landscape');
$dompdf->render();

// Se quiser baixar direto (Attachment => 1)
// $dompdf->stream('relatorio_de_metas.pdf', ['Attachment' => 1]);

// Se quiser mostrar no navegador (Attachment => 0)
$dompdf->stream('relatorio_de_metas.pdf', ['Attachment' => 0]);

exit;
