<?php
require_once 'db_config.php';

// Função para converter HH:MM:SS para minutos
function horarioParaMinutos($horario) {
    list($h, $m, $s) = explode(':', $horario);
    return ($h * 60) + $m;
}

// Função para converter minutos para HH:MM:SS
function minutosParaHorario($minutos) {
    $horas = floor($minutos / 60);
    $minutos = $minutos % 60;
    return sprintf('%02d:%02d:00', $horas, $minutos);
}

$mensagem = '';
$erro = '';

// Processar o envio do formulário principal
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['cadastrar_todos'])) {
    $grupoId = (int)$_POST['grupo_id'];
    $grupoTrabalho = trim($_POST['grupo_trabalho']);
    $ano = (int)$_POST['ano'];
    $horario = trim($_POST['horas_vendidas']);

    $horasVendidas = horarioParaMinutos($horario);

    if ($grupoId && $grupoTrabalho && $ano && $horasVendidas >= 0) {
        try {
            $pdo->beginTransaction();

            for ($mes = 1; $mes <= 12; $mes++) {
                $stmt = $pdo->prepare("SELECT id FROM horas_vendidas WHERE grupo_id = ? AND grupo_trabalho = ? AND ano = ? AND mes = ?");
                $stmt->execute([$grupoId, $grupoTrabalho, $ano, $mes]);
                $existente = $stmt->fetch(PDO::FETCH_ASSOC);

                if ($existente) {
                    $stmtUpdate = $pdo->prepare("UPDATE horas_vendidas SET horas_vendidas = ? WHERE id = ?");
                    $stmtUpdate->execute([$horasVendidas, $existente['id']]);
                } else {
                    $stmtInsert = $pdo->prepare("INSERT INTO horas_vendidas (grupo_id, grupo_trabalho, ano, mes, horas_vendidas) VALUES (?, ?, ?, ?, ?)");
                    $stmtInsert->execute([$grupoId, $grupoTrabalho, $ano, $mes, $horasVendidas]);
                }
            }

            $pdo->commit();
            $mensagem = "Horas vendidas cadastradas/atualizadas para todos os meses do ano.";
        } catch (Exception $e) {
            $pdo->rollBack();
            $erro = "Erro ao salvar horas vendidas: " . $e->getMessage();
        }
    } else {
        $erro = "Preencha todos os campos corretamente.";
    }
}

// Processar edição individual
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['editar_mes'])) {
    $id = (int)$_POST['id'];
    $horarioEditado = trim($_POST['horas_vendidas_edit']);
    $horasVendidasEdit = horarioParaMinutos($horarioEditado);

    if ($id && $horasVendidasEdit >= 0) {
        try {
            $stmtUpdate = $pdo->prepare("UPDATE horas_vendidas SET horas_vendidas = ? WHERE id = ?");
            $stmtUpdate->execute([$horasVendidasEdit, $id]);
            $mensagem = "Horas vendidas atualizadas com sucesso!";
        } catch (Exception $e) {
            $erro = "Erro ao atualizar horas: " . $e->getMessage();
        }
    }
}

$grupos = [];
try {
    $stmt = $pdo->query("SELECT id, nome FROM grupos_empresas ORDER BY nome ASC");
    $grupos = $stmt->fetchAll(PDO::FETCH_ASSOC);
} catch (PDOException $e) {
    die("Erro ao buscar grupos: " . $e->getMessage());
}

$gruposTrabalho = ['Fechamento Fiscal', 'Input Dados', 'Contábil', 'Financeiro'];

