<?php
require '../../configuacoes.php';
require '../../conexao/conexao.php';
require_once '../../conexao/logs.php';
require '../../sessao.php';

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $valor_percentual = $_POST['percentual'] ?? null;
    $valor_percentual = number_format((float)$valor_percentual, 2, '.', '');
    $id_percentual = $_POST['id_percentual'] ?? null;

    // Sanitiza e valida os dados recebidos
    $id_percentual = is_numeric($id_percentual) ? (int)$id_percentual : null;

    if (empty($valor_percentual)) {
        header("Location: index.php?status=erro&mensagem=O valor é obrigatório");
        exit;
    }

    try {
        // Inicia a transação
        $connectionmysql->begin_transaction();

        if (is_null($id_percentual) || $id_percentual == 0) {
            // 🔹 Inserção
            $stmt = $connectionmysql->prepare("INSERT INTO percentual (valor_percentual) VALUES (?)");
            $stmt->bind_param("d", $valor_percentual);
            $stmt->execute();

            $id_inserido = $stmt->insert_id;

            // Log de criação
            if (isset($_SESSION['CodUsuario'], $_SESSION['NomeUsuario'])) {
                $dados_depois = [
                    'id_percentual'   => $id_inserido,
                    'valor_percentual'=> $valor_percentual
                ];
                registrarLogCriacaoDetalhado(
                    51, // id_tipo_log para "percentual"
                    $_SESSION['CodUsuario'],
                    $_SESSION['NomeUsuario'],
                    json_encode($dados_depois),
                    $id_inserido
                );
            }
        } else {
            // 🔹 Buscar dados antes
            $stmt_busca = $connectionmysql->prepare("SELECT valor_percentual FROM percentual WHERE id_percentual = ?");
            $stmt_busca->bind_param("i", $id_percentual);
            $stmt_busca->execute();
            $result = $stmt_busca->get_result();
            $dados_antes = $result->fetch_assoc();
            $stmt_busca->close();

            // Atualização
            $stmt = $connectionmysql->prepare("UPDATE percentual SET valor_percentual = ? WHERE id_percentual = ?");
            $stmt->bind_param("di", $valor_percentual, $id_percentual);
            $stmt->execute();

            // Log de atualização
            if (isset($_SESSION['CodUsuario'], $_SESSION['NomeUsuario'])) {
                $dados_depois = [
                    'id_percentual'   => $id_percentual,
                    'valor_percentual'=> $valor_percentual
                ];
                registrarLogAtualizacaoInteligente(
                    51, // id_tipo_log para "percentual"
                    $_SESSION['CodUsuario'],
                    $_SESSION['NomeUsuario'],
                    $dados_antes,
                    $dados_depois,
                    $id_percentual
                );
            }
        }

        // Commit
        $connectionmysql->commit();

        header("Location: index.php?status=sucesso");
        exit;
    } catch (Exception $e) {
        $connectionmysql->rollback();
        echo "Erro: " . $e->getMessage();
    } finally {
        if (isset($stmt) && $stmt) $stmt->close();
        $connectionmysql->close();
    }
}
