up
This commit is contained in:
@@ -0,0 +1,65 @@
|
||||
<?php
|
||||
/**
|
||||
* modules/turnero/api/save_lugar.php
|
||||
* GET ?id=X → devuelve datos de un lugar
|
||||
* POST {nombre, descripcion, sort_order, activo} → crear
|
||||
* POST {id, nombre, descripcion, sort_order, activo} → actualizar
|
||||
* POST {id, _delete: true} → eliminar
|
||||
*/
|
||||
require_once __DIR__ . '/_helpers.php';
|
||||
|
||||
requireTurnero();
|
||||
|
||||
// ── GET: devolver datos de un lugar ──────────────────────────
|
||||
if ($_SERVER['REQUEST_METHOD'] === 'GET') {
|
||||
$id = (int)($_GET['id'] ?? 0);
|
||||
if (!$id) jsonError('ID requerido');
|
||||
$row = db()->prepare('SELECT * FROM turnero_lugares WHERE id = ?');
|
||||
$row->execute([$id]);
|
||||
$data = $row->fetch(PDO::FETCH_ASSOC);
|
||||
if (!$data) jsonError('Lugar no encontrado', 404);
|
||||
jsonOk(['data' => $data]);
|
||||
}
|
||||
|
||||
requireMethod('POST');
|
||||
$input = inputJson();
|
||||
|
||||
$id = (int)($input['id'] ?? 0);
|
||||
$delete = !empty($input['_delete']);
|
||||
|
||||
// ── ELIMINAR ─────────────────────────────────────────────────
|
||||
if ($delete) {
|
||||
if (!$id) jsonError('ID requerido');
|
||||
// Bloquear si tiene turnos asignados
|
||||
$stmt = db()->prepare('SELECT COUNT(*) FROM turnero_turnos WHERE lugar_destino_id = ?');
|
||||
$stmt->execute([$id]);
|
||||
if ($stmt->fetchColumn() > 0) {
|
||||
jsonError('No se puede eliminar: tiene turnos asignados. Desactívelo en su lugar.');
|
||||
}
|
||||
$stmt = db()->prepare('DELETE FROM turnero_lugares WHERE id = ?');
|
||||
$stmt->execute([$id]);
|
||||
jsonOk([], 'Lugar eliminado');
|
||||
}
|
||||
|
||||
// ── CREAR / ACTUALIZAR ───────────────────────────────────────
|
||||
$nombre = trim($input['nombre'] ?? '');
|
||||
$desc = trim($input['descripcion'] ?? '');
|
||||
$sortOrder = (int)($input['sort_order'] ?? 99);
|
||||
$activo = (int)($input['activo'] ?? 1);
|
||||
|
||||
if ($nombre === '') jsonError('El nombre es requerido');
|
||||
if ($sortOrder < 1) jsonError('El orden debe ser mayor a 0');
|
||||
|
||||
if ($id) {
|
||||
$stmt = db()->prepare(
|
||||
'UPDATE turnero_lugares SET nombre=?, descripcion=?, sort_order=?, activo=? WHERE id=?'
|
||||
);
|
||||
$stmt->execute([$nombre, $desc ?: null, $sortOrder, $activo, $id]);
|
||||
jsonOk(['id' => $id], 'Lugar actualizado');
|
||||
} else {
|
||||
$stmt = db()->prepare(
|
||||
'INSERT INTO turnero_lugares (nombre, descripcion, sort_order, activo) VALUES (?, ?, ?, ?)'
|
||||
);
|
||||
$stmt->execute([$nombre, $desc ?: null, $sortOrder, $activo]);
|
||||
jsonOk(['id' => (int)db()->lastInsertId()], 'Lugar creado');
|
||||
}
|
||||
Reference in New Issue
Block a user