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.ManagedProperty; import javax.faces.bean.ViewScoped; import javax.faces.event.AjaxBehaviorEvent; import org.primefaces.component.selectbooleancheckbox.SelectBooleanCheckbox; import org.primefaces.context.RequestContext; import org.primefaces.event.TabChangeEvent; import com.fp.dto.AbstractDataTransport; 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.CentroControlArmasController; import com.fp.frontend.controller.pgeneral.gene.CantonController; import com.fp.frontend.controller.pgeneral.gene.CatalogDetailController; import com.fp.frontend.controller.pgeneral.gene.CityController; import com.fp.frontend.controller.pgeneral.gene.ParroquiaController; import com.fp.frontend.controller.pgeneral.gene.ProvinceController; import com.fp.frontend.helper.MessageHelper; import com.fp.frontend.utility.MsgControlArmas; import com.fp.persistence.parmas.param.TarmCentroControl; import com.fp.persistence.parmas.soli.TarmDecomiso; import com.fp.persistence.parmas.soli.TarmDecomisoArma; import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail; @SuppressWarnings("serial") @ManagedBean @ViewScoped public class VerificarMaterialDecomisadoController extends AbstractController { /** * Código de decomiso */ private String cDecomiso; /** * Manejador de decomiso armas controller */ @ManagedProperty(value = "#{decomisoArmaController}") private DecomisoArmaController decomisoArmaController; /** * Variable que incluye datos de la cabecera de decomiso */ private TarmDecomiso decomiso; /** * Variable que incluye datos del detalle del decomiso */ private TarmDecomisoArma decomisoArmaObj; /** * Provincia */ private String provincia; /** * Cantón */ private String canton; /** * Ciudad */ private String ciudad; /** * Parroquia */ private String parroquia; /** * Variable usada para activar el botón de generar reporte */ private Boolean isEnableImprimir; /** * Cat´logo Grado */ private TgeneCatalogDetail gradoCatalogDatail; /** * Cat´logo Unidad */ private TgeneCatalogDetail unidadCatalogDatail; private Boolean btnFlujo; //private List armasDecomisadasLst = new ArrayList(); public VerificarMaterialDecomisadoController() throws Exception { super(AbstractDataTransport.class); // TODO Auto-generated constructor stub } @PostConstruct private void postconstruct() { // Inicializa autoconsulta startQuery(); // cDecomiso="357"; if(cDecomiso!=null){ this.init(); this.query(); } else{ decomisoArmaController.setLrecord(new ArrayList()); } } public void startQuery() { try { this.pasteBpmScreenParameters(); cDecomiso=super.getMfilters().get("cdecomiso"); super.getMfilters().clear(); } catch (Exception e) { MessageHelper.setMessageError(e); } } /** * Incializa el controlador, cuando se esta utilizando una pagina que utliza el controlador. */ private void init() { try { decomiso = DecomisoController.findByCodigo(cDecomiso); if(decomiso!=null){ provincia = ProvinceController.getDescProvByCodigo(decomiso.getCountrycode(), decomiso.getProvincecode()); canton = CantonController.getDescCantonByCodigo(decomiso.getCountrycode(), decomiso.getProvincecode(), decomiso.getCantoncode()); ciudad = CityController.getDescCiudadByCodigo(decomiso.getCountrycode(), decomiso.getProvincecode(), decomiso.getCantoncode(), decomiso.getCitycode()); parroquia = ParroquiaController.getDescParroquiaByCodigo(decomiso.getCountrycode(), decomiso.getProvincecode(), decomiso.getCantoncode(), decomiso.getParroquiacode()); gradoCatalogDatail = CatalogDetailController.findxCodigoCodcatalogo(decomiso.getGradofuncionario(), decomiso.getGradofuncionariocode()); TarmCentroControl centroControl = CentroControlArmasController.findPorCodigo(decomiso.getCcentrocontrol()); unidadCatalogDatail = CatalogDetailController.findxCodigoCodcatalogo(centroControl.getNombreinstitucion(), centroControl.getNombreinstitucioncodigo()); decomisoArmaController.addFilter("cdecomiso", cDecomiso); decomisoArmaController.query(); isEnableImprimir = Boolean.FALSE; } else{ MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_numReciboNoRegistrado")); } btnFlujo=Boolean.FALSE; } catch (Exception e) { MessageHelper.setMessageError(e); } } @Override public void query() { try { this.decomisoArmaController.query(); } catch (Throwable e) { MessageHelper.setMessageError(e); } } @Override public void next() { try { if(cDecomiso!=null){ this.decomisoArmaController.next(); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } @Override public void previous() { try { if(cDecomiso!=null){ this.decomisoArmaController.previous(); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } /** * Crea una instancia de TgeneTransactionProcess y marca el registro como nuevo. * * @throws Exception */ @Override public void create() throws Exception { super.create(); } @SuppressWarnings("unchecked") @Override protected void querydatabase() { try { DtoQuery dto = super.getDtoQuery(true); dto.setOrderby("t.pk"); HashMap mtables = new HashMap(); mtables.put(beanalias, dto); // permite adicionar mas de una tabla. Request request = callerhelper.getRequest(); request.setQueryTables(mtables); Response resp = callerhelper.executeQuery(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) { lrecord = new ArrayList(); MessageHelper.setMessageError(resp); } else { lrecord = (List) resp.get(beanalias); super.postQuery(lrecord); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } @Override public void save() { try { if(decomisoArmaObj==null || decomisoArmaObj.getEnbodega()==null || decomisoArmaObj.getEnbodega().compareTo("Y")!=0){ MessageHelper.setMessageWarn(MsgControlArmas.getProperty("msg_proceso")); return; } Request request = this.callerhelper.getRequest(); HashMap msave = new HashMap(); DtoSave dtosaveDA = decomisoArmaController.getDtoSave(); if(dtosaveDA.pendingProcess()){ dtosaveDA.setReturnpk(true); msave.put(this.decomisoArmaController.getBeanalias(), dtosaveDA); } request.setSaveTables(msave); Response resp = this.callerhelper.executeSave(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) { this.decomisoArmaController.postCommit(resp); isEnableImprimir = Boolean.TRUE; btnFlujo=Boolean.TRUE; MessageHelper.setMessageInfo(resp); } else { MessageHelper.setMessageError(resp); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } /** * Metodo para finalizar la tarea del flujo */ public void completarTarea() { try { Request request = callerhelper.getRequest(); // limpiar request para finalizar la tarea. super.cleanRequest(request); request.modifiedData().put("cdecomiso",cDecomiso); 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); btnFlujo=Boolean.FALSE; RequestContext.getCurrentInstance().execute("Maia.refreshusertasks()"); } else { MessageHelper.setMessageError(resp); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } @Override public void postCommit(Response response) throws Exception { super.postCommitGeneric(response, beanalias); } public DecomisoArmaController getDecomisoArmaController() { return decomisoArmaController; } public void setDecomisoArmaController( DecomisoArmaController decomisoArmaController) { this.decomisoArmaController = decomisoArmaController; } public TarmDecomiso getDecomiso() { return decomiso; } public void setDecomiso(TarmDecomiso decomiso) { this.decomiso = decomiso; } public String getProvincia() { return provincia; } public void setProvincia(String provincia) { this.provincia = provincia; } public String getCanton() { return canton; } public void setCanton(String canton) { this.canton = canton; } public String getCiudad() { return ciudad; } public void setCiudad(String ciudad) { this.ciudad = ciudad; } public String getParroquia() { return parroquia; } public void setParroquia(String parroquia) { this.parroquia = parroquia; } public TgeneCatalogDetail getGradoCatalogDatail() { return gradoCatalogDatail; } public void setGradoCatalogDatail(TgeneCatalogDetail gradoCatalogDatail) { this.gradoCatalogDatail = gradoCatalogDatail; } public TgeneCatalogDetail getUnidadCatalogDatail() { return unidadCatalogDatail; } public void setUnidadCatalogDatail(TgeneCatalogDetail unidadCatalogDatail) { this.unidadCatalogDatail = unidadCatalogDatail; } public TarmDecomisoArma getDecomisoArmaObj() { return decomisoArmaObj; } public void setDecomisoArmaObj(TarmDecomisoArma decomisoArmaObj) { this.decomisoArmaObj = decomisoArmaObj; } public Boolean getIsEnableImprimir() { return isEnableImprimir; } public void setIsEnableImprimir(Boolean isEnableImprimir) { this.isEnableImprimir = isEnableImprimir; } public void seleccionarArma(AjaxBehaviorEvent event){ try { SelectBooleanCheckbox booleanCheckbox = (SelectBooleanCheckbox) event.getComponent(); decomisoArmaObj = (TarmDecomisoArma) booleanCheckbox.getAttributes().get("armaDecomisadaObj"); boolean checked = (Boolean) booleanCheckbox.getValue(); if (checked) { decomisoArmaObj.setEnbodega("Y"); }else{ decomisoArmaObj.setEnbodega(null); } decomisoArmaController.update(decomisoArmaObj); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public Boolean getBtnFlujo() { return btnFlujo; } public void setBtnFlujo(Boolean btnFlujo) { this.btnFlujo = btnFlujo; } }