package com.fp.frontend.controller.armas.solicitud; import java.io.InputStream; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; 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.context.FacesContext; import javax.faces.event.AjaxBehaviorEvent; import javax.faces.model.SelectItem; 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.query.SubQuery; import com.fp.dto.save.DtoSave; import com.fp.frontend.controller.AbstractController; import com.fp.frontend.controller.ReportController; import com.fp.frontend.controller.alfresco.AlfrescoController; import com.fp.frontend.controller.armas.parametros.CentroControlArmasController; import com.fp.frontend.controller.armas.parametros.TarmCentroControlJurController; import com.fp.frontend.controller.pcustomer.PersonAddressController; import com.fp.frontend.controller.pcustomer.PersonDetailController; 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.frontend.utility.MsgControlArmas; import com.fp.frontend.utility.MsgGeneral; import com.fp.persistence.parmas.param.TarmCentroControl; import com.fp.persistence.parmas.param.TarmCentroControlJur; import com.fp.persistence.parmas.soli.TarmDecomiso; import com.fp.persistence.parmas.soli.TarmDecomisoArma; import com.fp.persistence.parmas.soli.TarmDecomisoArmaTransaccion; import com.fp.persistence.parmas.soli.TarmTransaccionArmaBodega; import com.fp.persistence.pcustomer.gene.TcustPersonAddress; import com.fp.persistence.pcustomer.gene.TcustPersonDetail; import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail; import com.fp.persistence.pgeneral.gene.TgeneParameters; import com.fp.persistence.pgeneral.safe.TsafeUserDetail; /** * Clase controladora del bean TarmDecomisoArma. * * @author C.P. * @version 2.1 */ @SuppressWarnings("serial") @ManagedBean @ViewScoped public class VerificacionBodegaController extends AbstractController { /** * prefijo para la generacion del numero de transaccion */ private static final String prefijo="REC"; @ManagedProperty(value = "#{decomisoArmaTransaccionController}") private DecomisoArmaTransaccionController decomisoArmaTransaccionController; @ManagedProperty(value = "#{transaccionArmaBodegaController}") private TransaccionArmaBodegaController transaccionArmaBodegaController; @ManagedProperty(value = "#{bodegaController}") private BodegaController bodegaController; @ManagedProperty(value = "#{decomisoController}") private DecomisoController decomisoController; /** * Controlador para generar el reporte */ @ManagedProperty(value = "#{reportController}") private ReportController reportController; /** * Controlador para caragar el archivo al alfresco */ @ManagedProperty(value="#{alfrescoController}") private AlfrescoController alfrescoController; private Boolean isCentroDpto = Boolean.FALSE; /** * ruta para cargar el archivo */ private String xpathflujo; /** * Atributo para la lista de objetos TgeneCatalogDetail */ // private List linstitucion; /** * Atributo para la lista de objetos TgeneCatalogDetail */ // private List lnombreInstitucion; /** * Fecha de corte */ private Date fechaCorte; /** * Codigo del centro de control */ private String codigoOrganismoControl; /** * codigo de la unidad de control */ private String codigoUnidadControl; /** * numero de custodia del arma */ // private String numeroDecomiso; private String numerotransaccionEnvio; /** * atributo con los datos del usuario logeado */ private TsafeUserDetail userDetail; /** * catalogo de tipos de reporte */ private List lTipoReporte; /** * atributo para habilitar o desabilitar al boton * guaradr */ private Boolean btnSave; /** * Deshabilita la pantalla después de grabar la solicitud */ private boolean btnSelTodos; /** * Deshabilita la pantalla después de grabar la solicitud */ private boolean cmbTransaccionenvio; /** * atributo para habilitar o desabilitar al boton * genera acta */ private Boolean btnGenerarActa; /** * Atributo para el numero de transacion * de recibido que se genera al pulsar el * boton generar acta */ private String numRecepcionGenerado; /** * Atributo para el numero de transacion * de recibido que se genera al pulsar el * boton generar acta */ private String numRecepcionGeneradoAux; /** * clave primaria de la tabla TarmDecomisoArmaTransaccion */ private String numerotransaccionpk; /** * clave primaria de la tabla TarmDecomisoArmaTransaccion */ private String numerotransaccionpkAux; /** * fecha con la que se realizo el reporte */ private Date fechaCorteg; /** * formato del reporte PDF */ private String format; /** * Tipo de reporte PDF */ private String tipoReporte; /** * centro de control */ private TarmCentroControl centroControl; /** * nombre del centro de control */ private String institucionCentroControl; /** * nombre del centro de control */ private String instiCentroControlCode; /** * codigo del decomiso del catalogo ESTADOARMA */ private String codigoDecomiso; /** * codigo de la incautacion del catalogo ESTADOARMA */ private String codigoIncautacion; /** * codigo de entrega voluntaria del catalogo ESTADOARMA */ private String entregaVoluntaria; /** * codigo de abandono del catalogo ESTADOARMA */ private String abandono; /** * codigo del reclamo del catalogo ESTADOARMA */ private String codigoReclamo; /** * codigo de la provincia del usuario que se logeo */ private String cprovincia; private Boolean itemsUnidadBolean; //Manu /** * centro de control destino */ private String organismoControlDestino; /** * codigo de la unidad de control */ private String unidadControlDestino; /** * unidad de control destino */ private String codigoUnidadControlDestino; private String centroControlOrigenStr; private String unidadOrigenStr; /** * estado operacion del decomiso del catalogo ESTADOARMA */ private String estadoOperacion; private ListitemUnidadDestino; private List listaEnviosRealizados; public VerificacionBodegaController() 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 = 100000; // Cambiar al # reg a mirar. lrecord = new ArrayList(); beanalias = "DECOMARMTRANRECECCION"; //boton desabilitado btnSave=Boolean.TRUE; btnGenerarActa=Boolean.TRUE; btnSelTodos = Boolean.TRUE; cmbTransaccionenvio = Boolean.TRUE; //fecha actual para el corte fechaCorte=new Date(); //CARGA DE CATALOGOS // linstitucion=CatalogDetailController.find("INSTITUCION"); lTipoReporte = CatalogDetailController.find("TIPOREPORTE"); //obtiene el centro de control obtenerCentroControl(); format = "pdf"; numerotransaccionpk=null; codigoDecomiso=codigos("CODIGO.DECOMISADA");//DEC codigoIncautacion=codigos("CODIGO.INCAUTADA");//INC entregaVoluntaria = codigos("CODIGO.ENTV"); abandono = codigos("CODIGO.ABAN"); codigoReclamo=codigos("CODIGO.RECL");//RECLAMO xpathflujo=null; itemsUnidadBolean=Boolean.FALSE; estadoOperacion = "ENVIO"; TsafeUserDetail tsafeUserDetail=(TsafeUserDetail)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL"); codigoUnidadControlDestino = tsafeUserDetail.getCcentrocontrol(); organismoControlDestino = tsafeUserDetail.getModifiedData().get("centrocontrol").toString(); unidadControlDestino = tsafeUserDetail.getModifiedData().get("unidad").toString(); //codigoOrganismoControl = tsafeUserDetail.getCcentrocontrol(); codigoUnidadControl = tsafeUserDetail.getCcentrocontrol(); listaEnviosRealizados = DecomisoArmaTransaccionController.findParaReception(codigoUnidadControl); // System.out.println(listaDecomisoArmaTrans1.size()); } catch (Exception e) { MessageHelper.setMessageError(e); } } /** * Método para obtener el centro de control * @throws Exception */ private void obtenerCentroControl() throws Exception { userDetail= (TsafeUserDetail) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL"); centroControl= CentroControlArmasController.findPorCodigo(userDetail.getCcentrocontrol()); cprovincia=centroControl.getProvincecode(); itemUnidadDestino= new ArrayList(); institucionCentroControl = CatalogDetailController.findxCodigoCodcatalogo( centroControl.getNombreinstitucion(), centroControl.getNombreinstitucioncodigo()).getDescription(); //codigo del centro de control de pichincha TgeneParameters paramCentroControlDestino=ParametersController.find("CODIGO.CENT.CONTROL.PICHINCHA", "1");//000030//CAPI //validamos si la persona que ingreso pertenece al centro de control pichincha para darle al opcion de seleccionar el deparatmento de control para la recepcion if(paramCentroControlDestino.getTextvalue().equals(centroControl.getNombreinstitucion())){ itemUnidadDestino.add(new SelectItem(centroControl.getPk(), institucionCentroControl)); //codigo del departamento de control TgeneParameters paramDepartamentoControl=ParametersController.find("CODIGO.DEPT.CONTROL", "1");//DPCA TarmCentroControl institCentroControlDestino= CentroControlArmasController.findPorCentroControl(paramDepartamentoControl.getTextvalue());//000077 itemUnidadDestino.add(new SelectItem(institCentroControlDestino.getPk(), ""+institCentroControlDestino.getModifiedData().get("desnombreinstitucion"))); }else{ instiCentroControlCode=centroControl.getPk(); } } /** * Metodo para obtener los codigos */ private String codigos(String parametro){ TgeneParameters tgeneParameters= ParametersController.find(parametro, "1"); return tgeneParameters.getTextvalue(); } /** * 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 { if(fechaCorte!=null){ DtoQuery dto = this.getDtoQuery(); dto.setOrderby("t.fdecomiso"); if(numerotransaccionpk!=null){ SimpleDateFormat formato= new SimpleDateFormat("yyyy-MM-dd"); Filter decomisoFiltro= new Filter(); decomisoFiltro.setSql("trunc(t.fdecomiso) <= " + "TO_DATE('" + formato.format(fechaCorte)+ "','yyyy-MM-dd') and (t.estado='"+codigoDecomiso+"' or t.estado='"+codigoIncautacion+"' or t.estado='"+abandono+"' or t.estado='"+codigoReclamo+"') and t.cdecarmtranrecepcion = "+numerotransaccionpk); dto.addFiltro(decomisoFiltro); }else{//aniadimos los filtros de busqueda dto = filtroVerificarArmas(dto); numRecepcionGenerado=null; //codigoOrganismoControlDestino = null; //codigoUnidadControlDestino = null; } HashMap mtables = new HashMap(); mtables.put(beanalias, dto); Request request = callerhelper.getRequest(); request.setQueryTables(mtables); Response resp = callerhelper.executeQuery(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) { lrecord = new ArrayList(); btnSelTodos = Boolean.TRUE; MessageHelper.setMessageError(resp); } else { lrecord = (List) resp.get(beanalias); //metodo para completar la informacion completarInformacionArma(); btnSave=Boolean.TRUE; btnSelTodos = Boolean.FALSE; btnGenerarActa=Boolean.TRUE; numerotransaccionpk=null; super.postQuery(lrecord); } } } catch (Throwable e) { MessageHelper.setMessageError(e); } } /** * Retorna un {@link DtoQuery} con los atributos a presentarse * @return * @throws Exception */ private DtoQuery getDtoQuery() throws Exception{ DtoQuery dto = super.getDtoQuery(true); SubQuery subqueryNumRec= new SubQuery("TarmDecomiso","numerorecibo","nrecibo","i.pk=t.cdecomiso"); dto.addSubQuery(subqueryNumRec); SubQuery subqueryNumTransac= new SubQuery("TarmDecomiso","numerotransaccion","numerotransaccion","i.pk=t.cdecomiso"); dto.addSubQuery(subqueryNumTransac); SubQuery subqueryCentroControl= new SubQuery("TarmDecomiso","ccentrocontrol","ccentrocontrol","i.pk=t.cdecomiso"); dto.addSubQuery(subqueryCentroControl); SubQuery subqueryMarca= new SubQuery("TgeneCatalogDetail","description","nmarca", "i.pk.catalog=(select o.marca from TarmArmas o where o.pk=t.carma)" + " and i.pk.catalogcode=(select o.marcacodigo from TarmArmas o where o.pk=t.carma)"); dto.addSubQuery(subqueryMarca); SubQuery subquerySerieArma= new SubQuery("TarmArmas","lote","nserie","i.pk=t.carma"); dto.addSubQuery(subquerySerieArma); SubQuery subqueryCalibre= new SubQuery("TgeneCatalogDetail","description","ncalibre", "i.pk.catalog =(select o.calibre from TarmTipoArmaExplosivo o where o.pk=(select a.ctipoarmaexplosivo from TarmArmas a where a.pk=t.carma))" + " and i.pk.catalogcode=(select o.calibrecodigo from TarmTipoArmaExplosivo o where o.pk=(select a.ctipoarmaexplosivo from TarmArmas a where a.pk=t.carma))");//calibrecodigo dto.addSubQuery(subqueryCalibre); SubQuery subqueryCodigoReg= new SubQuery("TarmArmas","cregistro","cregistro","i.pk=t.carma"); dto.addSubQuery(subqueryCodigoReg); SubQuery subqueryCodigoArmaExplo= new SubQuery("TarmArmas","ctipoarmaexplosivo","ctipoarmaexplosivo","i.pk=t.carma"); dto.addSubQuery(subqueryCodigoArmaExplo); //tipo, clase, unidad de TarmTipoArmaExplosivo SubQuery subqueryTipo= new SubQuery("TgeneCatalogDetail","description","ntipo", "i.pk.catalog =(select o.tipoarmaexplosivo from TarmTipoArmaExplosivo o where o.pk=(select a.ctipoarmaexplosivo from TarmArmas a where a.pk=t.carma))" + " and i.pk.catalogcode=(select o.tipoarmaexplosivocodigo from TarmTipoArmaExplosivo o where o.pk=(select a.ctipoarmaexplosivo from TarmArmas a where a.pk=t.carma))"); dto.addSubQuery(subqueryTipo); SubQuery subqueryClase= new SubQuery("TgeneCatalogDetail","description","nclase", "i.pk.catalog =(select o.clase from TarmTipoArmaExplosivo o where o.pk=(select a.ctipoarmaexplosivo from TarmArmas a where a.pk=t.carma))" + " and i.pk.catalogcode=(select o.clasecodigo from TarmTipoArmaExplosivo o where o.pk=(select a.ctipoarmaexplosivo from TarmArmas a where a.pk=t.carma))"); dto.addSubQuery(subqueryClase); SubQuery subqueryUnidad= new SubQuery("TgeneCatalogDetail","description","nunidad", "i.pk.catalog =(select o.unidadmedidapeso from TarmTipoArmaExplosivo o where o.pk=(select a.ctipoarmaexplosivo from TarmArmas a where a.pk=t.carma))" + " and i.pk.catalogcode=(select o.unidadmedidapesocodigo from TarmTipoArmaExplosivo o where o.pk=(select a.ctipoarmaexplosivo from TarmArmas a where a.pk=t.carma))"); dto.addSubQuery(subqueryUnidad); //personcode //TarmRegistroArmas registroArma = RegistroArmController.findByCodigo(decomisoArma.getModifiedData().get("cregistro").toString()); SubQuery subqueryPersonCode= new SubQuery("TarmRegistroArmas","personcode","personcode", " i.pk =(select o.cregistro from TarmArmas o where o.pk=t.carma)"); dto.addSubQuery(subqueryPersonCode); SubQuery subquerEstadoFlujo= new SubQuery("TarmDecomisoArmaTransaccion","estadoflujo","estadoflujo","i.pk=t.cdecomisoarmatransaccion"); dto.addSubQuery(subquerEstadoFlujo); return dto; } @Override public void save() { try { Boolean seleccion = Boolean.FALSE; for(TarmDecomisoArma decomisoArma:this.lrecord){ record = decomisoArma; if(record.getModifiedData().get("seleccion").equals(Boolean.TRUE)){ seleccion = true; record.setCdecarmtranrecepcion(0l); record.setCoperaciontransaccion("RECEPCION"); } this.update(); } if(!seleccion){ MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_verificararmas")); return; } Request request = callerhelper.getRequest(); HashMap msave = new HashMap(); Calendar cal=Calendar.getInstance(); cal.setTime(fechaCorte); java.sql.Date fechaCorteRegistro=new java.sql.Date(cal.getTimeInMillis()); this.decomisoArmaTransaccionController.create(); this.decomisoArmaTransaccionController.getRecord().setFtransaccion(null); this.decomisoArmaTransaccionController.getRecord().setFcorte(fechaCorteRegistro); this.decomisoArmaTransaccionController.getRecord().setCcentrocontrol(codigoUnidadControlDestino);//de la persona que revcibe//centroControl.getPk() codigoUnidadControlDestino TsafeUserDetail tsafeUserDetail = (TsafeUserDetail) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL"); TarmCentroControl centroControlLogin= CentroControlArmasController.findPorCodigo(tsafeUserDetail.getCcentrocontrol()); if(!"1".equals(CatalogDetailController.findxCodigoCodcatalogo(centroControlLogin.getInstitucion(), centroControlLogin.getInstituciontipo()).getPk().getCatalog())){ this.decomisoArmaTransaccionController.getRecord().setEstadofirma("Y"); this.decomisoArmaTransaccionController.getRecord().setEstadoflujo("ENV"); isCentroDpto = Boolean.FALSE; }else{ this.decomisoArmaTransaccionController.getRecord().setEstadofirma("N"); this.decomisoArmaTransaccionController.getRecord().setEstadoflujo("NOENV"); isCentroDpto = Boolean.TRUE; } this.decomisoArmaTransaccionController.update(); DtoSave dtosaveDecomisoTran = this.decomisoArmaTransaccionController.getDtoSave(true); dtosaveDecomisoTran.setReturnpk(true); dtosaveDecomisoTran.setPosition(1); msave.put(decomisoArmaTransaccionController.getBeanalias(), dtosaveDecomisoTran); DtoSave dtosaveDecomiso = this.getDtoSave(true); dtosaveDecomiso.setReturnpk(true); dtosaveDecomiso.setPosition(2); msave.put(getBeanalias(), dtosaveDecomiso); //transacciones del arma DtoSave dtosaveArmaBodega = transaccionArmaBodegaController.getDtoSave(true); dtosaveArmaBodega.setReturnpk(true); dtosaveArmaBodega.setPosition(3); msave.put(transaccionArmaBodegaController.getBeanalias(), dtosaveArmaBodega); //bodega del arma DtoSave dtosaveBodega = bodegaController.getDtoSave(true); dtosaveBodega.setReturnpk(true); dtosaveBodega.setPosition(4); msave.put(bodegaController.getBeanalias(), dtosaveBodega); //para la actualizacion del centro de control destino DtoSave dtosaveDecomisoCab = decomisoController.getDtoSave(true); dtosaveDecomisoCab.setPosition(5); msave.put(decomisoController.getBeanalias(), dtosaveDecomisoCab); request.setSaveTables(msave); //prefijo request.put("prefijo", prefijo); // para el flujo request.modifiedData().put("isnew", "N");//para que ejecute desde un boton //completa la informacion en un transaction rule DecomisoArmaRecepcion Response resp = callerhelper.executeSave(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) { this.decomisoArmaTransaccionController.postCommit(resp); this.postCommit(resp); TarmDecomisoArmaTransaccion decomisoArmaTransaccion=(TarmDecomisoArmaTransaccion)dtosaveDecomisoTran.getLinsert().get(0); numerotransaccionpk=decomisoArmaTransaccion.getPk().toString(); numerotransaccionpkAux=decomisoArmaTransaccion.getPk().toString(); //numereo de transaccion numRecepcionGenerado=resp.get("numerotransaccionrecep").toString(); numRecepcionGeneradoAux=resp.get("numerotransaccionrecep").toString(); fechaCorteg=decomisoArmaTransaccion.getFcorte(); //metodo para generar el acta querydatabase(); btnSave=Boolean.TRUE; btnSelTodos = Boolean.TRUE; cmbTransaccionenvio = Boolean.FALSE; btnGenerarActa=Boolean.FALSE; // numerotransaccionEnvio = ""; MessageHelper.setMessageInfo(resp); } else { MessageHelper.setMessageError(resp); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } @Override public void postCommit(Response response) throws Exception { super.postCommitGeneric(response, beanalias); } /** * Método para el evento change del combo transaccion */ public void executeTransaccion() { List decomisoArmaTransaccionOrigen = DecomisoArmaTransaccionController.findPorEnvio(numerotransaccionEnvio, true); if(decomisoArmaTransaccionOrigen != null && !decomisoArmaTransaccionOrigen.isEmpty()){ // codigoUnidadControlDestino = decomisoArmaTransaccionOrigen.get(0).getCcentrocontrol(); TarmCentroControl centroControlOrigen = CentroControlArmasController.findPorCodigo(decomisoArmaTransaccionOrigen.get(0).getCcentrocontrol()); centroControlOrigenStr = CatalogDetailController.findxCodigoCodcatalogo( centroControlOrigen.getInstitucion(), centroControlOrigen.getInstituciontipo()).getDescription(); unidadOrigenStr = CatalogDetailController.findxCodigoCodcatalogo( centroControlOrigen.getNombreinstitucion(), centroControlOrigen.getNombreinstitucioncodigo()).getDescription(); } } /** * Completa las caracteristicas del arma de los catalogos correspondientes */ public void completarInformacionArma(){ ListarmasNoenviadas=new ArrayList(); for(TarmDecomisoArma decomisoArma:lrecord){ decomisoArma.getModifiedData().put("seleccion",false); //TarmRegistroArmas registroArma = RegistroArmController.findByCodigo(decomisoArma.getModifiedData().get("cregistro").toString()); if(decomisoArma.getModifiedData().get("personcode")!=null){ TcustPersonDetail tcustPersonDetail=PersonDetailController.find(decomisoArma.getModifiedData().get("personcode").toString()); decomisoArma.getModifiedData().put("nrazons", tcustPersonDetail.getName()); decomisoArma.getModifiedData().put("documento", tcustPersonDetail.getIdentification()); } if(decomisoArma.getModifiedData().get("estadoflujo")!=null && decomisoArma.getModifiedData().get("estadoflujo").equals("NOENV") ){ armasNoenviadas.add(decomisoArma); } } for(TarmDecomisoArma decomisoArma:armasNoenviadas){ lrecord.remove(decomisoArma); } } /** * Método para habilitar o desabilitar el btn * Arma a decomisar * @throws Exception */ public void onChange(TarmDecomisoArma decomisoArma ) throws Exception { btnSave=Boolean.TRUE; itemsUnidadBolean=Boolean.FALSE; for(TarmDecomisoArma t:lrecord){ if(t.getModifiedData().get("seleccion").equals(Boolean.TRUE)){ btnSave=Boolean.FALSE; itemsUnidadBolean=Boolean.TRUE; } } } /** * Metodo para filtrar por Unidad de Control * @param dto Dto sobre el que se va a ejecutar el filtro * @throws Exception */ private DtoQuery filtroVerificarArmas(DtoQuery dto) throws Exception{ Filter decomisoFiltro= new Filter(); List listaDecomisoArmaTrans = new ArrayList<>(); if(numerotransaccionEnvio != null && !"".equals(numerotransaccionEnvio)){ listaDecomisoArmaTrans = DecomisoArmaTransaccionController.findPorEnvio(numerotransaccionEnvio,true); }else{ listaDecomisoArmaTrans = DecomisoArmaTransaccionController.findPorOrganismoUnidad(codigoUnidadControl, fechaCorte, estadoOperacion); } String filtroDecomisoArmaTrans=""; if(listaDecomisoArmaTrans != null && !listaDecomisoArmaTrans.isEmpty()){ StringBuffer lstBuffer = new StringBuffer(); for(TarmDecomisoArmaTransaccion decomisoArmaTrans : listaDecomisoArmaTrans){ if(!lstBuffer.toString().isEmpty()){ lstBuffer.append(" or "); } lstBuffer.append("t.cdecomisoarmatransaccion = " + decomisoArmaTrans.getPk()); } filtroDecomisoArmaTrans = (!lstBuffer.toString().trim().isEmpty())?" and (" + lstBuffer.toString() + ")":""; }else{ filtroDecomisoArmaTrans = "and (t.cdecomisoarmatransaccion = 999999)"; } decomisoFiltro.setSql("(t.estado='"+codigoDecomiso+"' or t.estado='"+codigoIncautacion+"' or t.estado='"+entregaVoluntaria+"' or t.estado='"+abandono+"' or t.estado='"+codigoReclamo+"') and t.cdecomiso is not null and t.coperaciontransaccion = '" + estadoOperacion + "' and t.enbodega='Y'" + filtroDecomisoArmaTrans); dto.addFiltro(decomisoFiltro); return dto; } /** * 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; } btnSave=Boolean.TRUE; for (TarmDecomisoArma decomisoArma : lrecord) { decomisoArma.getModifiedData().put("seleccion", valorColocar); if(decomisoArma.getModifiedData().get("seleccion").equals(Boolean.TRUE)){ btnSave=Boolean.FALSE; //itemsUnidadBolean=Boolean.TRUE; } } } catch (Throwable e) { MessageHelper.setMessageError(e); } } /** * Metodo para generar el acta de recepcion * y cargar el archivo en el alfresco */ public void generarActa() { if (fechaCorteg != null) { Calendar fechaActualCldr = Calendar.getInstance(); String codigoreporte = numerotransaccionpkAux; String path = "armas/reports/repo2"; String filename = numRecepcionGenerado; String gradoUsuario = ""; TcustPersonDetail usuario = PersonDetailController.find(this.userDetail.getPk().getPersoncode().toString()); TgeneCatalogDetail grado = CatalogDetailController.findxCodigoCodcatalogo(usuario.getMilitarygrade(), usuario.getMilitarygradecode()); if(grado != null){ gradoUsuario = grado.getDescription()+" - "+usuario.getName(); }else{ gradoUsuario = "Sin Grado - "+usuario.getName(); } // Fija parametros del report. HashMap parameters = new HashMap<>(); parameters.put("pathLogoIzquierda","repo:/maia/1/image/comandoconjunto"); parameters.put("pathLogoDerecha", "repo:/maia/1/image/selloarmas"); try { // Usuario logueado en la aplicacion String nombreUsuario; if (userDetail.getPk().getPersoncode() != null) { nombreUsuario = PersonDetailController.find(userDetail.getPk().getPersoncode().toString()).getName(); } else { nombreUsuario = ""; } // TarmCentroControl centroControlDestino = CentroControlArmasController.findPorCodigo(codigoUnidadControlDestino); // String centroControlDestinoStr = CatalogDetailController.findxCodigoCodcatalogo( centroControlDestino.getInstitucion(), centroControlDestino.getInstituciontipo()).getDescription(); // String unidadControlDestinoStr = CatalogDetailController.findxCodigoCodcatalogo( centroControlDestino.getNombreinstitucion(), centroControlDestino.getNombreinstitucioncodigo()).getDescription(); parameters.put("user", nombreUsuario); parameters.put("organismoControlOrigen", centroControlOrigenStr); parameters.put("unidadControlOrigen", unidadOrigenStr); parameters.put("organismoControlDestino", organismoControlDestino); parameters.put("unidadControlDestino", unidadControlDestino); parameters.put("codigodec", codigoreporte.toString());//este parameters.put("fechaCorte", new SimpleDateFormat("dd-MM-yyyy").format(fechaCorteg));//este parameters.put("numtransaccion", numRecepcionGeneradoAux); parameters.put("personcode", userDetail.getPk().getPersoncode()); parameters.put("nombregrado", gradoUsuario);//este // Fecha actual StringBuilder fechaActualSB = new StringBuilder(); fechaActualSB = fechaActualSB.append((fechaActualCldr.get(Calendar.DAY_OF_MONTH)) <= 9 ? "0"+ (fechaActualCldr.get(Calendar.DAY_OF_MONTH)): (fechaActualCldr.get(Calendar.DAY_OF_MONTH))); fechaActualSB = fechaActualSB.append("-").append((fechaActualCldr.get(Calendar.MONTH) + 1) <= 9 ? "0"+ (fechaActualCldr.get(Calendar.MONTH) + 1): (fechaActualCldr.get(Calendar.MONTH) + 1)); fechaActualSB = fechaActualSB.append("-").append(fechaActualCldr.get(Calendar.YEAR)); fechaActualSB = fechaActualSB.append(" ").append(fechaActualCldr.get(Calendar.HOUR_OF_DAY)); fechaActualSB = fechaActualSB.append(":").append((fechaActualCldr.get(Calendar.MINUTE)) <= 9 ? "0"+ (fechaActualCldr.get(Calendar.MINUTE)): (fechaActualCldr.get(Calendar.MINUTE))); parameters.put("lugarFecha", fechaActualSB.toString()); TgeneCatalogDetail orgControl = CatalogDetailController.findCatalogo("NOMBREINSTITUCION", this.codigoUnidadControl); if(orgControl != null){ parameters.put("orgControl", orgControl.getDescription()); }else { parameters.put("orgControl", ""); } format = "pdf"; InputStream file = this.reportController.jaspertoInputstream(path, parameters, format, filename,this.getLoginController()); xpathflujo = generarXpath(); if(!alfrescoController.uploadFile(file, numRecepcionGeneradoAux+ ".pdf", xpathflujo)){ xpathflujo=null; } System.out.println(xpathflujo+"/cm:"+numRecepcionGeneradoAux+ ".pdf"); numerotransaccionEnvio = ""; //="cm:Decomiso/cm:A-2016/cm:M-01/cm:CENTRO CONTROL/cm:ABANDONO/cm:REC/cm:REC-000000319.pdf" } catch (Exception ex) { MessageHelper.setMessageError(ex); } } } /** * Metodo para generar la ruta donde se carga el archivo * @return */ public String generarXpath(){ Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); StringBuilder ruta=new StringBuilder("cm:Decomiso"); ruta = ruta.append("/cm:A-").append(calendar.get(Calendar.YEAR)); ruta = ruta.append("/cm:M-").append((calendar.get(Calendar.MONTH)+1) <= 9 ? "0" + (calendar.get(Calendar.MONTH) + 1) : (calendar.get(Calendar.MONTH)+1)); String centrocontrol=unidadControlDestino.replaceAll("\\s+", "_"); ruta = ruta.append("/cm:").append(centrocontrol); ruta = ruta.append("/cm:"+"REC"); return ruta.toString(); } /** * Validacion de las fechas que no se amayor a la actual * @param fech */ public void validarfecha(Date fech){ if(fech.getTime()>(new Date()).getTime()){ fech=new Date(); fechaCorte=new java.sql.Date(new Date().getTime()); MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_fechadecomisonopuedesermayoralaactual")); } } /** * Ejecuta un reporte de armas a destruir * Método para el inicio de flujo */ public void iniciarFlujo() { try { if(xpathflujo==null){ MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_generereporte")); return; } if(cprovincia==null || cprovincia.length()==0){ MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_sinprovincia")); return; } //instiCentroControlCode TarmCentroControl centroControl= CentroControlArmasController.findPorCodigo(instiCentroControlCode); if(centroControl==null || centroControl.getPk()==null){ MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_sinprovincia")); return; } TgeneParameters paramDepartamentoControl=ParametersController.find("CODIGO.DEPT.CONTROL", "1");//DPCA if(centroControl.getNombreinstitucion().equals(paramDepartamentoControl.getTextvalue())){ cprovincia=paramDepartamentoControl.getTextvalue(); } //itemUnidadDestino String xpath=xpathflujo+"/cm:"+numRecepcionGeneradoAux+ ".pdf"; Request request = callerhelper.getRequest(); super.cleanRequest(request); //codigo de la tabla TarmDecomisoArmaTransaccion request.modifiedData().put("numerotransaccion", numerotransaccionpkAux); request.modifiedData().put("cprovincia", cprovincia); request.modifiedData().put("numerosolicitud", numRecepcionGeneradoAux); //ruta del archivo para la firma //TODO Falta crear la variable en maia 2-8 request.modifiedData().put("xpath", xpath); request.modifiedData().put("isnew", "Y"); request.setLogsolicitude(numRecepcionGeneradoAux); Response resp = callerhelper.executeSave(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) { this.setShowRow(true); MessageHelper.setMessageInfo(resp, MsgGeneral.getProperty("msg_initFlow") + " TRANSACCION: "+ numerotransaccionpkAux); xpathflujo=null; btnGenerarActa=Boolean.TRUE; btnSelTodos = Boolean.TRUE; cmbTransaccionenvio = Boolean.FALSE; btnSave = Boolean.TRUE; } else { MessageHelper.setMessageError(resp); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } public void executeUnidad() { for(SelectItem item: itemUnidadDestino){ if(item.getValue().equals(instiCentroControlCode)){ institucionCentroControl=item.getLabel(); } } } public List getlTipoReporte() { return lTipoReporte; } public void setlTipoReporte(List lTipoReporte) { this.lTipoReporte = lTipoReporte; } public Date getFechaCorte() { return fechaCorte; } public void setFechaCorte(Date fechaCorte) { this.fechaCorte = fechaCorte; } public String getFormat() { return format; } public void setFormat(String format) { this.format = format; } public ReportController getReportController() { return reportController; } public void setReportController(ReportController reportController) { this.reportController = reportController; } public String getTipoReporte() { return tipoReporte; } public void setTipoReporte(String tipoReporte) { this.tipoReporte = tipoReporte; } public TsafeUserDetail getUserDetail() { return userDetail; } public void setUserDetail(TsafeUserDetail userDetail) { this.userDetail = userDetail; } public TarmCentroControl getCentroControl() { return centroControl; } public void setCentroControl(TarmCentroControl centroControl) { this.centroControl = centroControl; } /** * @return the listaEnviosRealizados */ public List getListaEnviosRealizados() { return listaEnviosRealizados; } /** * @param listaEnviosRealizados the listaEnviosRealizados to set */ public void setListaEnviosRealizados( List listaEnviosRealizados) { this.listaEnviosRealizados = listaEnviosRealizados; } public String getCodigoOrganismoControl() { return codigoOrganismoControl; } public void setCodigoOrganismoControl(String codigoOrganismoControl) { this.codigoOrganismoControl = codigoOrganismoControl; } public String getCodigoUnidadControl() { return codigoUnidadControl; } public void setCodigoUnidadControl(String codigoUnidadControl) { this.codigoUnidadControl = codigoUnidadControl; } public Boolean getBtnSave() { return btnSave; } public void setBtnSave(Boolean btnSave) { this.btnSave = btnSave; } public String getNumRecepcionGenerado() { return numRecepcionGenerado; } public void setNumRecepcionGenerado(String numRecepcionGenerado) { this.numRecepcionGenerado = numRecepcionGenerado; } public DecomisoArmaTransaccionController getDecomisoArmaTransaccionController() { return decomisoArmaTransaccionController; } public void setDecomisoArmaTransaccionController( DecomisoArmaTransaccionController decomisoArmaTransaccionController) { this.decomisoArmaTransaccionController = decomisoArmaTransaccionController; } public String getNumerotransaccionEnvio() { return numerotransaccionEnvio; } public void setNumerotransaccionEnvio(String numerotransaccionEnvio) { this.numerotransaccionEnvio = numerotransaccionEnvio; } public AlfrescoController getAlfrescoController() { return alfrescoController; } public void setAlfrescoController(AlfrescoController alfrescoController) { this.alfrescoController = alfrescoController; } public String getXpathflujo() { return xpathflujo; } public void setXpathflujo(String xpathflujo) { this.xpathflujo = xpathflujo; } public String getNumerotransaccionpk() { return numerotransaccionpk; } public void setNumerotransaccionpk(String numerotransaccionpk) { this.numerotransaccionpk = numerotransaccionpk; } public Boolean getBtnGenerarActa() { return btnGenerarActa; } public void setBtnGenerarActa(Boolean btnGenerarActa) { this.btnGenerarActa = btnGenerarActa; } public TransaccionArmaBodegaController getTransaccionArmaBodegaController() { return transaccionArmaBodegaController; } public void setTransaccionArmaBodegaController( TransaccionArmaBodegaController transaccionArmaBodegaController) { this.transaccionArmaBodegaController = transaccionArmaBodegaController; } public BodegaController getBodegaController() { return bodegaController; } public void setBodegaController(BodegaController bodegaController) { this.bodegaController = bodegaController; } public String getInstiCentroControlCode() { return instiCentroControlCode; } public void setInstiCentroControlCode(String instiCentroControlCode) { this.instiCentroControlCode = instiCentroControlCode; } public String getInstitucionCentroControl() { return institucionCentroControl; } public void setInstitucionCentroControl(String institucionCentroControl) { this.institucionCentroControl = institucionCentroControl; } public List getItemUnidadDestino() { return itemUnidadDestino; } public void setItemUnidadDestino(List itemUnidadDestino) { this.itemUnidadDestino = itemUnidadDestino; } public Boolean getItemsUnidadBolean() { return itemsUnidadBolean; } public void setItemsUnidadBolean(Boolean itemsUnidadBolean) { this.itemsUnidadBolean = itemsUnidadBolean; } public DecomisoController getDecomisoController() { return decomisoController; } public void setDecomisoController(DecomisoController decomisoController) { this.decomisoController = decomisoController; } /** * @return the organismoControlDestino */ public String getOrganismoControlDestino() { return organismoControlDestino; } /** * @param organismoControlDestino the organismoControlDestino to set */ public void setOrganismoControlDestino(String organismoControlDestino) { this.organismoControlDestino = organismoControlDestino; } /** * @return the unidadControlDestino */ public String getUnidadControlDestino() { return unidadControlDestino; } /** * @param unidadControlDestino the unidadControlDestino to set */ public void setUnidadControlDestino(String unidadControlDestino) { this.unidadControlDestino = unidadControlDestino; } public String getCodigoUnidadControlDestino() { return codigoUnidadControlDestino; } public void setCodigoUnidadControlDestino(String codigoUnidadControlDestino) { this.codigoUnidadControlDestino = codigoUnidadControlDestino; } public String getCentroControlOrigenStr() { return centroControlOrigenStr; } public void setCentroControlOrigenStr(String centroControlOrigenStr) { this.centroControlOrigenStr = centroControlOrigenStr; } public String getUnidadOrigenStr() { return unidadOrigenStr; } public void setUnidadOrigenStr(String unidadOrigenStr) { this.unidadOrigenStr = unidadOrigenStr; } public Boolean getIsCentroDpto() { return isCentroDpto; } public void setIsCentroDpto(Boolean isCentroDpto) { this.isCentroDpto = isCentroDpto; } public boolean isBtnSelTodos() { return btnSelTodos; } public void setBtnSelTodos(boolean btnSelTodos) { this.btnSelTodos = btnSelTodos; } public boolean isCmbTransaccionenvio() { return cmbTransaccionenvio; } public void setCmbTransaccionenvio(boolean cmbTransaccionenvio) { this.cmbTransaccionenvio = cmbTransaccionenvio; } }