getConnection(); // Optional filter: show only deadlines of a given subject (used by "Storico" link from subjects CRUD) $filterSubjectId = isset($_GET['subject_id']) && is_numeric($_GET['subject_id']) ? (int)$_GET['subject_id'] : null; $filterSubjectName = null; if ($filterSubjectId) { $s = $pdo->prepare("SELECT name FROM scad_subjects WHERE id = ?"); $s->execute([$filterSubjectId]); $filterSubjectName = $s->fetchColumn() ?: null; if (!$filterSubjectName) { $filterSubjectId = null; } } $sql = " SELECT d.*, s.name AS subject_name, s.color AS subject_color, GROUP_CONCAT(DISTINCT CONCAT(e.first_name, ' ', e.last_name) ORDER BY e.first_name SEPARATOR ', ') as responsabili, GROUP_CONCAT(DISTINCT e.department ORDER BY e.department SEPARATOR ', ') as reparti_persone, d.departments as reparti_assegnati, (SELECT COUNT(*) FROM scad_deadline_attachments att WHERE att.deadline_id = d.id) as attachment_count FROM scad_deadlines d LEFT JOIN scad_subjects s ON s.id = d.subject_id LEFT JOIN scad_deadline_employee de ON de.deadline_id = d.id LEFT JOIN employees e ON e.id = de.employee_id "; $params = []; if ($filterSubjectId) { $sql .= " WHERE d.subject_id = ?"; $params[] = $filterSubjectId; } $sql .= " GROUP BY d.id ORDER BY (d.status = 'completed') ASC, d.due_date ASC"; $stmt = $pdo->prepare($sql); $stmt->execute($params); $deadlines = $stmt->fetchAll(PDO::FETCH_ASSOC); $employees = $pdo->query("SELECT id, first_name, last_name, department FROM employees WHERE status = 'active' ORDER BY first_name")->fetchAll(PDO::FETCH_ASSOC); $departments = $pdo->query("SELECT DISTINCT department FROM employees WHERE department IS NOT NULL AND department != '' ORDER BY department")->fetchAll(PDO::FETCH_COLUMN); $subjects = $pdo->query("SELECT id, name, color FROM scad_subjects ORDER BY name")->fetchAll(PDO::FETCH_ASSOC); $today = date('Y-m-d'); ?> Scadenzario - Lista Scadenze
Storico per argomento: (tutte le scadenze — aperte e chiuse)
Rimuovi filtro
Lista Scadenze
Argomenti Calendario

Nessuna scadenza registrata.
Clicca "Nuova Scadenza" per aggiungere la prima.

data-subject-color="" style="--subject-color: " data-department="" data-employees="" data-due-date="" data-check-date="">
0): ?>
data-subject-color="" style="--subject-color: " data-department="" data-employees="" data-due-date="" data-check-date="">
Argomento Dettaglio Legge/Art. Scadenza Verifica Responsabili Stato Azioni
0): ?>