package com.fp.frontend.controller.armas.solicitud; import java.util.ArrayList; import java.util.Date; 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 com.fp.dto.Request; import com.fp.dto.Response; import com.fp.dto.query.DtoQuery; import com.fp.dto.query.Filter; import com.fp.dto.save.DtoSave; import com.fp.frontend.controller.AbstractController; import com.fp.frontend.controller.armas.parametros.TiposArmasExplosivosController; import com.fp.frontend.controller.pgeneral.gene.CatalogDetailController; import com.fp.frontend.controller.pgeneral.gene.ParametersController; import com.fp.frontend.helper.MessageHelper; import com.fp.persistence.parmas.param.TarmTipoArmaExplosivo; import com.fp.persistence.parmas.soli.TarmArmas; import com.fp.persistence.parmas.soli.TarmDecomiso; import com.fp.persistence.parmas.soli.TarmDecomisoArma; import com.fp.persistence.pgeneral.gene.TgeneParameters; /** * Controlar que permite el cambio de estado de los decomisosArma y tarmArma a RECL * */ @SuppressWarnings("serial") @ManagedBean @ViewScoped public class ReclamoDecomisoCoordinadorMilitarController extends AbstractController { @ManagedProperty(value="#{armasController}") private ArmasController armasController; private Integer numeroDias; public ReclamoDecomisoCoordinadorMilitarController() throws Exception { super(TarmDecomisoArma.class); } @PostConstruct private void postconstruct() { this.init(); super.startQuery(); } /** * Incializa el controlador, cuando se esta utilizando una pagina que utliza el controlador. */ private void init() { try { recperpage = 10000; // Cambiar al # reg a mirar. lrecord = new ArrayList<>(); beanalias = "TARMDECOMISOARMA"; numeroDias=codigos("NUMERO.DIAS.DECOMISO"); } catch (Exception e) { MessageHelper.setMessageError(e); } } /** * Método para obtener los codigos */ private Integer codigos(String parametro){ TgeneParameters tgeneParameters= ParametersController.find(parametro, "1"); return tgeneParameters.getNumbervalue().intValue(); } /** * 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"); Filter decomisoFiltro= new Filter(); decomisoFiltro.setSql("t.estado = 'DEC' and" + " t.carma in (select arm.pk from TarmArmas arm, TarmRegistroArmas regarm" + " where arm.cregistro = regarm.pk " + " and arm.estado = 'RECL' )");//and regarm.personcode = " + personCode + " dto.addFiltro(decomisoFiltro); 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); ListlistaRemover= new ArrayList(); for(TarmDecomisoArma decomisoArma:lrecord){ TarmArmas arma = ArmasController.findPorCodigo(decomisoArma.getCarma()); if(arma!=null){ TarmTipoArmaExplosivo tipoArmaExplosivo = TiposArmasExplosivosController.findarma(arma.getCtipoarmaexplosivo()); decomisoArma.getModifiedData().put("ntipo", arma.getModifiedData().get("tipo")); decomisoArma.getModifiedData().put("ncalibre", arma.getModifiedData().get("calibre")); decomisoArma.getModifiedData().put("nclase", arma.getModifiedData().get("clase")); decomisoArma.getModifiedData().put("ncantidad", arma.getCantidad()); decomisoArma.getModifiedData().put("nestado", CatalogDetailController.findxCodigoCodcatalogo(decomisoArma.getEstado(), decomisoArma.getEstadocode())!=null?CatalogDetailController.findxCodigoCodcatalogo(decomisoArma.getEstado(), decomisoArma.getEstadocode()).getDescription():""); if(tipoArmaExplosivo.getLongitud()!=null){ decomisoArma.getModifiedData().put("nlongitud", CatalogDetailController.findxCodigoCodcatalogo(tipoArmaExplosivo.getLongitud(), tipoArmaExplosivo.getLongitudcodigo())!=null?CatalogDetailController.findxCodigoCodcatalogo(tipoArmaExplosivo.getLongitud(), tipoArmaExplosivo.getLongitudcodigo()).getDescription():""); } else{ decomisoArma.getModifiedData().put("nlongitud", ""); } decomisoArma.getModifiedData().put("nmarca", CatalogDetailController.findxCodigoCodcatalogo( arma.getMarca(), arma.getMarcacodigo())!=null?CatalogDetailController.findxCodigoCodcatalogo( arma.getMarca(), arma.getMarcacodigo()).getDescription():""); decomisoArma.getModifiedData().put("nserie", arma.getSeriecanon()); decomisoArma.getModifiedData().put("nlote", arma.getLote()); decomisoArma.getModifiedData().put("nunidad", CatalogDetailController.findxCodigoCodcatalogo(decomisoArma.getUnidadmedida(), decomisoArma.getUnidadmedidacode())!=null?CatalogDetailController.findxCodigoCodcatalogo(decomisoArma.getUnidadmedida(), decomisoArma.getUnidadmedidacode()).getDescription():""); decomisoArma.getModifiedData().put("nmotivodecomiso", CatalogDetailController.findxCodigoCodcatalogo(decomisoArma.getMotivodecomiso(), decomisoArma.getMotivodecomisocodigo())!=null?CatalogDetailController.findxCodigoCodcatalogo(decomisoArma.getMotivodecomiso(), decomisoArma.getMotivodecomisocodigo()).getDescription():""); TarmDecomiso decomiso = DecomisoController.findByCodigo(decomisoArma.getCdecomiso().toString()); if(decomiso!=null && decomiso.getPersoncode()!=null){ decomisoArma.getModifiedData().put("nrodecomiso", decomiso.getNumerotransaccion()); } else{ decomisoArma.getModifiedData().put("nrodecomiso", ""); } decomisoArma.getModifiedData().put("seleccionado", false); } } lrecord.removeAll(listaRemover); super.postQuery(lrecord); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } @Override public void save() { try { for(TarmDecomisoArma tarmDecomisoArma : lrecord){ if(tarmDecomisoArma.getModifiedData().get("seleccionado")!=null && tarmDecomisoArma.getModifiedData().get("seleccionado").equals(Boolean.TRUE)){ TarmArmas arma = ArmasController.findPorCodigo(tarmDecomisoArma.getCarma()); arma.setEstado("RECL"); armasController.update(arma); tarmDecomisoArma.setEstado("RECL"); update(tarmDecomisoArma); } } Request request = this.callerhelper.getRequest(); DtoSave dtosave = super.getDtoSave(); if(!dtosave.pendingProcess()){ return; } HashMap msave = new HashMap(); msave.put(this.beanalias, dtosave); // adicionar metadata de mantenimiento para cada tabla. DtoSave dtosaveArma = this.armasController.getDtoSave(); dtosaveArma.setReturnpk(true); dtosaveArma.setPosition(1); msave.put( this.armasController.getBeanalias(), dtosaveArma); request.setSaveTables(msave); Response resp = this.callerhelper.executeSave(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) { this.postCommit(resp); MessageHelper.setMessageInfo(resp); querydatabase(); } else { MessageHelper.setMessageError(resp); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } @Override public void postCommit(Response response) throws Exception { super.postCommitGeneric(response, beanalias); } /** * Seleccionado todos los registros de la tabla */ public void seleccionarTodos(AjaxBehaviorEvent event) { try { Boolean valorColocar = Boolean.FALSE; if(Boolean.valueOf(event.getComponent().getAttributes().get("value") != null ? event.getComponent().getAttributes().get("value").toString() : "false")){ valorColocar = Boolean.TRUE; } for (TarmDecomisoArma tarmDecomisoArma : this.lrecord) { tarmDecomisoArma.getModifiedData().put("seleccionado", valorColocar); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } public void update(TarmDecomisoArma bean) throws Exception { record=bean; super.update(); } /** * @return the armasController */ public ArmasController getArmasController() { return armasController; } /** * @param armasController the armasController to set */ public void setArmasController(ArmasController armasController) { this.armasController = armasController; } }