package com.fp.frontend.controller.armas.solicitud; import java.text.SimpleDateFormat; 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.ViewScoped; 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.helper.MessageHelper; import com.fp.persistence.parmas.soli.TarmDecomisoArma; import com.fp.persistence.parmas.soli.TarmDecomisoArmaTransaccion; @SuppressWarnings("serial") @ManagedBean @ViewScoped public class DecomisoArmaTransaccionController extends AbstractController { public DecomisoArmaTransaccionController() throws Exception { super(TarmDecomisoArmaTransaccion.class); } @Override protected void querydatabase() { try { Request request = this.callerhelper.getRequest(); DtoQuery dto = super.getDtoQuery(true); HashMap mtables = new HashMap(); mtables.put(this.beanalias, dto); // permite adicionar mas de una tabla. request.setQueryTables(mtables); Response resp = this.callerhelper.executeQuery(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) { this.lrecord = new ArrayList(); MessageHelper.setMessageError(resp); } else { this.lrecord = (List) resp.get(this.beanalias); super.postQuery(this.lrecord); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } @PostConstruct private void postconstruct() { this.init(); // Inicializa autoconsulta super.startQuery(); } /** * Incializa el controlador, cuando se esta utilizando una pagina que utliza el controlador. */ private void init() { try { recperpage = 10; // Cambiar al # reg a mirar. lrecord = new ArrayList<>(); beanalias = "DECOMISOARMATRANSACCION"; querydatabase(); } catch (Exception e) { MessageHelper.setMessageError(e); } } public void save() { try { update(); DtoSave dtosave = super.getDtoSave(); dtosave.setReturnpk(true); // Para que el core devuelva el pk de los registros nuevos. HashMap msave = new HashMap(); Request request = callerhelper.getRequest(); msave.put(beanalias, dtosave); // adicionar metadata de mantenimiento para cada tabla. request.setSaveTables(msave); 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); } } /** * Metodo para encontrar por numero de envío * @param envio * @param esRecepcion * @return listado de los registros que cumplen el criterio de busqueda */ public static List findPorEnvio(String envio,boolean esRecepcion) { try { DecomisoArmaTransaccionController cc = new DecomisoArmaTransaccionController(); cc.init(); cc.recperpage = 15; cc.addFilter("numerotransaccion", envio); if(esRecepcion){ cc.addFilter("estadofirma", "Y"); } cc.querydatabase(); if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) { return cc.lrecord; } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } /** * Metodo para encontrar por el pk * @param cdeocmisoarmatransaccion */ public static TarmDecomisoArmaTransaccion find(String cdeocmisoarmatransaccion) { try { DecomisoArmaTransaccionController cc = new DecomisoArmaTransaccionController(); cc.init(); cc.recperpage = 15; cc.addFilter("pk", cdeocmisoarmatransaccion); cc.querydatabase(); if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) { return cc.lrecord.get(0); } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } /** * * @param envio * @return */ public static List findPorEnvioNroDecomiso(String tipoDecomiso, Long numeroDecomiso) { try { DecomisoArmaTransaccionController cc = new DecomisoArmaTransaccionController(); cc.init(); cc.recperpage = 15; cc.querydatabaseManu(tipoDecomiso, numeroDecomiso); if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) { return cc.lrecord; } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } protected void querydatabaseManu(String tipoDecomiso, Long numeroDecomiso) { try { Request request = this.callerhelper.getRequest(); DtoQuery dto = super.getDtoQuery(true); if (numeroDecomiso != null) { Filter f = null; f = new Filter(); if("ENTREGA".equals(tipoDecomiso)){ f.setSql("t.pk in (select tr.cdecomisoarmatransaccion from com.fp.persistence.parmas.soli.TarmDecomisoArma tr where tr.cdecomiso = " + numeroDecomiso + ")"); }else if("RECEPCION".equals(tipoDecomiso)){ f.setSql("t.pk in (select tr.cdecarmtranrecepcion from com.fp.persistence.parmas.soli.TarmDecomisoArma tr where tr.cdecomiso = " + numeroDecomiso + ")"); } dto.addFiltro(f); } HashMap mtables = new HashMap(); mtables.put(this.beanalias, dto); // permite adicionar mas de una tabla. request.setQueryTables(mtables); Response resp = this.callerhelper.executeQuery(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) { this.lrecord = new ArrayList(); MessageHelper.setMessageError(resp); } else { this.lrecord = (List) resp.get(this.beanalias); super.postQuery(this.lrecord); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } /** * * @param envio * @return */ public static List findPorOrganismoUnidad(String codigoUnidadControl, Date fechaCorte, String operacion) { try { DecomisoArmaTransaccionController cc = new DecomisoArmaTransaccionController(); cc.init(); cc.recperpage = 10000; cc.querydatabaseByFechaCorte(fechaCorte, codigoUnidadControl, operacion); if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) { return cc.lrecord; } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } protected void querydatabaseByFechaCorte(Date fechaCorte, String codigoUnidadControl, String operacion) { try { Request request = this.callerhelper.getRequest(); DtoQuery dto = super.getDtoQuery(true); Filter f = null; f = new Filter(); SimpleDateFormat formato= new SimpleDateFormat("yyyy-MM-dd"); String ccentrocontrol = ""; ccentrocontrol = "tb.ccentrocontroldestino = '" + codigoUnidadControl+"'" ; // if(operacion.equals("ENVIO")){ // ccentrocontrol = "tb.ccentrocontroldestino = '" + codigoUnidadControl+"'" ; // }else{ // ccentrocontrol = "tb.ccentrocontrolorigen = '" + codigoUnidadControl+"'" ; // } f.setSql("trunc(t.ftransaccion) <= " + "TO_DATE('" +formato.format(fechaCorte)+ "','yyyy-MM-dd')" + " and t.pk in (select tb.cdecomisoarmatransaccion from com.fp.persistence.parmas.soli.TarmTransaccionArmaBodega tb where " + ccentrocontrol + " and tb.operacion = '"+ operacion+"') and estadofirma = 'Y'" ); dto.addFiltro(f); HashMap mtables = new HashMap(); mtables.put(this.beanalias, dto); // permite adicionar mas de una tabla. request.setQueryTables(mtables); Response resp = this.callerhelper.executeQuery(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) { this.lrecord = new ArrayList(); MessageHelper.setMessageError(resp); } else { this.lrecord = (List) resp.get(this.beanalias); super.postQuery(this.lrecord); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } /** * * @param envio * @return */ public static List findParaReception(String codigoUnidadControl) { try { DecomisoArmaTransaccionController cc = new DecomisoArmaTransaccionController(); cc.init(); cc.recperpage = 100; cc.querydatabaseForReception(codigoUnidadControl); if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) { return cc.lrecord; } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } protected void querydatabaseForReception(String codigoUnidadControl) { try { Request request = this.callerhelper.getRequest(); DtoQuery dto = super.getDtoQuery(true); Filter f = new Filter(); f.setSql("t.estadoflujo = 'ENV' and t.estadofirma = 'Y' and " + " t.pk in (select tb.cdecomisoarmatransaccion from com.fp.persistence.parmas.soli.TarmDecomisoArma tb where tb.coperaciontransaccion = 'ENVIO')" + " and t.pk in (select tba.cdecomisoarmatransaccion from com.fp.persistence.parmas.soli.TarmTransaccionArmaBodega tba where tba.ccentrocontroldestino = '" + codigoUnidadControl + "')"); dto.addFiltro(f); HashMap mtables = new HashMap(); mtables.put(this.beanalias, dto); // permite adicionar mas de una tabla. request.setQueryTables(mtables); Response resp = this.callerhelper.executeQuery(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) { this.lrecord = new ArrayList(); MessageHelper.setMessageError(resp); } else { this.lrecord = (List) resp.get(this.beanalias); super.postQuery(this.lrecord); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } }