package com.fp.frontend.controller.armas.solicitud; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; import org.primefaces.context.RequestContext; import com.fp.dto.Request; import com.fp.dto.Response; import com.fp.dto.query.DtoQuery; import com.fp.dto.save.DtoSave; import com.fp.frontend.controller.AbstractController; import com.fp.frontend.controller.armas.parametros.GuardiasController; import com.fp.frontend.helper.MessageHelper; import com.fp.persistence.parmas.soli.TarmGuardias; import com.fp.persistence.parmas.soli.TarmSolicitudGuardias; @ManagedBean @ViewScoped public class SolicitudGuardiasController extends AbstractController { private static final long serialVersionUID = 1L; public SolicitudGuardiasController() throws Exception{ super(TarmSolicitudGuardias.class); } /** * Método que se ejecuta despues del controlador */ @PostConstruct public void postConstruct() { this.init(); super.startQuery(); this.getMfilters().clear(); } /** * Inicializa variables */ private void init() { try { recperpage = 300; // Cambiar al # reg a mirar. lrecord = new ArrayList<>(); // record = new TarmSolicitudGuardias(); beanalias = "SOLICITUDGUARDIAS"; } catch (Exception e) { MessageHelper.setMessageError(e); } } @SuppressWarnings("unchecked") @Override protected void querydatabase() { try { DtoQuery dtoQuery = super.getDtoQuery(Boolean.TRUE); HashMap mtables = new HashMap(); dtoQuery.setOrderby("pk.csolicitud"); mtables.put(beanalias, dtoQuery); Request request = this.callerhelper.getRequest(); request.setQueryTables(mtables); Response response = this.callerhelper.executeQuery(request); if(response.getResponseCode().compareTo(Response.RESPONSE_OK) != 0){ this.lrecord = new ArrayList(); MessageHelper.setMessageError(response); } else{ this.lrecord = (List) response.get(beanalias); for(TarmSolicitudGuardias tarmSolicitudGuardias:this.lrecord){ TarmGuardias guardia = new TarmGuardias(); guardia = GuardiasController.find(String.valueOf(tarmSolicitudGuardias.getPk().getCguardia()), String.valueOf(tarmSolicitudGuardias.getPk().getCempresa())); //tarmSolicitudGuardias.modifiedData().put("guardia",guardia!=null?guardia:new TarmGuardias()); tarmSolicitudGuardias.modifiedData().put("nombre",guardia==null?"":guardia.getModifiedData().get("gnombre")); tarmSolicitudGuardias.modifiedData().put("identificador",guardia==null?"":guardia.getModifiedData().get("gcedula")); tarmSolicitudGuardias.modifiedData().put("estado",guardia==null?"":guardia.getEstado()); tarmSolicitudGuardias.modifiedData().put("guardia",guardia==null?"":guardia.getPk()); } super.postQuery(this.lrecord); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } @SuppressWarnings("unchecked") protected void querydatabaseGuardia() { try { DtoQuery dtoQuery = super.getDtoQuery(Boolean.TRUE); HashMap mtables = new HashMap(); mtables.put(beanalias, dtoQuery); Request request = this.callerhelper.getRequest(); request.setQueryTables(mtables); Response response = this.callerhelper.executeQuery(request); if(response.getResponseCode().compareTo(Response.RESPONSE_OK) != 0){ this.lrecord = new ArrayList(); MessageHelper.setMessageError(response); } else{ this.lrecord = (List) response.get(beanalias); for(TarmSolicitudGuardias tarmSolicitudGuardias:this.lrecord){ TarmGuardias guardia = new TarmGuardias(); guardia = GuardiasController.find(String.valueOf(tarmSolicitudGuardias.getPk().getCguardia()), String.valueOf(tarmSolicitudGuardias.getPk().getCempresa())); //tarmSolicitudGuardias.modifiedData().put("guardia",guardia!=null?guardia:new TarmGuardias()); tarmSolicitudGuardias.modifiedData().put("nombre",guardia==null?"":guardia.getModifiedData().get("gnombre")); tarmSolicitudGuardias.modifiedData().put("identificador",guardia==null?"":guardia.getModifiedData().get("gcedula")); tarmSolicitudGuardias.modifiedData().put("estado",guardia==null?"":guardia.getModifiedData().get("estado")); } super.postQuery(this.lrecord); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } /** * Retorna guardias en base a un criterio * @param solicitudCode código de la solicitud * @return */ public List findPorSolicitud(String solicitudCode) { try { SolicitudGuardiasController cc = new SolicitudGuardiasController(); cc.init(); cc.recperpage = 300; cc.addFilter("pk.csolicitud", solicitudCode); cc.querydatabase(); if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) { return cc.lrecord; } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } /** * Devuelve todas las solicitudes encontradas * @return */ public static List find() { try { SolicitudGuardiasController cc = new SolicitudGuardiasController(); cc.init(); cc.recperpage = 300; cc.querydatabase(); if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) { return cc.lrecord; } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } @Override public void save() { try { DtoSave dtoSave = super.getDtoSave(); dtoSave.setReturnpk(Boolean.TRUE); if(!dtoSave.pendingProcess()){ return; } HashMap msaves = new HashMap(); msaves.put(beanalias, dtoSave); Request request = callerhelper.getRequest(); request.setSaveTables(msaves); Response resp = callerhelper.executeSave(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) { this.postCommit(resp); MessageHelper.setMessageInfo(resp); } else { MessageHelper.setMessageError(resp); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } /** * Método para el inicio de flujo */ public void completarTarea() { try { Request request = callerhelper.getRequest(); // limpiar request para finalizar la tarea. super.cleanRequest(request); request.modifiedData().put("pk.csolicitud", "1"); request.modifiedData().put("csolicitud", "1"); request.modifiedData().put("TID", tid); request.modifiedData().put("BPMStatus", bpmDataStatus == null ? "A" : bpmDataStatus); // A,D,R request.modifiedData().put("BPMObs", bpmDataComment == null ? "OK" : bpmDataComment); Response resp = callerhelper.executeSave(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) { MessageHelper.setMessageInfo(resp); RequestContext.getCurrentInstance().execute("Maia.refreshusertasks()"); } else { MessageHelper.setMessageError(resp); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } }