diff --git a/1.sources/MyHealth/src/managedbean/visit/PatientVisitListMBean.java b/1.sources/MyHealth/src/managedbean/visit/PatientVisitListMBean.java index 7c3cca0..571c788 100644 --- a/1.sources/MyHealth/src/managedbean/visit/PatientVisitListMBean.java +++ b/1.sources/MyHealth/src/managedbean/visit/PatientVisitListMBean.java @@ -3,6 +3,7 @@ package managedbean.visit; import java.io.IOException; import java.io.Serializable; import java.time.LocalDate; +import java.time.LocalTime; import java.util.List; import java.util.Map; @@ -95,9 +96,32 @@ public class PatientVisitListMBean extends ManagedBeanBase implements Serializab } public void removeVisit(Integer visitId) throws IOException { + int error = 0; + if (SessionUtils.getUserType() == UserType.PATIENT) { - this.getRemoteManagerVisit().removeVisit(visitId); - this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Visita eliminada", String.format("La visita con Id: %d se ha eliminado correctamente", visitId)); + VisitTO vi = null; + try { + vi = this.getRemoteManagerVisit().getVisit(visitId); + + if (vi == null) { + this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "La visita no se puede eliminar", + "La visita que intenta eliminar ya no existe o no se ha podido recuperar. Por favor, refresque los datos de la pagina actual e intentelo de nuevo."); + error++; + } + } catch (Exception ex) { + this.manageException(ex); + error++; + } + + if (vi != null && vi.getResult() != null && vi.getResult().trim().equals("") == false) { + // Si tiene resultado entonces no se puede eliminar. + this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "La visita no se puede eliminar", "La visita ya tiene un resultao asignado y no se puede eliminar."); + error++; + } + if (error == 0) { + this.getRemoteManagerVisit().removeVisit(visitId); + this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Visita eliminada", String.format("La visita con Id: %d se ha eliminado correctamente", visitId)); + } } else this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Error de autorización", "Su perfil de usuario no tiene permisos para eliminar una visita."); }