diff --git a/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeBean.java b/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeBean.java index 9112b28..2f185b4 100644 --- a/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeBean.java +++ b/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeBean.java @@ -1,9 +1,12 @@ package ejb.systemAdmin; +import java.util.List; + import javax.ejb.EJB; import javax.ejb.Stateless; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; +import javax.persistence.TypedQuery; import TO.FamilyDoctorTO; import TO.LoggedUserTO; @@ -105,7 +108,7 @@ public class SystemAdminFacadeBean implements SystemAdminFacadeRemote { } @Override - public MedicalSpecialtyTO updateSpecialtyData(int id, String name, String description) throws Exception { + public MedicalSpecialtyTO getSpecialty(int id, String name, String description) throws Exception { MedicalSpecialtyJPA ms = entman.find(MedicalSpecialtyJPA.class, id); if (ms == null) { @@ -120,8 +123,20 @@ public class SystemAdminFacadeBean implements SystemAdminFacadeRemote { return this.commonServices.getPOJOforMedicalSpecialtyJPA(ms); } + public MedicalSpecialtyTO findSpecialtyByName(String searchedName) { + TypedQuery query = entman.createQuery("from MedicalSpecialtyJPA ms where ms.name=:name", MedicalSpecialtyJPA.class); + query.setMaxResults(1); + query.setParameter("name", searchedName); + + List results = query.getResultList(); + if (results.size() > 0) + return this.commonServices.getPOJOforMedicalSpecialtyJPA(results.get(0)); + else + return null; + } + @Override - public void deleteSpecialtyData(int id, String name, String description) throws Exception { + public void deleteSpecialty(int id, String name, String description) throws Exception { MedicalSpecialtyJPA ms = entman.find(MedicalSpecialtyJPA.class, id); if (ms == null) { @@ -132,7 +147,7 @@ public class SystemAdminFacadeBean implements SystemAdminFacadeRemote { } @Override - public MedicalSpecialtyTO insertSpecialtyData(String name, String description) throws Exception { + public MedicalSpecialtyTO insertSpecialty(String name, String description) throws Exception { MedicalSpecialtyJPA ms = new MedicalSpecialtyJPA(name, description); entman.persist(ms); diff --git a/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeRemote.java b/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeRemote.java index f4ab02d..3493b28 100644 --- a/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeRemote.java +++ b/1.sources/MyHealth/src/ejb/systemAdmin/SystemAdminFacadeRemote.java @@ -4,6 +4,7 @@ import javax.ejb.Remote; import TO.LoggedUserTO; import TO.MedicalSpecialtyTO; +import TO.PatientTO; /** * @@ -18,9 +19,11 @@ public interface SystemAdminFacadeRemote { public LoggedUserTO login(String id, String pwd); - public MedicalSpecialtyTO updateSpecialtyData(int id, String name, String description) throws Exception; + public MedicalSpecialtyTO getSpecialty(int id, String name, String description) throws Exception; - public void deleteSpecialtyData(int id, String name, String description) throws Exception; + public MedicalSpecialtyTO findSpecialtyByName(String name); - public MedicalSpecialtyTO insertSpecialtyData(String name, String description) throws Exception; + public void deleteSpecialty(int id, String name, String description) throws Exception; + + public MedicalSpecialtyTO insertSpecialty(String name, String description) throws Exception; } \ No newline at end of file diff --git a/1.sources/MyHealth/src/managedbean/systemAdmin/ManageSpecialitiesMBean.java b/1.sources/MyHealth/src/managedbean/systemAdmin/ManageSpecialitiesMBean.java index f079867..9f9a948 100644 --- a/1.sources/MyHealth/src/managedbean/systemAdmin/ManageSpecialitiesMBean.java +++ b/1.sources/MyHealth/src/managedbean/systemAdmin/ManageSpecialitiesMBean.java @@ -7,12 +7,14 @@ import javax.annotation.PostConstruct; import javax.enterprise.context.RequestScoped; import javax.faces.application.FacesMessage; import javax.inject.Named; +import javax.persistence.PersistenceException; import TO.LoggedUserTO; import TO.MedicalSpecialtyTO; import common.Constants; import managedbean.common.ManagedBeanBase; import managedbean.common.SessionUtils; +import managedbean.common.ValidationUtils; @Named("ManageSpecialities") @RequestScoped @@ -106,7 +108,7 @@ public class ManageSpecialitiesMBean extends ManagedBeanBase implements Serializ if (error == 0) { try { - MedicalSpecialtyTO ms = this.getRemoteManagerSystemAdmin().updateSpecialtyData(this.medicalSpecialty.getId(), this.medicalSpecialty.getName(), this.medicalSpecialty.getDescription()); + MedicalSpecialtyTO ms = this.getRemoteManagerSystemAdmin().getSpecialty(this.medicalSpecialty.getId(), this.medicalSpecialty.getName(), this.medicalSpecialty.getDescription()); this.setSpecialtyData(ms); this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Los datos se han guardado", "Los datos de la especialidad se han guardado correctamente."); this.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH); @@ -130,7 +132,7 @@ public class ManageSpecialitiesMBean extends ManagedBeanBase implements Serializ if (error == 0) { try { - this.getRemoteManagerSystemAdmin().deleteSpecialtyData(this.medicalSpecialty.getId(), this.medicalSpecialty.getName(), this.medicalSpecialty.getDescription()); + this.getRemoteManagerSystemAdmin().deleteSpecialty(this.medicalSpecialty.getId(), this.medicalSpecialty.getName(), this.medicalSpecialty.getDescription()); this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Los especialidad se ha borrado", "Los datos de la especialidad se han borrado correctamente."); this.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH); } catch (Exception e) { @@ -150,10 +152,15 @@ public class ManageSpecialitiesMBean extends ManagedBeanBase implements Serializ this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Descripción no rellena", "Por favor, escriba una descripción."); error++; } - + + if (this.getRemoteManagerSystemAdmin().findSpecialtyByName(name) != null) { + this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Especialidad ya existente", "La especialidad ya se encuentra en la base de datos"); + error++; + } + if (error == 0) { try { - MedicalSpecialtyTO ms = this.getRemoteManagerSystemAdmin().insertSpecialtyData(name, description); + MedicalSpecialtyTO ms = this.getRemoteManagerSystemAdmin().insertSpecialty(name, description); this.setSpecialtyData(ms); this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Los datos se han guardado", "Los datos de la especialidad se han guardado correctamente."); this.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);