This commit is contained in:
Lizandro Guarnizo
2026-05-27 20:40:17 -05:00
parent b8de9ee666
commit 2f72d87c3b
9 changed files with 208 additions and 9 deletions
+22 -1
View File
@@ -19,7 +19,15 @@ try {
// ── Reprogramar ──
if (!empty($datos['id']) && !empty($datos['reprogramar'])) {
$id = (int)$datos['id'];
$id = (int)$datos['id'];
// Enfermero solo puede reprogramar domicilios que él mismo creó
if (userRole() === 'enfermero') {
$dbCheck = Database::getInstance();
$chk = $dbCheck->fetchOne("SELECT creado_por FROM lab_domicilios WHERE id = ?", [$id]);
if (!$chk || (int)($chk['creado_por'] ?? 0) !== adminId()) {
jsonError('Solo puedes reprogramar domicilios que tú mismo agendaste.');
}
}
$nuevaFecha = trim($datos['nueva_fecha'] ?? '');
$nuevaHora = trim($datos['nueva_hora'] ?? '');
$motivo = trim($datos['motivo'] ?? '');
@@ -47,6 +55,14 @@ try {
if (!empty($datos['id'])) {
// Actualización general
$id = (int)$datos['id'];
// Enfermero solo puede editar domicilios que él mismo creó
if (userRole() === 'enfermero') {
$dbCheck = Database::getInstance();
$chk = $dbCheck->fetchOne("SELECT creado_por FROM lab_domicilios WHERE id = ?", [$id]);
if (!$chk || (int)($chk['creado_por'] ?? 0) !== adminId()) {
jsonError('Solo puedes editar domicilios que tú mismo agendaste.');
}
}
unset($datos['id'], $datos['solo_estado']);
// Normalizar orden_id: vacío o 0 → null
if (isset($datos['orden_id']) && ($datos['orden_id'] === '' || (int)$datos['orden_id'] === 0)) {
@@ -61,6 +77,11 @@ try {
jsonError("El campo $req es obligatorio");
}
}
// Validar formato mínimo de dirección
$dirVal = trim($datos['direccion'] ?? '');
if (strlen($dirVal) < 5) {
jsonError('La dirección es muy corta. Ingresa una dirección completa. Ej: Cra 15 # 32-10.');
}
// Normalizar orden_id: vacío o 0 → null (evita FK constraint)
if (isset($datos['orden_id']) && ($datos['orden_id'] === '' || (int)$datos['orden_id'] === 0)) {
$datos['orden_id'] = null;