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

$data = $_POST['data'] ?? null;
$ano_meta = $_POST['ano'] ?? null;
$mes_meta = $_POST['mes'] ?? null;
$etapa = $_POST['etapa'] ?? null;
$id_funcionario = $_POST['id_funcionario'] ?? null;
$query_string = $_POST['url'] ?? null;

$valor_adicao = $_POST['adicao'] ?? null;
$valor_meta = $_POST['meta'] ?? null;

$ano_escaped = $mes_escaped = $dia_escaped = null;

if ($valor_adicao && !empty($valor_adicao) && $data) {
    $data_obj = new DateTime($data);
    $data_formatada = $data_obj->format('d/m/Y');
    if ($data_formatada) {
        list($dia, $mes, $ano) = explode('/', $data_formatada);
        $ano_escaped = $connectionmysql->real_escape_string($ano);
        $mes_escaped = $connectionmysql->real_escape_string($mes);
        $dia_escaped = $connectionmysql->real_escape_string($dia);
    }
}

if ($valor_meta && !empty($valor_meta)) {
    // Cadastro ou atualização de metas
    $etapa_escaped = $connectionmysql->real_escape_string($etapa);
    $id_funcionario_escaped = $connectionmysql->real_escape_string($id_funcionario);
    $valor_meta_escaped = $connectionmysql->real_escape_string($valor_meta);

    // Verifica se já existe
    $sql_check_meta = "SELECT * FROM metas_producao 
                       WHERE ano = '$ano_meta' 
                       AND mes = '$mes_meta'  
                       AND etapa = '$etapa_escaped' 
                       AND codigo_funcionario = '$id_funcionario_escaped'";
    $result_meta = $connectionmysql->query($sql_check_meta);

    if ($result_meta && $result_meta->num_rows > 0) {
        // UPDATE
        $sql_update_meta = "UPDATE metas_producao 
                            SET meta = '$valor_meta_escaped' 
                            WHERE ano = '$ano_meta' 
                            AND mes = '$mes_meta'  
                            AND etapa = '$etapa_escaped' 
                            AND codigo_funcionario = '$id_funcionario_escaped'";
        if (!$connectionmysql->query($sql_update_meta)) {
            die('Erro ao atualizar meta: ' . $connectionmysql->error);
        }

        // 🔹 Log de atualização
        if (isset($_SESSION['CodUsuario'], $_SESSION['NomeUsuario'])) {
            $dados_depois = [
                'ano'             => $ano_meta,
                'mes'             => $mes_meta,
                'etapa'           => $etapa,
                'codigo_funcionario' => $id_funcionario,
                'meta'            => $valor_meta
            ];
            registrarLogCriacaoDetalhado(
                15, // código do módulo (ajusta conforme tua tabela de logs)
                $_SESSION['CodUsuario'],
                $_SESSION['NomeUsuario'],
                json_encode($dados_depois),
                $id_funcionario // chave de referência
            );
        }
    } else {
        // INSERT
        $sql_insert_meta = "INSERT INTO metas_producao (ano, mes, etapa, codigo_funcionario, meta) 
                            VALUES ('$ano_meta', '$mes_meta',  '$etapa_escaped', '$id_funcionario_escaped', '$valor_meta_escaped')";
        if (!$connectionmysql->query($sql_insert_meta)) {
            die('Erro ao inserir meta: ' . $connectionmysql->error);
        }

        // 🔹 Log de inserção
        if (isset($_SESSION['CodUsuario'], $_SESSION['NomeUsuario'])) {
            $id_inserido = $connectionmysql->insert_id;
            $dados_depois = [
                'ano'             => $ano_meta,
                'mes'             => $mes_meta,
                'etapa'           => $etapa,
                'codigo_funcionario' => $id_funcionario,
                'meta'            => $valor_meta
            ];
            registrarLogCriacaoDetalhado(
                15,
                $_SESSION['CodUsuario'],
                $_SESSION['NomeUsuario'],
                json_encode($dados_depois),
                $id_inserido
            );
        }
    }

    header("Location: detalhe_pcp.php?status=sucesso&acao=criar&id_funcionario=" . $id_funcionario . "&" . $query_string);
    exit();

} elseif ($valor_adicao && !empty($valor_adicao)) {
    // Cadastro de adições
    $etapa_escaped = $connectionmysql->real_escape_string($etapa);
    $id_funcionario_escaped = $connectionmysql->real_escape_string($id_funcionario);
    $valor_adicao_escaped = $connectionmysql->real_escape_string($valor_adicao);

    $sql_insert_adicao = "INSERT INTO adicao_producao (ano, mes, dia, etapa, codigo_funcionario, adicao) 
                          VALUES ('$ano_escaped', '$mes_escaped', '$dia_escaped', '$etapa_escaped', '$id_funcionario_escaped', '$valor_adicao_escaped')";
    if (!$connectionmysql->query($sql_insert_adicao)) {
        die('Erro ao inserir adição: ' . $connectionmysql->error);
    }

    // 🔹 Log de inserção adição
    if (isset($_SESSION['CodUsuario'], $_SESSION['NomeUsuario'])) {
        $id_inserido = $connectionmysql->insert_id;
        $dados_depois = [
            'ano'             => $ano_escaped,
            'mes'             => $mes_escaped,
            'dia'             => $dia_escaped,
            'etapa'           => $etapa,
            'codigo_funcionario' => $id_funcionario,
            'adicao'          => $valor_adicao
        ];
        registrarLogCriacaoDetalhado(
            15, // 🔹 sugiro outro código de módulo para adições
            $_SESSION['CodUsuario'],
            $_SESSION['NomeUsuario'],
            json_encode($dados_depois),
            $id_inserido
        );
    }

    header("Location: detalhe_pcp.php?status=sucesso&acao=criar&id_funcionario=" . $id_funcionario . "&" . $query_string);
    exit();
}

header("Location: detalhe_pcp.php?status=sucesso&acao=criar&id_funcionario=" . $id_funcionario . "&" . $query_string);
exit();
