Control de especialidades duplicadas

This commit is contained in:
dalvarezgon
2019-12-25 21:40:31 +01:00
parent a5eb912504
commit 6c8fb202ce
3 changed files with 35 additions and 10 deletions

View File

@@ -1,9 +1,12 @@
package ejb.systemAdmin; package ejb.systemAdmin;
import java.util.List;
import javax.ejb.EJB; import javax.ejb.EJB;
import javax.ejb.Stateless; import javax.ejb.Stateless;
import javax.persistence.EntityManager; import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext; import javax.persistence.PersistenceContext;
import javax.persistence.TypedQuery;
import TO.FamilyDoctorTO; import TO.FamilyDoctorTO;
import TO.LoggedUserTO; import TO.LoggedUserTO;
@@ -105,7 +108,7 @@ public class SystemAdminFacadeBean implements SystemAdminFacadeRemote {
} }
@Override @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); MedicalSpecialtyJPA ms = entman.find(MedicalSpecialtyJPA.class, id);
if (ms == null) { if (ms == null) {
@@ -120,8 +123,20 @@ public class SystemAdminFacadeBean implements SystemAdminFacadeRemote {
return this.commonServices.getPOJOforMedicalSpecialtyJPA(ms); return this.commonServices.getPOJOforMedicalSpecialtyJPA(ms);
} }
public MedicalSpecialtyTO findSpecialtyByName(String searchedName) {
TypedQuery<MedicalSpecialtyJPA> query = entman.createQuery("from MedicalSpecialtyJPA ms where ms.name=:name", MedicalSpecialtyJPA.class);
query.setMaxResults(1);
query.setParameter("name", searchedName);
List<MedicalSpecialtyJPA> results = query.getResultList();
if (results.size() > 0)
return this.commonServices.getPOJOforMedicalSpecialtyJPA(results.get(0));
else
return null;
}
@Override @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); MedicalSpecialtyJPA ms = entman.find(MedicalSpecialtyJPA.class, id);
if (ms == null) { if (ms == null) {
@@ -132,7 +147,7 @@ public class SystemAdminFacadeBean implements SystemAdminFacadeRemote {
} }
@Override @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); MedicalSpecialtyJPA ms = new MedicalSpecialtyJPA(name, description);
entman.persist(ms); entman.persist(ms);

View File

@@ -4,6 +4,7 @@ import javax.ejb.Remote;
import TO.LoggedUserTO; import TO.LoggedUserTO;
import TO.MedicalSpecialtyTO; import TO.MedicalSpecialtyTO;
import TO.PatientTO;
/** /**
* *
@@ -18,9 +19,11 @@ public interface SystemAdminFacadeRemote {
public LoggedUserTO login(String id, String pwd); 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;
} }

View File

@@ -7,12 +7,14 @@ import javax.annotation.PostConstruct;
import javax.enterprise.context.RequestScoped; import javax.enterprise.context.RequestScoped;
import javax.faces.application.FacesMessage; import javax.faces.application.FacesMessage;
import javax.inject.Named; import javax.inject.Named;
import javax.persistence.PersistenceException;
import TO.LoggedUserTO; import TO.LoggedUserTO;
import TO.MedicalSpecialtyTO; import TO.MedicalSpecialtyTO;
import common.Constants; import common.Constants;
import managedbean.common.ManagedBeanBase; import managedbean.common.ManagedBeanBase;
import managedbean.common.SessionUtils; import managedbean.common.SessionUtils;
import managedbean.common.ValidationUtils;
@Named("ManageSpecialities") @Named("ManageSpecialities")
@RequestScoped @RequestScoped
@@ -106,7 +108,7 @@ public class ManageSpecialitiesMBean extends ManagedBeanBase implements Serializ
if (error == 0) { if (error == 0) {
try { 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.setSpecialtyData(ms);
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Los datos se han guardado", "Los datos de la especialidad se han guardado correctamente."); 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); 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) { if (error == 0) {
try { 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.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); this.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);
} catch (Exception e) { } catch (Exception e) {
@@ -151,9 +153,14 @@ public class ManageSpecialitiesMBean extends ManagedBeanBase implements Serializ
error++; 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) { if (error == 0) {
try { try {
MedicalSpecialtyTO ms = this.getRemoteManagerSystemAdmin().insertSpecialtyData(name, description); MedicalSpecialtyTO ms = this.getRemoteManagerSystemAdmin().insertSpecialty(name, description);
this.setSpecialtyData(ms); this.setSpecialtyData(ms);
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Los datos se han guardado", "Los datos de la especialidad se han guardado correctamente."); 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); this.medicalSpecialitiesList = this.getRemoteManagerCommon().listMedicalSpecialitiesPaged(0, Constants.MAX_ITEMS_AUTOCOMPLETE_SEARCH);