<?php
require '../../conexao/conexao.php';
require '../../conexao/logs.php';
//require '../../logs/gera-log.php';
require '../../conexao/acesso.php';

$query_string = $_POST['url'] ?? '';

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['ids'])) {
    if (isset($_POST['confirmacao']) && $_POST['confirmacao'] === 'sim') {
        $ids = explode(',', $_POST['ids']);
        $todos_sucesso = true;
        $dados_excluidos = [];

        foreach ($ids as $id) {
            // Validar se o ID é um número inteiro
            $id = trim($id);
            if (!is_numeric($id) || $id <= 0) {
                continue; // Pula IDs inválidos
            }
            // 1️⃣ Pega os dados antes de excluir
            $stmt_antes = $connectionmysql->prepare("SELECT * FROM define_metas WHERE id = ?");
            $stmt_antes->bind_param("i", $id);
            $stmt_antes->execute();
            $result_antes = $stmt_antes->get_result();
            $dados_antes = $result_antes->fetch_assoc();
            $stmt_antes->close();

            // 2️⃣ Executa exclusão
            $stmt_delete = $connectionmysql->prepare("DELETE FROM define_metas WHERE id = ?");
            $stmt_delete->bind_param("i", $id);
            if (!$stmt_delete->execute()) {
                $todos_sucesso = false;
                break; // Se der erro em um, já para
            }
            $stmt_delete->close();

            // 3️⃣ Coleta dados para log consolidado
            if ($dados_antes) {
                $dados_excluidos[] = [
                    'id' => $id,
                    'codigo_filial' => $dados_antes['codigo_filial'] ?? null,
                    'tipo_meta' => $dados_antes['tipo_meta'] ?? null,
                    'codigo_meta' => $dados_antes['codigo_meta'] ?? null,
                    'ano' => $dados_antes['ano'] ?? null ,
                    'mes' => $dados_antes['mes'] ?? null,
                    'valor_meta' => $dados_antes['valor_meta'] ?? 0,
                    'valor_meta_2' => $dados_antes['valor_meta_2'] ?? 0,
                    'codigo_vendedor' => $dados_antes['codigo_vendedor'] ?? null,
                    'codigo_visitador' => $dados_antes['codigo_visitador'] ?? null,
                    'percentual' => $dados_antes['percentual'] ?? null
                ];
            }
        }

        // 4️⃣ Registrar log consolidado de exclusão
        if ($todos_sucesso && !empty($dados_excluidos) && isset($_SESSION['CodUsuario'], $_SESSION['NomeUsuario'])) {
            require_once '../../conexao/logs.php';
            
            $ids_excluidos = array_column($dados_excluidos, 'id');
            $total_registros = count($dados_excluidos);
            
            // Criar estrutura de dados compatível com o formato de exibição padrão
            $dados_antes_formatados = [];
            foreach ($dados_excluidos as $meta) {
                $dados_antes_formatados["Meta ID {$meta['id']}"] = [
                    'valor_meta' => 'R$ ' . number_format($meta['valor_meta'], 2, ',', '.'),
                    'valor_meta_2' => $meta['valor_meta_2'] ? 'R$ ' . number_format($meta['valor_meta_2'], 2, ',', '.') : 'Não definido',
                    'filial' => $meta['codigo_filial'],
                    'ano' => $meta['ano'],
                    'mes' => $meta['mes'],
                    'codigo_vendedor' => $meta['codigo_vendedor'] ?: 'Não definido',
                    'codigo_visitador' => $meta['codigo_visitador'] ?: 'Não definido',
                    'percentual' => $meta['percentual'] ?: 'Não definido'
                ];
            }
            
            $detalhes = "Exclusão consolidada de {$total_registros} meta(s)";
            
            $dados_antes_consolidado = [
                'total_registros' => $total_registros,
                'ids_excluidos' => $ids_excluidos,
                'metas_excluidas' => $dados_antes_formatados
            ];
            
            registrarLogExclusaoDetalhado(
                28, // ID do módulo
                $_SESSION['CodUsuario'],
                $_SESSION['NomeUsuario'],
                json_encode($dados_antes_consolidado, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE),
                implode(',', $ids_excluidos)
            );
        }

        if ($todos_sucesso) {
            header("Location: lista_metas_definidas.php?status=sucesso&acao=excluir&" . $query_string);
            exit();
        } else {
            echo "Erro ao deletar: " . $stmt_delete->error;
        }
    } else {
        // Se a confirmação for 'nao' ou não estiver definida, redireciona
        header("Location: lista_metas_definidas.php?" . $query_string);
        exit();
    }
} else {
    header("Location: lista_metas_definidas.php?status=erro&" . $query_string);
    exit();
}
