Files
whatsapp/modules/turnero/api/save_dispositivo.php
T
Lizandro GuarnizoandClaude Sonnet 4.6 ff52fa5ba7 feat: olvidar firma, editar tiempos tomas, obs en header, fix dispositivos
- feat(turnero): Botón "Olvidar" en lugar.php y recepcion.php para descartar firma de consentimiento completo (nuevo endpoint resetear_consentimiento.php)
- feat(turnero): Botón "Olvidar" por toma individual en prolongadas para borrar firma+hora de una toma específica (nuevo endpoint resetear_toma.php)
- feat(turnero): Editar tiempos en tomas en_progreso: hora_campo signed muestra readonly con botón olvidar, permite re-editar tras olvidar
- feat(turnero): Guardar tiempos (draft save) también en estado en_progreso
- feat(turnero): Observaciones de tomas prolongadas se muestran en header de tarjeta firmada (campo obs_campo en _mpMap)
- fix(turnero): Token del equipo se sobreescribía en tabla — ip permitía solo un registro con ip='' (UNIQUE); ahora ip es nullable

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-28 07:37:09 -05:00

46 lines
1.7 KiB
PHP

<?php
/**
* modules/turnero/api/save_dispositivo.php
* POST {ip, nombre, lugar_id, activo} → crear
* POST {id, ip, nombre, lugar_id, activo} → actualizar
* POST {id, _delete: true} → eliminar
*/
require_once __DIR__ . '/_helpers.php';
requireTurnero();
requireMethod('POST');
$input = inputJson();
$id = (int)($input['id'] ?? 0);
$delete = !empty($input['_delete']);
if ($delete) {
if (!$id) jsonError('ID requerido');
db()->prepare('DELETE FROM turnero_dispositivos WHERE id = ?')->execute([$id]);
jsonOk([], 'Dispositivo eliminado');
}
$ip = trim($input['ip'] ?? '') ?: null;
$nombre = trim($input['nombre'] ?? '');
$lugarId = (int)($input['lugar_id'] ?? 0);
$activo = (int)($input['activo'] ?? 1);
$token = trim($input['token'] ?? '') ?: null;
if ($nombre === '') jsonError('El nombre es requerido');
if ($lugarId <= 0) jsonError('Debes asignar un lugar');
if ($ip === null && $token === null) jsonError('Se requiere IP o token de dispositivo');
if ($id) {
$stmt = db()->prepare(
'UPDATE turnero_dispositivos SET ip=?, nombre=?, lugar_id=?, activo=?, token=? WHERE id=?'
);
$stmt->execute([$ip, $nombre, $lugarId, $activo, $token, $id]);
jsonOk(['id' => $id], 'Dispositivo actualizado');
} else {
$stmt = db()->prepare(
'INSERT INTO turnero_dispositivos (ip, nombre, lugar_id, activo, token) VALUES (?, ?, ?, ?, ?)
ON DUPLICATE KEY UPDATE nombre=VALUES(nombre), lugar_id=VALUES(lugar_id), activo=VALUES(activo), token=VALUES(token)'
);
$stmt->execute([$ip, $nombre, $lugarId, $activo, $token]);
jsonOk(['id' => (int)db()->lastInsertId()], 'Dispositivo creado');
}