One Hat Cyber Team
Your IP :
216.73.216.36
Server IP :
162.240.179.46
Server :
Linux vps-14493116.nutrivittasaude.com.br 5.14.0-611.49.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Apr 21 16:39:08 EDT 2026 x86_64
Server Software :
Apache
PHP Version :
8.2.31
Buat File
|
Buat Folder
Eksekusi
Dir :
~
/
home
/
lifeprimeti
/
meta.lifeprimeti.com.br
/
public
/
View File Name :
bloqueio_dias.php
<?php require_once __DIR__ . '/../config/database.php'; requireAuth(); $titulo = 'Bloqueio de Dias'; require_once __DIR__ . '/../includes/header.php'; $empresaId = getEmpresaId(); if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['acao'])) { $acao = $_POST['acao']; if ($acao === 'bloquear') { $data = $_POST['data']; $profissional_id = !empty($_POST['profissional_id']) ? (int)$_POST['profissional_id'] : null; $hora_inicio = !empty($_POST['hora_inicio']) ? $_POST['hora_inicio'] : null; $hora_fim = !empty($_POST['hora_fim']) ? $_POST['hora_fim'] : null; $motivo = trim($_POST['motivo']); $tipo = $profissional_id ? 'profissional' : 'empresa'; try { $pdo->prepare("INSERT INTO bloqueio_dias (empresa_id, profissional_id, data, hora_inicio, hora_fim, motivo, tipo) VALUES (?,?,?,?,?,?,?)") ->execute([$empresaId, $profissional_id, $data, $hora_inicio, $hora_fim, $motivo, $tipo]); $_SESSION['success_msg'] = 'Dia bloqueado com sucesso!'; } catch (PDOException $e) { $_SESSION['error_msg'] = 'Erro: ' . $e->getMessage(); } redirect('bloqueio_dias.php'); } if ($acao === 'desbloquear') { $id = (int)$_POST['id']; $pdo->prepare("DELETE FROM bloqueio_dias WHERE id=? AND empresa_id=?")->execute([$id, $empresaId]); $_SESSION['success_msg'] = 'Bloqueio removido!'; redirect('bloqueio_dias.php'); } } $bloqueios = $pdo->prepare(" SELECT bd.*, u.nome as profissional_nome FROM bloqueio_dias bd LEFT JOIN profissionais p ON bd.profissional_id = p.id LEFT JOIN usuarios u ON p.usuario_id = u.id WHERE bd.empresa_id = ? ORDER BY bd.data DESC "); $bloqueios->execute([$empresaId]); $bloqueiosLista = $bloqueios->fetchAll(); $profissionais = $pdo->prepare("SELECT p.id, u.nome FROM profissionais p JOIN usuarios u ON p.usuario_id = u.id WHERE p.empresa_id = ? AND u.ativo = 1"); $profissionais->execute([$empresaId]); $profissionaisLista = $profissionais->fetchAll(); ?> <div class="row g-4"> <div class="col-lg-4 animate-fadeIn"> <div class="card"> <div class="card-header"><h3 class="card-title"><i class="bi bi-calendar-x me-2 text-danger"></i>Novo Bloqueio</h3></div> <div class="card-body"> <form method="POST"> <input type="hidden" name="acao" value="bloquear"> <div class="mb-3"><label class="form-label">Data</label><input type="date" name="data" class="form-control" required min="<?= dataAtual() ?>"></div> <div class="mb-3"><label class="form-label">Profissional (opcional)</label> <select name="profissional_id" class="form-select"><option value="">Todos (fechamento geral)</option> <?php foreach ($profissionaisLista as $p): ?><option value="<?= $p['id'] ?>"><?= sanitize($p['nome']) ?></option><?php endforeach; ?> </select> </div> <div class="row g-3 mb-3"> <div class="col-6"><label class="form-label">Hora Inicio</label><input type="time" name="hora_inicio" class="form-control"></div> <div class="col-6"><label class="form-label">Hora Fim</label><input type="time" name="hora_fim" class="form-control"></div> </div> <div class="mb-3"><label class="form-label">Motivo</label><textarea name="motivo" class="form-control" rows="2" placeholder="Ex: Feriado, manutencao..."></textarea></div> <button type="submit" class="btn btn-danger w-100"><i class="bi bi-lock me-1"></i>Bloquear</button> </form> </div> </div> </div> <div class="col-lg-8 animate-fadeIn animate-delay-2"> <div class="card"> <div class="card-header"><h3 class="card-title"><i class="bi bi-list me-2 text-info"></i>Dias Bloqueados</h3></div> <div class="card-body p-0"> <div class="table-responsive"> <table class="table"> <thead><tr><th>Data</th><th>Profissional</th><th>Periodo</th><th>Motivo</th><th>Tipo</th><th></th></tr></thead> <tbody> <?php if (empty($bloqueiosLista)): ?><tr><td colspan="6" class="text-center py-4 text-secondary">Nenhum bloqueio registrado</td></tr><?php endif; ?> <?php foreach ($bloqueiosLista as $b): ?> <tr> <td class="fw-semibold"><?= formatarData($b['data']) ?></td> <td><?= sanitize($b['profissional_nome'] ?? '<span class="text-secondary">Geral</span>') ?></td> <td><?= $b['hora_inicio'] ? formatarHora($b['hora_inicio']) . ' - ' . formatarHora($b['hora_fim']) : 'Dia inteiro' ?></td> <td class="text-secondary"><?= sanitize($b['motivo']) ?></td> <td><span class="badge bg-<?= $b['tipo'] === 'profissional' ? 'warning' : 'danger' ?> bg-opacity-10 text-<?= $b['tipo'] === 'profissional' ? 'warning' : 'danger' ?> border border-<?= $b['tipo'] === 'profissional' ? 'warning' : 'danger' ?> border-opacity-25"><?= $b['tipo'] === 'profissional' ? 'Profissional' : 'Empresa' ?></span></td> <td><form method="POST" onsubmit="return confirm('Remover bloqueio?')"><input type="hidden" name="acao" value="desbloquear"><input type="hidden" name="id" value="<?= $b['id'] ?>"><button class="btn btn-danger btn-sm"><i class="bi bi-unlock"></i></button></form></td> </tr> <?php endforeach; ?> </tbody> </table> </div> </div> </div> </div> </div> <?php require_once __DIR__ . '/../includes/footer.php'; ?>