<?php
require '../conexao/conexao.php';
require '../configuacoes.php';
require_once '../conexao/logs.php';
session_start();

// Obter os dados do formulário
$id_pedido_terceiro = $_POST['id_pedido_terceiro'] ?? null;
$id_funcionario     = $_POST['vendedor'] ?? null;
$nome               = $_POST['nome'] ?? null;
$terceiro           = $_POST['terceiro'] ?? null;
$valor              = $_POST['valor'] ?? null;
$data_lancamento    = $_POST['data_lancamento'] ?? null;
$cod_filial         = $_POST['cod_filial'] ?? null;

// Converte valor para float
$valorSemPontos  = str_replace('.', '', $valor);
$valorConvertido = str_replace(',', '.', $valorSemPontos);
$valor           = floatval($valorConvertido);

// Variáveis para filtros
$ano    = $_POST['ano'] ?? null;
$mes    = $_POST['mes'] ?? null;
$filial = $_POST['filial'] ?? null;
$cidade = $_POST['cidade'] ?? null;

// 🔹 Busca os dados antigos antes do update
$dados_antes = [];
if ($id_pedido_terceiro) {
    $sql = "SELECT TERCEIRO, VALOR, DATA_LANCAMENTO, ID_FUNCIONARIO, COD_FILIAL 
            FROM pedido_terceiro 
            WHERE id_pedido_terceiro = ?";
    $stmt_old = $connectionmysql->prepare($sql);
    $stmt_old->bind_param("i", $id_pedido_terceiro);
    $stmt_old->execute();
    $result_old = $stmt_old->get_result();
    if ($row_old = $result_old->fetch_assoc()) {
        // Padroniza chaves e tipos
        $dados_antes = [
            'terceiro'       => $row_old['TERCEIRO'],
            'valor'          => floatval($row_old['VALOR']),
            'id_funcionario' => intval($row_old['ID_FUNCIONARIO']),
            'data_lancamento'=> $row_old['DATA_LANCAMENTO'],
            'cod_filial'     => intval($row_old['COD_FILIAL'])
        ];
    }
    $stmt_old->close();
}

// === Atualiza os dados na tabela ===
$stmt = $connectionmysql->prepare("
    UPDATE pedido_terceiro 
    SET TERCEIRO = ?, VALOR = ?, DATA_LANCAMENTO = ?, ID_FUNCIONARIO = ?, COD_FILIAL = ? 
    WHERE id_pedido_terceiro = ?
");

// Corrige tipos: s = string, d = double, i = integer
$stmt->bind_param(
    "sdsiii",
    $terceiro,        // s
    $valor,           // d
    $data_lancamento, // s
    $id_funcionario,  // i
    $cod_filial,      // i
    $id_pedido_terceiro // i
);


if ($stmt->execute()) {
    // 🔹 Dados depois do update
    $dados_depois = [
        'terceiro'       => $terceiro,
        'valor'          => $valor,
        'id_funcionario' => intval($id_funcionario),
        'data_lancamento'=> $data_lancamento,
        'cod_filial'     => intval($cod_filial)
    ];

    // 🔹 Registrar log
    if (!empty($_SESSION['CodUsuario']) && !empty($_SESSION['NomeUsuario'])) {
        $logGravado = registrarLogAtualizacaoInteligente(
            59,
            intval($_SESSION['CodUsuario']),
            $_SESSION['NomeUsuario'],
            $dados_antes,
            $dados_depois,
            intval($id_pedido_terceiro)
        );

        if (!$logGravado) {
            error_log("Falha ao registrar log do pedido_terceiro ID {$id_pedido_terceiro}");
        }
    }

    // Redireciona com sucesso
    header("Location: detalhes.php?status=sucesso&cidade={$cidade}&filial={$filial}&ano={$ano}&mes={$mes}&id_funcionario={$id_funcionario}");
    exit;
} else {
    echo "Erro ao atualizar pedido: " . $stmt->error;
}

$stmt->close();
$connectionmysql->close();
