No tienes un centro asignado.
'; require_once "_incl/post-body.php"; exit; } define('SC_MAX_DEBTS', 3); $valid_statuses = ['Pedido', 'En preparación', 'Listo', 'Entregado', 'Deuda']; /** * Load personas from the Alumnos filesystem (photos still on disk). * Returns array keyed by "{aulario_id}:{alumno_name}". */ function sc_load_personas_from_alumnos($centro_id) { $aularios = db_get_aularios($centro_id); $personas = []; $aularios_dir = "/DATA/entreaulas/Centros/$centro_id/Aularios"; foreach ($aularios as $aulario_id => $aulario_data) { $aulario_name = $aulario_data['name'] ?? $aulario_id; $alumnos_path = "$aularios_dir/$aulario_id/Alumnos"; if (!is_dir($alumnos_path)) { continue; } $alumno_dirs = glob("$alumnos_path/*/", GLOB_ONLYDIR) ?: []; usort($alumno_dirs, fn($a, $b) => strcasecmp(basename($a), basename($b))); foreach ($alumno_dirs as $alumno_dir) { $alumno_name = basename($alumno_dir); $key = $aulario_id . ':' . $alumno_name; $personas[$key] = [ 'Nombre' => $alumno_name, 'Region' => $aulario_name, 'AularioID' => $aulario_id, 'HasPhoto' => file_exists("$alumno_dir/photo.jpg"), ]; } } return $personas; } // Determine if creating or editing $order_id = safe_id($_GET['id'] ?? ''); $is_new = $order_id === ''; if ($is_new) { $order_id = db_next_supercafe_ref($centro_id); } // Load existing order from DB (or defaults) $order_data = [ 'Fecha' => date('Y-m-d'), 'Persona' => '', 'Comanda' => '', 'Notas' => '', 'Estado' => 'Pedido', ]; if (!$is_new) { $existing = db_get_supercafe_order($centro_id, $order_id); if ($existing) { $order_data = [ 'Fecha' => $existing['fecha'], 'Persona' => $existing['persona'], 'Comanda' => $existing['comanda'], 'Notas' => $existing['notas'], 'Estado' => $existing['estado'], ]; } } $personas = sc_load_personas_from_alumnos($centro_id); $menu = db_get_supercafe_menu($centro_id); // Group personas by aulario for the optgroup picker $personas_by_aulario = []; foreach ($personas as $key => $pinfo) { $personas_by_aulario[$pinfo['Region']][$key] = $pinfo; } $error = ''; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $persona_key = $_POST['Persona'] ?? ''; $notas = trim($_POST['Notas'] ?? ''); $estado = $_POST['Estado'] ?? 'Pedido'; if (!in_array($estado, $valid_statuses, true)) { $estado = 'Pedido'; } if ($persona_key === '' || (!empty($personas) && !array_key_exists($persona_key, $personas))) { $error = '¡Hay que elegir una persona válida!'; } else { $comanda_parts = []; if (!empty($menu)) { foreach ($menu as $category => $items) { $val = trim($_POST[$category] ?? ''); if ($val !== '' && array_key_exists($val, $items)) { $comanda_parts[] = $val; } } } else { $manual = trim($_POST['Comanda_manual'] ?? ''); if ($manual !== '') { $comanda_parts[] = $manual; } } $comanda_str = implode(', ', $comanda_parts); $prev_persona = $order_data['Persona']; if ($is_new || $prev_persona !== $persona_key) { $debt_count = db_supercafe_count_debts($centro_id, $persona_key); if ($debt_count >= SC_MAX_DEBTS) { $error = 'Esta persona tiene ' . $debt_count . ' comandas en deuda. No se puede realizar el pedido.'; } } if ($error === '') { db_upsert_supercafe_order( $centro_id, $order_id, date('Y-m-d'), $persona_key, $comanda_str, $notas, $is_new ? 'Pedido' : $estado ); header('Location: /entreaulas/supercafe.php'); exit; } } } require_once "_incl/pre-body.php"; ?>= htmlspecialchars($order_id) ?>