// Buscar registros para exibir tabela
$registros = [];
if (!empty($_POST['grupo_id']) && !empty($_POST['grupo_trabalho']) && !empty($_POST['ano'])) {
    try {
        $stmt = $pdo->prepare("SELECT * FROM horas_vendidas WHERE grupo_id = ? AND grupo_trabalho = ? AND ano = ? ORDER BY mes ASC");
        $stmt->execute([(int)$_POST['grupo_id'], trim($_POST['grupo_trabalho']), (int)$_POST['ano']]);
        $registros = $stmt->fetchAll(PDO::FETCH_ASSOC);
    } catch (PDOException $e) {
        die("Erro ao buscar registros: " . $e->getMessage());
    }
}
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <title>Cadastrar Horas Vendidas</title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/5.0.8/jquery.inputmask.min.js"></script>
    <style>
        body { background-color: #f5f8fa; font-family: 'Poppins', sans-serif; }
        .container { background: #fff; padding: 30px; border-radius: 10px; margin-top: 30px; box-shadow: 0 4px 10px rgba(0,0,0,0.1); }
        h2 { color: #1a73e8; font-weight: bold; }
    </style>
</head>
<body>
<div class="container">
    <a href="dashboard.php" class="btn btn-primary mb-3">Voltar</a>
    <h2>Cadastrar Horas Vendidas - Ano Inteiro</h2>

    <?php if (!empty($mensagem)): ?>
        <div class="alert alert-success"> <?= $mensagem ?> </div>
    <?php elseif (!empty($erro)): ?>
        <div class="alert alert-danger"> <?= $erro ?> </div>
    <?php endif; ?>

    <form method="POST">
        <input type="hidden" name="cadastrar_todos" value="1">
        <div class="mb-3">
            <label class="form-label">Grupo de Empresas:</label>
            <select name="grupo_id" class="form-select" required>
                <option value="">Selecione um grupo</option>
                <?php foreach ($grupos as $grupo): ?>
                    <option value="<?= $grupo['id'] ?>" <?= (isset($_POST['grupo_id']) && $_POST['grupo_id'] == $grupo['id']) ? 'selected' : '' ?>>
                        <?= htmlspecialchars($grupo['nome']) ?>
                    </option>
                <?php endforeach; ?>
            </select>
        </div>

        <div class="mb-3">
            <label class="form-label">Grupo de Trabalho:</label>
            <select name="grupo_trabalho" class="form-select" required>
                <option value="">Selecione o grupo de trabalho</option>
                <?php foreach ($gruposTrabalho as $gt): ?>
                    <option value="<?= htmlspecialchars($gt) ?>" <?= (isset($_POST['grupo_trabalho']) && $_POST['grupo_trabalho'] == $gt) ? 'selected' : '' ?>>
                        <?= htmlspecialchars($gt) ?>
                    </option>
                <?php endforeach; ?>
            </select>
        </div>

        <div class="row g-3">
            <div class="col-md-4">
                <label class="form-label">Ano:</label>
                <select name="ano" class="form-select" required>
                    <?php for ($i = date('Y'); $i >= date('Y') - 5; $i--): ?>
                        <option value="<?= $i ?>" <?= (isset($_POST['ano']) && $_POST['ano'] == $i) ? 'selected' : '' ?>><?= $i ?></option>
                    <?php endfor; ?>
                </select>
            </div>

            <div class="col-md-4">
                <label class="form-label">Horas Vendidas (HH:MM:SS):</label>
                <input type="text" name="horas_vendidas" id="horas_vendidas" class="form-control" placeholder="00:00:00" required>
            </div>
        </div>

        <button type="submit" class="btn btn-success mt-4">Salvar Horas para o Ano Inteiro</button>
    </form>

    <?php if (!empty($registros)): ?>
    <h4 class="mt-5">Horas Vendidas - <?= htmlspecialchars($_POST['ano']) ?></h4>
    <table class="table table-bordered mt-3">
        <thead class="table-primary">
            <tr>
                <th>Mês</th>
                <th>Horas Vendidas</th>
                <th>Ações</th>
            </tr>
        </thead>
        <tbody>
            <?php foreach ($registros as $reg): ?>
                <tr>
                    <form method="POST">
                        <td><?= str_pad($reg['mes'], 2, '0', STR_PAD_LEFT) ?></td>
                        <td>
                            <input type="text" name="horas_vendidas_edit" value="<?= minutosParaHorario($reg['horas_vendidas']) ?>" class="form-control" style="width:120px;">
                        </td>
                        <td>
                            <input type="hidden" name="id" value="<?= $reg['id'] ?>">
                            <input type="hidden" name="editar_mes" value="1">
                            <button type="submit" class="btn btn-primary btn-sm">Salvar</button>
                        </td>
                    </form>
                </tr>
            <?php endforeach; ?>
        </tbody>
    </table>
    <?php endif; ?>
</div>

<script>
$(document).ready(function(){
    $('#horas_vendidas').inputmask('99:99:99');
});
</script>

</body>
</html>
