Implementada nueva funcionalidad para cambiar el centro de antención

primaria "ChangePrimaryHealthCareCenterMBean".
This commit is contained in:
Marcos Garcia Nuñez
2019-12-09 21:21:18 +01:00
parent d918526b28
commit 95a22317e4
2 changed files with 137 additions and 38 deletions

View File

@@ -1,50 +1,113 @@
package managedbean.profile;
import java.io.Serializable;
import java.util.Properties;
import java.util.Collection;
import javax.ejb.EJB;
import javax.enterprise.context.RequestScoped;
import javax.annotation.PostConstruct;
import javax.faces.application.FacesMessage;
import javax.faces.view.ViewScoped;
import javax.inject.Named;
import javax.naming.Context;
import javax.naming.InitialContext;
import ejb.profile.ProfileFacadeRemote;
import TO.FamilyDoctorTO;
import TO.LoggedUserTO;
import TO.PrimaryHealthCareCenterTO;
import common.UserType;
import managedbean.common.ManagedBeanBase;
import managedbean.common.SessionUtils;
/***
*
* @author Marcos García Núñez (mgarcianun@uoc.edu)
*
*/
@Named( "ChangePrimaryHealthCareCenterMBean")
@RequestScoped
@Named("ChangeCAP")
@ViewScoped
public class ChangePrimaryHealthCareCenterMBean extends ManagedBeanBase implements Serializable {
private static final long serialVersionUID = 1L;
@EJB
private ProfileFacadeRemote remoteManager;
private int id;
private PrimaryHealthCareCenterTO currentCenter;
private PrimaryHealthCareCenterTO newCenter;
private Collection<PrimaryHealthCareCenterTO> primaryHealthCareCentersList;
public ChangePrimaryHealthCareCenterMBean() {
/**
* Constructor. Inicializa la conexión con el EJB Remoto
*
* @throws Exception
*/
public ChangePrimaryHealthCareCenterMBean() throws Exception {
initializeAdminFacadeRemote();
}
/**
* Inicializa la conexión con el EJB Remoto
*
* @throws Exception
*/
private void initializeAdminFacadeRemote() throws Exception {
Properties props = System.getProperties();
Context ctx = new InitialContext(props);
remoteManager = (ProfileFacadeRemote) ctx
.lookup("java:app/myHealth.jar/ProfileFacadeBean!ejb.component.ProfileFacadeRemote");
@PostConstruct
public void init() {
// Recuperamos el usuario logeado actual
LoggedUserTO usr = null;
try {
usr = SessionUtils.getloggedOnUser();
if (usr == null)
this.addFacesMessage(FacesMessage.SEVERITY_ERROR, "Sesión no válida",
"Su sesión actual no es válida, por favor cierre su sesión y vuelva a logearse en el sistema.");
else {
this.id = Integer.valueOf(usr.getId());
if (usr.getUserType() == UserType.FAMILY_DOCTOR) {
this.primaryHealthCareCentersList = this.getRemoteManagerSystemAdmin().listAllCAPs();
FamilyDoctorTO fd = this.getRemoteManagerProfile().retrieveFamilyDoctor(this.id);
this.setCurrentCenter(fd.getPrimaryHealthCareCenter());
}
}
} catch (Exception e) {
this.manageException(e);
}
}
public Collection<PrimaryHealthCareCenterTO> getPhcList() {
return primaryHealthCareCentersList;
}
public int getId() {
return id;
}
public void saveData() {
int error = 0;
if (this.getNewCenter() == null) {
this.addFacesMessage(FacesMessage.SEVERITY_WARN, "Centro de atención primaria no seleccionado", "Por favor, especifique un nuevvo centro de atención primaria.");
error++;
}
if (this.getNewCenter().getName().equals(this.getCurrentCenter().getName())) {
this.addFacesMessage(FacesMessage.SEVERITY_WARN, "El centro de atención primeria debe ser diferente", "Por favor, seleccione un centro de atención primaria diferente al cual está actualmente asignado.");
error++;
}
if (error == 0) {
try {
FamilyDoctorTO fd = this.getRemoteManagerProfile().changePrimaryHealthCareCenter(this.id, this.getNewCenter());
this.currentCenter = fd.getPrimaryHealthCareCenter();
this.newCenter = null;
this.addFacesMessage(FacesMessage.SEVERITY_INFO, "Los datos se han guardado", "Su centro de atención primaria asignado se ha cambiado correctamente.");
} catch (Exception e) {
this.manageException(e);
}
}
}
public PrimaryHealthCareCenterTO getCurrentCenter() {
return currentCenter;
}
public void setCurrentCenter(PrimaryHealthCareCenterTO currentCenter) {
this.currentCenter = currentCenter;
}
public PrimaryHealthCareCenterTO getNewCenter() {
return newCenter;
}
public void setNewCenter(PrimaryHealthCareCenterTO newCenter) {
this.newCenter = newCenter;
}
}