- 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>
41 lines
1.2 KiB
PHP
41 lines
1.2 KiB
PHP
<?php
|
|
/**
|
|
* POST /modules/turnero/api/resetear_consentimiento.php
|
|
* Descarta firma y datos de un consentimiento → estado 'enviado' para re-firma.
|
|
* Body JSON: { token: string }
|
|
*/
|
|
require_once __DIR__ . '/_helpers.php';
|
|
requireMethod('POST');
|
|
requireTurnero();
|
|
|
|
$body = inputJson();
|
|
$token = trim($body['token'] ?? '');
|
|
if (!$token) jsonError('token requerido.');
|
|
|
|
$pdo = db();
|
|
$stmt = $pdo->prepare(
|
|
"SELECT tc.id, t.sesion_id
|
|
FROM turnero_consentimientos tc
|
|
JOIN turnero_turnos t ON t.id = tc.turno_id
|
|
WHERE tc.token = ? LIMIT 1"
|
|
);
|
|
$stmt->execute([$token]);
|
|
$tc = $stmt->fetch(PDO::FETCH_ASSOC);
|
|
if (!$tc) jsonError('Consentimiento no encontrado.', 404);
|
|
|
|
$pdo->prepare(
|
|
"UPDATE turnero_consentimientos
|
|
SET estado = 'enviado',
|
|
firma_svg = NULL,
|
|
firmado_at = NULL,
|
|
firma_profesional_svg = NULL,
|
|
firmado_profesional_at = NULL,
|
|
datos_respuestas = NULL,
|
|
siguiente_toma_at = NULL,
|
|
toma_inicio_at = NULL
|
|
WHERE token = ?"
|
|
)->execute([$token]);
|
|
|
|
notificarSSE((int)$tc['sesion_id']);
|
|
jsonOk([], 'Consentimiento reiniciado correctamente.');
|