feat(lugar): botón quitar consentimiento con motivo obligatorio y auditoría
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
<?php
|
||||
/**
|
||||
* modules/turnero/api/quitar_consentimiento.php
|
||||
* POST {consent_id, motivo} → elimina un consentimiento con auditoría
|
||||
*/
|
||||
require_once __DIR__ . '/_helpers.php';
|
||||
require_once __DIR__ . '/../../../classes/lab/ActividadAdmin.php';
|
||||
|
||||
requireTurnero();
|
||||
requireMethod('POST');
|
||||
|
||||
$input = inputJson();
|
||||
$consentId = (int)($input['consent_id'] ?? 0);
|
||||
$motivo = trim($input['motivo'] ?? '');
|
||||
|
||||
if (!$consentId) jsonError('consent_id requerido');
|
||||
if ($motivo === '') jsonError('Debe ingresar un motivo para quitar el consentimiento');
|
||||
|
||||
$pdo = db();
|
||||
|
||||
// Leer datos antes de borrar (para el log)
|
||||
$row = $pdo->prepare(
|
||||
"SELECT tc.id, tc.turno_id, tc.formulario_id, tc.estado,
|
||||
lf.nombre AS formulario_nombre,
|
||||
t.codigo AS turno_codigo
|
||||
FROM turnero_consentimientos tc
|
||||
JOIN lab_formularios lf ON lf.id = tc.formulario_id
|
||||
JOIN turnero_turnos t ON t.id = tc.turno_id
|
||||
WHERE tc.id = ? LIMIT 1"
|
||||
);
|
||||
$row->execute([$consentId]);
|
||||
$consent = $row->fetch(PDO::FETCH_ASSOC);
|
||||
|
||||
if (!$consent) jsonError('Consentimiento no encontrado', 404);
|
||||
|
||||
$pdo->prepare('DELETE FROM turnero_consentimientos WHERE id = ?')->execute([$consentId]);
|
||||
|
||||
(new ActividadAdmin())->registrar(
|
||||
adminId(),
|
||||
'turnero_config',
|
||||
'quitar_consentimiento',
|
||||
$consentId,
|
||||
[
|
||||
'turno_codigo' => $consent['turno_codigo'],
|
||||
'turno_id' => $consent['turno_id'],
|
||||
'formulario_id' => $consent['formulario_id'],
|
||||
'formulario_nombre' => $consent['formulario_nombre'],
|
||||
'estado_previo' => $consent['estado'],
|
||||
'motivo' => $motivo,
|
||||
]
|
||||
);
|
||||
|
||||
jsonOk([], 'Consentimiento quitado');
|
||||
Reference in New Issue
Block a user