feat(domicilios): enfermero puede editar domicilios asignados desde el portal
- save_domicilio.php: permite editar si el enfermero está asignado (no solo si lo creó) - enfermero_portal.php: botón Editar en domcard, método abrirEditar() pre-carga el modal existente Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
1efdc7bbad
commit
79a5438531
@@ -55,12 +55,18 @@ try {
|
||||
if (!empty($datos['id'])) {
|
||||
// Actualización general
|
||||
$id = (int)$datos['id'];
|
||||
// Enfermero solo puede editar domicilios que él mismo creó
|
||||
// Enfermero puede editar domicilios que creó o que tiene asignados
|
||||
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.');
|
||||
$chk = $dbCheck->fetchOne(
|
||||
"SELECT d.creado_por,
|
||||
(SELECT COUNT(*) FROM lab_asignaciones a
|
||||
WHERE a.domicilio_id = d.id AND a.enfermera_id = ?) AS asignado
|
||||
FROM lab_domicilios d WHERE d.id = ?",
|
||||
[enfermeraId(), $id]
|
||||
);
|
||||
if (!$chk || ((int)($chk['creado_por'] ?? 0) !== adminId() && !(int)$chk['asignado'])) {
|
||||
jsonError('Solo puedes editar domicilios que agendaste o que tienes asignados.');
|
||||
}
|
||||
}
|
||||
unset($datos['id'], $datos['solo_estado']);
|
||||
|
||||
Reference in New Issue
Block a user