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 org.primefaces.context.RequestContext; import org.primefaces.event.FileUploadEvent; import org.primefaces.model.UploadedFile; 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.ReportController; import com.fp.frontend.controller.alfresco.AlfrescoController; import com.fp.frontend.controller.armas.funcionalidad.RegistroArmController; import com.fp.frontend.controller.armas.parametros.CentroControlArmasController; import com.fp.frontend.controller.armas.parametros.TarmCentroControlJurController; import com.fp.frontend.controller.armas.parametros.TiposArmasExplosivosController; 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.CountryController; import com.fp.frontend.controller.pgeneral.gene.ParametersController; import com.fp.frontend.helper.MessageHelper; import com.fp.frontend.utility.MsgControlArmas; import com.fp.persistence.parmas.fun.TarmRegistroArmas; import com.fp.persistence.parmas.param.TarmCentroControl; import com.fp.persistence.parmas.param.TarmCentroControlJur; import com.fp.persistence.parmas.param.TarmTipoArmaExplosivo; import com.fp.persistence.parmas.param.TarmTramite; import com.fp.persistence.parmas.soli.TarmArmaPruebas; import com.fp.persistence.parmas.soli.TarmArmas; import com.fp.persistence.parmas.soli.TarmSolicitud; import com.fp.persistence.parmas.soli.TarmSolicitudArmas; import com.fp.persistence.parmas.soli.TarmSolicitudTramite; 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.TgeneCountry; import com.fp.persistence.pgeneral.gene.TgeneParameters; import com.fp.persistence.pgeneral.safe.TsafeUserDetail; /** * * Controlador que administra la ficha tecnica de armas * @author Carlos Guzman * */ @SuppressWarnings("serial") @ManagedBean @ViewScoped public class IngresoFichaTecnicaArmasController extends AbstractController { /** * */ private static final long serialVersionUID = 8843091476010012919L; /** * Controlador que maneja alfresco */ @ManagedProperty(value = "#{alfrescoController}") private AlfrescoController alfrescoController; /** * Controlador que maneja reportes */ @ManagedProperty(value = "#{reportController}") private ReportController reportController; /** * Controlador que maneja armas */ @ManagedProperty(value = "#{armasController}") private ArmasController armas; private TarmArmas arma = new TarmArmas(); private String editarReg; private String codigoSolicitud; private boolean habilitaButtom; private TarmCentroControl centroControl = new TarmCentroControl(); private List listadoArmasPruebas = new ArrayList<>(); private String observacion; private String estado; private Date fec_actual; private String formato; private String xpathflujo; private TcustPersonDetail responsableCentroControl= null; private TsafeUserDetail tsafeUserDetailUsuario = null; private Boolean btnFlujo; private List tarmArmaPruebasList; /** * lista del catalogo de las acciones (Aceptar o rechazar) */ private List laccion; private boolean deshabilitadoGenerarReporte=true; private TarmSolicitud solicitud; private TarmSolicitudTramite solicitudTramite; private TarmTramite tramite; private TcustPersonAddress direccionCliente; private String provincia; private String canton; private String ciudad; private String direccion; private TgeneCatalogDetail estadotramite; private TgeneCatalogDetail usoActividad; private TcustPersonDetail personaDetalle; private TgeneCatalogDetail identificacion; private TgeneCatalogDetail detallecatalogoTipoTramite; private TgeneCatalogDetail detallecatalogo; public IngresoFichaTecnicaArmasController() throws Exception { super(TarmArmaPruebas.class); } @PostConstruct private void postconstruct() { try { startQuery(); this.init(); laccion=CatalogDetailController.find("ACCION"); if(codigoSolicitud!=null){ caragarArmas(); } } catch (Exception e) { MessageHelper.setMessageError(e); } } public void startQuery() { try { this.pasteBpmScreenParameters(); codigoSolicitud=super.getMfilters().get("csolicitud");//"1012";//2656 super.getMfilters().clear(); } catch (Exception e) { MessageHelper.setMessageError(e); } } private void init() { recperpage = 3000; // Cambiar al # reg a mirar. lrecord = new ArrayList<>(); beanalias = "INGRESOFICHAARMAS"; try { if(this.obtenerCentroControl()==null){ MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_sin_centrocontrol")); return; } solicitud=SolicitudController.findSolicitudxcodsolicitud(codigoSolicitud); solicitudTramite=SolicitudTramiteController.findByCSolicitud(codigoSolicitud); tramite=TarmTramiteController.find(solicitud.getCtramite()+""); direccionCliente=PersonAddressController.find(String.valueOf(solicitud.getPersoncode())) ; provincia = direccionCliente.modifiedData().get("provincia")==null?null: direccionCliente.modifiedData().get("provincia").toString(); //personAddressController.getLprovinces()==null || .getLprovinces().isEmpty()?null:personAddressController.getLprovinces().get(0); canton = direccionCliente.modifiedData().get("canton")==null?null: direccionCliente.modifiedData().get("canton").toString();//personAddressController.getLcantones()==null || personAddressController.getLcantones().isEmpty()?null:personAddressController.getLcantones().get(0); ciudad = direccionCliente.modifiedData().get("ciudad")==null?null: direccionCliente.modifiedData().get("ciudad").toString();//personAddressController.getLcities()==null || personAddressController.getLcities().isEmpty()?null:personAddressController.getLcities().get(0); direccion= direccionCliente.getAddress(); estadotramite = (solicitudTramite.getEstadotramite()==null || solicitudTramite.getEstadotramitecodigo()==null)?null:CatalogDetailController.findxCodigoCodcatalogo(solicitudTramite.getEstadotramite(), solicitudTramite.getEstadotramitecodigo()); usoActividad = (tramite.getUsoactividad()==null || tramite.getUsoactividadcodigo()==null)?null:CatalogDetailController.findxCodigoCodcatalogo(tramite.getUsoactividad(), tramite.getUsoactividadcodigo()); personaDetalle = PersonDetailController.find(String.valueOf(solicitud.getPersoncode())); identificacion = (personaDetalle.getIdentificationcatalog()==null || personaDetalle.getIdentificationcatalogcode()==null)?null:CatalogDetailController.findxCodigoCodcatalogo(personaDetalle.getIdentificationcatalog(), personaDetalle.getIdentificationcatalogcode()); detallecatalogoTipoTramite = (tramite.getTipoautorizacion()==null || tramite.getTipoautorizacioncodigo()==null)?null:CatalogDetailController.findxCodigoCodcatalogo(tramite.getTipoautorizacion(), tramite.getTipoautorizacioncodigo()); detallecatalogo = (tramite.getCategoria()==null || tramite.getCategoriacodigo()==null)?null:CatalogDetailController.findxCodigoCodcatalogo(tramite.getCategoria(), tramite.getCategoriacodigo()); record=new TarmArmaPruebas(); this.fec_actual = new Date(); this.habilitaButtom = true; this.responsableCentroControl = new TcustPersonDetail(); this.responsableCentroControl = new TcustPersonDetail(); this.tsafeUserDetailUsuario = new TsafeUserDetail(); this.obtenerResponsableCentroControl(); btnFlujo=Boolean.FALSE; } catch (Exception e) { e.printStackTrace(); } } @Override public void create() throws Exception { super.create(); } private void querydatabaseArma(){ try { Request request = this.callerhelper.getRequest(); DtoQuery dto = super.getDtoQuery(true); dto.setOrderby("t.pk"); 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); } } @SuppressWarnings("unchecked") @Override protected void querydatabase() { try { Request request = this.callerhelper.getRequest(); DtoQuery dto = super.getDtoQuery(true); dto.setOrderby("t.pk"); 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); } } public void caragarArmas() { try { List listaSolicitudArmas = RecepcionArmasController.findPorSolicitudTodas(codigoSolicitud); tarmArmaPruebasList = new ArrayList<>(); for (TarmSolicitudArmas solicitudArmas : listaSolicitudArmas) { TarmArmaPruebas armaPrueba = find(codigoSolicitud,solicitudArmas.getPk().getCarma()); if (armaPrueba != null) { armaPrueba.getModifiedData().put("tarmArmarecordPruebas", armaPrueba); // TarmArmas tarmArma = ArmasController.find(solicitudArmas.getPk().getCarma(), null); armaPrueba.modifiedData().put("arma",tarmArma!=null?tarmArma:new TarmArmas()); armaPrueba.modifiedData().put("impresion",Boolean.FALSE); tarmArmaPruebasList.add(armaPrueba); } else { this.create(); record.getModifiedData().put("tarmArmaPruebas", armaPrueba); this.record.setCarma(solicitudArmas.getPk().getCarma()); this.record.setCsolicitud(codigoSolicitud); this.record.setPersoncode(solicitudArmas.getPk().getPersoncode()); this.record.isnew = true; // TarmArmas tarmArma = ArmasController.find(solicitudArmas.getPk().getCarma(), null); record.modifiedData().put("arma",tarmArma!=null?tarmArma:new TarmArmas()); record.modifiedData().put("impresion",Boolean.FALSE); tarmArmaPruebasList.add(record); } } } catch (Throwable e) { e.printStackTrace(); } } @Override public void save() { try { if(cargarArchivo()){ return; } // Validacion para cambio de estado de arma a estado aprobada TarmArmas tarmArmaObj = ArmasController.find(record.getCarma(), null); if(record.getApruebaevaluacion().equals("Y")){ tarmArmaObj.setEstado("APTA"); armas.update(tarmArmaObj); armas.save(); }else if(record.getApruebaevaluacion().equals("N")){ tarmArmaObj.setEstado("NAPT"); armas.update(tarmArmaObj); armas.save(); } Request request = callerhelper.getRequest(); HashMap msave = new HashMap(); request.setSaveTables(msave); DtoSave dtosave = super.getDtoSave(); dtosave.setReturnpk(true); dtosave.setPosition(2); msave.put(beanalias, dtosave); request.setSaveTables(msave); DtoSave dtoSaveArma = armas.getDtoSave(); dtoSaveArma.setIsForm(Boolean.TRUE); dtoSaveArma.setReturnpk(Boolean.TRUE); dtoSaveArma.setPosition(1); msave.put(armas.getBeanalias(), dtoSaveArma); Response resp = callerhelper.executeSave(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) { this.postCommit(resp); MessageHelper.setMessageInfo(resp); record.modifiedData().put("GUARDA", "S"); MessageHelper.setMessageInfo(resp); } else { record.modifiedData().put("GUARDA", "N"); MessageHelper.setMessageError(resp); } } catch (Throwable e) { record.modifiedData().put("GUARDA", "N"); MessageHelper.setMessageError(e); } } public void uploadImpronta(FileUploadEvent event) { record.modifiedData().put("FileUploadImpronta", event.getFile()); } public void uploadFoto(FileUploadEvent event) { record.modifiedData().put("FileUploadFoto", event.getFile()); } /** * Metodo invocado al cerrar el dialogo del registro de la ficha tecnica de las armas * @throws Exception */ public Boolean cargarArchivo() throws Exception { Boolean msgArchivos=Boolean.FALSE; //Impronta UploadedFile uploadedFileImpronta=null; if(record.modifiedData().get("FileUploadImpronta")!=null){ uploadedFileImpronta= (UploadedFile)record.modifiedData().get("FileUploadImpronta"); }else{ MessageHelper.setMessageError("INGRESE LA IMPRONTA"); msgArchivos=Boolean.TRUE; } //FOTO UploadedFile uploadedFoto=null; if(record.modifiedData().get("FileUploadFoto")!=null){ uploadedFoto= (UploadedFile)record.modifiedData().get("FileUploadFoto"); }else{ MessageHelper.setMessageError("INGRESE LA FOTO"); msgArchivos=Boolean.TRUE; } if(msgArchivos){ return msgArchivos; } String xPathLocation= getRutaDocumento(); String xphat1=uploadedFoto.getFileName(); if(xphat1.length()<9){ xphat1="DOCUMENTO-"+xphat1; } if(alfrescoController.uploadFile(uploadedFoto.getInputstream(),xphat1, xPathLocation+ "/cm:fotografia")){ record.setXpathfotografia(xPathLocation + "/cm:fotografia/cm:" + xphat1); record.setImagenfotografia(uploadedFoto.getContents()); }else{ MessageHelper.setMessageError("ERROR AL CARGAR LA FOTO"); return Boolean.TRUE; } String xphat2=uploadedFileImpronta.getFileName(); if(xphat2.length()<9){ xphat2="DOCUMENTO-"+xphat2; } if(alfrescoController.uploadFile(uploadedFileImpronta.getInputstream(),xphat2, xPathLocation+ "/cm:impronta")){ record.setXpathimpronta(xPathLocation + "/cm:impronta/cm:" + xphat2); this.record.setImagenimpronta(uploadedFileImpronta.getContents()); }else{ MessageHelper.setMessageError("ERROR AL CARGAR LA IMPRONTA"); return Boolean.TRUE; } record.modifiedData().remove("FileUploadImpronta"); record.modifiedData().remove("FileUploadFoto"); super.update(); this.habilitaButtom = false; return msgArchivos; } public void verificarPuedeGenerarReporte(){ for(TarmArmaPruebas tarmArmaPruebas:this.tarmArmaPruebasList){ //IMPRIME record.modifiedData().get("IMPRIME").equals("S") if(tarmArmaPruebas.getPk()==null ||tarmArmaPruebas.getImagenfotografia()==null||tarmArmaPruebas.getImagenimpronta()==null ||tarmArmaPruebas.getXpathfichatecarmas()==null || tarmArmaPruebas.getIsimpreso()==null || !tarmArmaPruebas.getIsimpreso().equalsIgnoreCase("Y")){ MessageHelper.setMessageError(MsgControlArmas.getProperty("lbl_impresionarma1") + tarmArmaPruebas.getCarma() + MsgControlArmas.getProperty("lbl_impresionarma2")); deshabilitadoGenerarReporte = true; return; } } deshabilitadoGenerarReporte = false; } /** * Metodo para finalizar la tarea del flujo */ public void completarTarea() { try { if(deshabilitadoGenerarReporte && !btnFlujo){ MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_generereporte")); return; } Request request = callerhelper.getRequest(); // limpiar request para finalizar la tarea. super.cleanRequest(request); request.modifiedData().put("csolicitud", codigoSolicitud); 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); } } /** * @return * @throws Exception */ public String codigoAceptado() throws Exception { TgeneParameters f = ParametersController.find("ACEPTADO", "1"); return f.getTextvalue(); } @Override public void postCommit(Response response) throws Exception { super.postCommitGeneric(response, beanalias); } /** * Metodo para armar la ruta del documento * @return */ public String getRutaDocumento() { Calendar calendar = Calendar.getInstance(); StringBuilder ruta = new StringBuilder("cm:Solicitudes"); 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)); ruta = ruta.append("/cm:D-").append( (calendar.get(Calendar.DAY_OF_MONTH)) <= 9 ? "0" + (calendar.get(Calendar.DAY_OF_MONTH)) : (calendar.get(Calendar.DAY_OF_MONTH))); TarmSolicitud solicitud = SolicitudArmasController.find(codigoSolicitud); ruta = ruta.append("/cm:").append(solicitud.getNumerosolicitud()); ruta = ruta.append("/cm:").append("armas"); return ruta.toString(); } /** * Metodo que indica si se debe habilitar el boton del pantalla ficha tecnica */ public void habilitarBoton() { this.habilitaButtom = true; } /** * Metodo que indica si se debe habilitar el boton del pantalla ficha tecnica */ public void cerrar() { if(record.modifiedData().get("GUARDA")!=null && record.modifiedData().get("GUARDA").equals("S") && record.modifiedData().get("IMPRIME")!=null && record.modifiedData().get("IMPRIME").equals("S") ){ }else{ MessageHelper.setMessageError("GUARDE Y GENERE EL REPORTE"); } } /** * Ejecuta reporte de registro balistico * */ public void reporteRegistroBalistico() { try { String gradoUsuario =""; String path = "armas/reports/registroBalistico"; String filename=MsgControlArmas.getProperty("lbl_registroBalistico"); //Fija parametros del report. HashMap parameters = new HashMap<>(); //Logos parameters.put("pathLogoIzquierda", "repo:/maia/1/image/comandoconjunto"); parameters.put("pathLogoDerecha", "repo:/maia/1/image/selloarmas"); //Obteniendo la solicitud TarmSolicitud solicitud=SolicitudController.findSolicitudxcodsolicitud(this.codigoSolicitud); SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy"); //Codigo solicitud parameters.put("csolicitud", this.codigoSolicitud); //Fecha de solicitud parameters.put("fechaSolicitud", sdf.format(solicitud.getFregistro())); //Obteniendo los datos del tramite TarmTramite tramite=TarmTramiteController.find(solicitud.getCtramite().toString()); TgeneCatalogDetail tipoTramite=CatalogDetailController.findxCodigoCodcatalogo(tramite.getTipotramite(), tramite.getTipotramitecodigo()); TgeneCatalogDetail categoria=CatalogDetailController.findxCodigoCodcatalogo(tramite.getCategoria(), tramite.getCategoriacodigo()); TarmSolicitudTramite solicitudTramite=SolicitudTramiteController.findByCSolicitud(this.codigoSolicitud); TgeneCatalogDetail tipoAutorizacion=CatalogDetailController.findxCodigoCodcatalogo(tramite.getTipoautorizacion(), tramite.getTipoautorizacioncodigo()); TgeneCatalogDetail usoActividad=CatalogDetailController.findxCodigoCodcatalogo(tramite.getUsoactividad(), tramite.getUsoactividadcodigo()); //Tipo de tramite if(tipoTramite!=null && tipoTramite.getDescription()!=null){ parameters.put("tipoTramite", tipoTramite.getDescription()); }else{ parameters.put("tipoTramite", " "); } //Categoria if(categoria!=null && categoria.getDescription()!=null){ parameters.put("categoria", categoria.getDescription()); }else{ parameters.put("categoria", " "); } //No tramite if(solicitudTramite!=null){ parameters.put("noTramite", solicitudTramite.getNumerotramite()); }else{ parameters.put("noTramite", " "); } //Tipo de autorizacion if(tipoAutorizacion!=null && tipoAutorizacion.getDescription()!=null){ parameters.put("tipoAutorizacion", tipoAutorizacion.getDescription()); }else{ parameters.put("tipoAutorizacion", " "); } //Uso-actividad if(usoActividad!=null && usoActividad.getDescription()!=null){ parameters.put("usoActividad", usoActividad.getDescription()); }else{ parameters.put("usoActividad", " "); } TgeneCatalogDetail grado = CatalogDetailController.findxCodigoCodcatalogo(this.responsableCentroControl.getMilitarygrade(), this.responsableCentroControl.getMilitarygradecode()); if(grado != null){ gradoUsuario = grado.getDescription()+" - "+this.responsableCentroControl.getName(); }else{ gradoUsuario = "Sin Grado - "+this.responsableCentroControl.getName(); } TcustPersonDetail person = PersonDetailController.find(String.valueOf(solicitud.getPersoncode())); //PersonDetailController.find(String.valueOf(solicitud.getPersoncode())); //Fecha parameters.put("fechaActual", sdf.format(this.fec_actual)); parameters.put("fecActualHora", new SimpleDateFormat("dd-MM-yyyy / hh:mm:ss").format(this.fec_actual)); parameters.put("personCode", person.getPk().getPersoncode()); parameters.put("centroControl", this.obtenerCentroControl()); parameters.put("gradoUsuario", gradoUsuario); parameters.put("usuario", this.tsafeUserDetailUsuario.getNickname()); String format = this.formato; try { this.reportController.execute(path, parameters, format, filename, this.getLoginController()); btnFlujo=Boolean.TRUE; } catch (Exception ex) { MessageHelper.setMessageError(ex); } } catch (Exception ex) { MessageHelper.setMessageError(ex); } } /** * Obtiene el centro de control segun usurio logeado. * @throws Exception * */ private String obtenerCentroControl() throws Exception { this.tsafeUserDetailUsuario = (TsafeUserDetail) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL"); PersonAddressController personAddressController = new PersonAddressController(); TcustPersonAddress tcustPersonAddres=personAddressController.findPrincipal(tsafeUserDetailUsuario.getPk().getPersoncode().toString()); if(tcustPersonAddres == null){ return null; } TarmCentroControlJur centroControlJur= TarmCentroControlJurController.findxProvincia(tcustPersonAddres.getProvincecode()); centroControl= CentroControlArmasController.findPorCodigo(centroControlJur.getCcentrocontrol()); return CatalogDetailController.findxCodigoCodcatalogo( centroControl.getNombreinstitucion(), centroControl.getNombreinstitucioncodigo()).getDescription(); } /** * Obtiene el responsable del Centro de Control */ public void obtenerResponsableCentroControl(){ Integer responsable = this.centroControl.getPersoncode(); this.responsableCentroControl = PersonDetailController.find(responsable.toString()); } public void saveImprimir() { try { if(!record.modifiedData().get("GUARDA").equals("S")){ MessageHelper.setMessageError("GUARDE LA FICHA PARA GENERAR EL REPORTE"); return; } reporteFichaArmas(); record.setIsimpreso("Y"); update(); Request request = callerhelper.getRequest(); HashMap msave = new HashMap(); request.setSaveTables(msave); DtoSave dtosave = super.getDtoSave(); dtosave.setReturnpk(true); msave.put(beanalias, dtosave); request.setSaveTables(msave); Response resp = callerhelper.executeSave(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) { this.postCommit(resp); MessageHelper.setMessageInfo(resp); record.modifiedData().put("IMPRIME", "S"); MessageHelper.setMessageInfo(resp); } else { record.modifiedData().put("IMPRIME", "N"); MessageHelper.setMessageError(resp); } } catch (Throwable e) { record.modifiedData().put("IMPRIME", "N"); MessageHelper.setMessageError(e); } } /** * Obtiene el reporte de Ficha de Armas * @throws Exception */ public void reporteFichaArmas() throws Exception { String gradoUsuario =""; String path = "armas/reports/fichaTecArmas"; String filename=MsgControlArmas.getProperty("lbl_fichaTecnicaArmas"); //Fija parametros del report. HashMap parameters = new HashMap<>(); parameters.put("pathLogoIzquierda", "repo:/maia/1/image/comandoconjunto"); parameters.put("pathLogoDerecha", "repo:/maia/1/image/selloarmas"); //Centro de control parameters.put("centroControl", this.obtenerCentroControl()); //Fecha actual SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy"); parameters.put("fechaActual", sdf.format(this.fec_actual)); //Fecha de solicitud if(solicitud!=null && solicitud.getFregistro()!=null){ parameters.put("fechaSolicitud", sdf.format(solicitud.getFregistro())); }else{ parameters.put("fechaSolicitud", " "); } //No tramite if(solicitudTramite!=null && solicitudTramite.getNumerotramite()!=null){ parameters.put("noTramite", solicitudTramite.getNumerotramite()); }else{ parameters.put("noTramite", " "); } //Tipo de tramites if(detallecatalogoTipoTramite!=null && detallecatalogoTipoTramite.getDescription()!=null){ parameters.put("tipoTramite", detallecatalogoTipoTramite.getDescription()); }else{ parameters.put("tipoTramite", " "); } //Estado tramite if(estadotramite!=null && estadotramite.getDescription()!=null){ parameters.put("estadoTramite", estadotramite.getDescription()); }else{ parameters.put("estadoTramite", " "); } //Uso actividad if(usoActividad!=null && usoActividad.getDescription()!=null){ parameters.put("usoActividad",usoActividad.getDescription()); }else{ parameters.put("usoActividad", " "); } //Tipo de documento if(identificacion!=null){ parameters.put("tipoDocumento", identificacion.getDescription()); }else{ parameters.put("tipoDocumento", " "); } //No documento if(personaDetalle!=null){ parameters.put("cedula", personaDetalle.getIdentification()); }else{ parameters.put("cedula", " "); } //Nombre razon social if(personaDetalle!=null){ parameters.put("nombreRazon", personaDetalle.getName()); }else{ parameters.put("nombreRazon", " "); } //Provincia if(provincia !=null){ parameters.put("provincia", provincia); }else{ parameters.put("provincia", " "); } //Canton if(canton!=null){ parameters.put("canton", canton); }else{ parameters.put("canton", " "); } //Ciudad if(ciudad!=null){ parameters.put("ciudad", ciudad); }else{ parameters.put("ciudad", " "); } //Direccion if(direccion!=null){ parameters.put("direccion",direccion); }else{ parameters.put("direccion", " "); } //Codigo de arma parameters.put("codigoArma", this.record.getCarma()); //Codigo de registro de TarmArmaPrueba parameters.put("cArmaPrueba", record.getPk().toString()); TarmArmas arma=(TarmArmas)this.record.getModifiedData().get("arma"); TarmRegistroArmas regArma = RegistroArmController.findByCodigo(arma.getCregistro().toString()); TgeneCountry paisOrigen=CountryController.findcountry(regArma.getPaisorigen()); //Clase if(arma.getModifiedData().get("clase")!=null){ parameters.put("clase", arma.getModifiedData().get("clase")==null?"":arma.getModifiedData().get("clase")); }else{ parameters.put("clase", " "); } //Obtniendo el tipo arma explosivo TarmTipoArmaExplosivo tae=arma==null?null:TiposArmasExplosivosController.findarma(arma.getCtipoarmaexplosivo()); //Tipo arma TgeneCatalogDetail tipoArma=tae==null?null:CatalogDetailController.findxCodigoCodcatalogo(tae.getTipoarmaexplosivo(), "TIPOARMAEXPLOSIVO"); parameters.put("tipoArma", (tipoArma==null || tipoArma.getDescription().isEmpty())?"": tipoArma.getDescription()); //Serie parameters.put("serie", (arma==null || arma.getLote()==null || arma.getLote().isEmpty())?"":arma.getLote()); //Pais fabricacion parameters.put("paisFabricacion", (paisOrigen==null)?"":(paisOrigen.getDescription())); //Calibre parameters.put("calibre", (arma.getModifiedData().get("calibre")==null)?"":arma.getModifiedData().get("calibre")); //Longitud TgeneCatalogDetail longitud=(tae==null || tae.getLongitud()==null || tae.getLongitudcodigo()==null || tae.getLongitud().isEmpty() || tae.getLongitudcodigo().isEmpty())?null:CatalogDetailController.findxCodigoCodcatalogo(tae.getLongitud(),tae.getLongitudcodigo()); if(longitud!=null && longitud.getDescription()!=null){ parameters.put("longitud", longitud.getDescription()); }else{ parameters.put("longitud", " "); } //Marca parameters.put("marca", arma.getModifiedData().get("marca")); //Modelo parameters.put("modelo", arma.getModelo()); //Color parameters.put("color", arma.getModifiedData().get("color")); //Observacion parameters.put("observacion", this.record.getObservacion()); //Aptitud de disparo String aptitudDisparo=" "; if(this.record.getAptituddisparo().equalsIgnoreCase("Y")){ aptitudDisparo="BUENO"; }else{ aptitudDisparo="MALO"; } parameters.put("aptitudDisparo", aptitudDisparo); //Balas testigo String balasTestigo=" "; if(this.record.getBalastestigo().equalsIgnoreCase("Y")){ balasTestigo=MsgControlArmas.getProperty("lbl_si"); }else{ balasTestigo="NO"; } parameters.put("balasTestigo", balasTestigo); //Vainas testigo String vainasTestigo=" "; if(this.record.getVainastestigo().equalsIgnoreCase("Y")){ vainasTestigo=MsgControlArmas.getProperty("lbl_si"); }else{ vainasTestigo="NO"; } parameters.put("vainasTestigo", vainasTestigo); //Estado final String estadoFinal=" "; if(this.record.getApruebaevaluacion().equalsIgnoreCase("Y")){ estadoFinal="APROBADA"; }else{ estadoFinal="REPROBADA"; } parameters.put("estadoFinal", estadoFinal); //Codigo de persona parameters.put("personcode",record.getPersoncode()); //Codigo de arma parameters.put("codArma", record.getCarma()); //codigo solicitud parameters.put("csolicitud", this.codigoSolicitud); //Grado del funcionario TgeneCatalogDetail grado = CatalogDetailController.findxCodigoCodcatalogo(this.responsableCentroControl.getMilitarygrade(), this.responsableCentroControl.getMilitarygradecode()); if(grado != null){ gradoUsuario = grado.getDescription()+" - "+this.responsableCentroControl.getName(); }else{ gradoUsuario = "Sin Grado - "+this.responsableCentroControl.getName(); } parameters.put("personcode",responsableCentroControl.getPk().getPersoncode()); parameters.put("gradoUsuario", gradoUsuario); String format = "pdf"; this.xpathflujo = this.getRutaDocumento(); filename = filename + this.record.getPk().toString(); InputStream report=this.reportController.jaspertoInputstream(path, parameters, format, filename, this.getLoginController()); if(!this.alfrescoController.uploadFile(report, filename+".pdf", this.xpathflujo)){ throw new Exception("ERROR AL CARGAR EL REPORTE"); } this.record.setXpathfichatecarmas(this.xpathflujo + "/cm:" + filename+".pdf"); this.record.getModifiedData().put("impresion",Boolean.TRUE); } /** * Metodo para encontrar por codigo de solicitud * @param codigoSolicitud * @return registro de armaPrueba encontrado */ public List findPorSolicitud(String codigoSolicitud){ try { IngresoFichaTecnicaArmasController cc = new IngresoFichaTecnicaArmasController(); cc.init(); cc.recperpage = 300; cc.addFilter("csolicitud", codigoSolicitud); cc.querydatabaseArma(); if (cc.lrecord != null) { return cc.lrecord; } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } /** * Metodo para encontrar por codigo de solicitud * @param codigoSolicitud * @return registro de armaPrueba encontrado */ public static List buscarFichasPorSolicitud(String codigoSolicitud){ try { IngresoFichaTecnicaArmasController cc = new IngresoFichaTecnicaArmasController(); cc.init(); cc.recperpage = 300; cc.addFilter("csolicitud", codigoSolicitud); cc.querydatabaseArma(); if (cc.lrecord != null) { return cc.lrecord; } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } public TarmArmaPruebas find(String codigoSolicitud, String carma){ try { IngresoFichaTecnicaArmasController cc = new IngresoFichaTecnicaArmasController(); cc.init(); cc.recperpage = 300; cc.addFilter("carma", carma); cc.addFilter("csolicitud", codigoSolicitud); cc.querydatabaseArma(); if (cc.lrecord != null && cc.lrecord.size()>0) { return cc.lrecord.get(0); } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } public static TarmArmaPruebas findByPk(String pk){ try { IngresoFichaTecnicaArmasController cc = new IngresoFichaTecnicaArmasController(); cc.init(); cc.recperpage = 10; cc.addFilter("pk", pk); cc.querydatabaseArma(); if (cc.lrecord != null && cc.lrecord.size()>0) { return cc.lrecord.get(0); } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } public AlfrescoController getAlfrescoController() { return alfrescoController; } public void setAlfrescoController(AlfrescoController alfrescoController) { this.alfrescoController = alfrescoController; } public TarmArmas getArma() { return arma; } public void setArma(TarmArmas arma) { this.arma = arma; } public String getEditarReg() { return editarReg; } public void setEditarReg(String editarReg) { this.editarReg = editarReg; } public String getCodigoSolicitud() { return codigoSolicitud; } public void setCodigoSolicitud(String codigoSolicitud) { this.codigoSolicitud = codigoSolicitud; } public List getListadoArmasPruebas() { return listadoArmasPruebas; } public void setListadoArmasPruebas(List listadoArmasPruebas) { this.listadoArmasPruebas = listadoArmasPruebas; } /** * metodo que registra el cambio de la seleccion del recuperador balisitico y segun esto aprueba la evaluacion */ public void cambia(TarmArmaPruebas armaPruebas){ record=null; record=armaPruebas; if("Y".equals(record.getAptituddisparo()) && "Y".equals(record.getVainastestigo()) && "Y".equals(record.getBalastestigo())){ record.setApruebaevaluacion("Y"); } else{ record.setApruebaevaluacion("N"); } habilitaButtom = true; armaPruebas.modifiedData().put("GUARDA", "N"); armaPruebas.modifiedData().put("IMPRIME", "N"); record.modifiedData().put("GUARDA", "N"); record.modifiedData().put("IMPRIME", "N"); } public String getObservacion() { return observacion; } public void setObservacion(String observacion) { this.observacion = observacion; } public String getEstado() { return estado; } public void setEstado(String estado) { this.estado = estado; } public List getLaccion() { return laccion; } public void setLaccion(List laccion) { this.laccion = laccion; } public ReportController getReportController() { return reportController; } public void setReportController(ReportController reportController) { this.reportController = reportController; } public boolean isHabilitaButtom() { return habilitaButtom; } public void setHabilitaButtom(boolean habilitaButtom) { this.habilitaButtom = habilitaButtom; } public String getFormato() { return formato; } public void setFormato(String formato) { this.formato = formato; } public Date getFec_actual() { return fec_actual; } public void setFec_actual(Date fec_actual) { this.fec_actual = fec_actual; } public Boolean getBtnFlujo() { return btnFlujo; } public void setBtnFlujo(Boolean btnFlujo) { this.btnFlujo = btnFlujo; } public boolean isDeshabilitadoGenerarReporte() { return deshabilitadoGenerarReporte; } public void setDeshabilitadoGenerarReporte(boolean deshabilitadoGenerarReporte) { this.deshabilitadoGenerarReporte = deshabilitadoGenerarReporte; } public void changeApruebaEvaluacion(){ if(this.record.getAptituddisparo()!=null && ("Y".equalsIgnoreCase(this.record.getAptituddisparo())) && (this.record.getBalastestigo()!=null && "Y".equalsIgnoreCase(this.record.getBalastestigo())) && (this.record.getVainastestigo()!=null && "Y".equalsIgnoreCase(this.record.getVainastestigo()))){ this.record.setApruebaevaluacion("Y"); } else{ this.record.setApruebaevaluacion("N"); } } public TarmCentroControl getCentroControl() { return centroControl; } public void setCentroControl(TarmCentroControl centroControl) { this.centroControl = centroControl; } public String getXpathflujo() { return xpathflujo; } public void setXpathflujo(String xpathflujo) { this.xpathflujo = xpathflujo; } public TcustPersonDetail getResponsableCentroControl() { return responsableCentroControl; } public void setResponsableCentroControl( TcustPersonDetail responsableCentroControl) { this.responsableCentroControl = responsableCentroControl; } public TsafeUserDetail getTsafeUserDetailUsuario() { return tsafeUserDetailUsuario; } public void setTsafeUserDetailUsuario(TsafeUserDetail tsafeUserDetailUsuario) { this.tsafeUserDetailUsuario = tsafeUserDetailUsuario; } public TarmSolicitud getSolicitud() { return solicitud; } public void setSolicitud(TarmSolicitud solicitud) { this.solicitud = solicitud; } public TarmSolicitudTramite getSolicitudTramite() { return solicitudTramite; } public void setSolicitudTramite(TarmSolicitudTramite solicitudTramite) { this.solicitudTramite = solicitudTramite; } public TarmTramite getTramite() { return tramite; } public void setTramite(TarmTramite tramite) { this.tramite = tramite; } public TcustPersonAddress getDireccionCliente() { return direccionCliente; } public void setDireccionCliente(TcustPersonAddress direccionCliente) { this.direccionCliente = direccionCliente; } 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 getDireccion() { return direccion; } public void setDireccion(String direccion) { this.direccion = direccion; } public TgeneCatalogDetail getEstadotramite() { return estadotramite; } public void setEstadotramite(TgeneCatalogDetail estadotramite) { this.estadotramite = estadotramite; } public TgeneCatalogDetail getUsoActividad() { return usoActividad; } public void setUsoActividad(TgeneCatalogDetail usoActividad) { this.usoActividad = usoActividad; } public TcustPersonDetail getPersonaDetalle() { return personaDetalle; } public void setPersonaDetalle(TcustPersonDetail personaDetalle) { this.personaDetalle = personaDetalle; } public TgeneCatalogDetail getIdentificacion() { return identificacion; } public void setIdentificacion(TgeneCatalogDetail identificacion) { this.identificacion = identificacion; } public TgeneCatalogDetail getDetallecatalogoTipoTramite() { return detallecatalogoTipoTramite; } public void setDetallecatalogoTipoTramite( TgeneCatalogDetail detallecatalogoTipoTramite) { this.detallecatalogoTipoTramite = detallecatalogoTipoTramite; } public TgeneCatalogDetail getDetallecatalogo() { return detallecatalogo; } public void setDetallecatalogo(TgeneCatalogDetail detallecatalogo) { this.detallecatalogo = detallecatalogo; } public List getTarmArmaPruebasList() { return tarmArmaPruebasList; } public void setTarmArmaPruebasList(List tarmArmaPruebasList) { this.tarmArmaPruebasList = tarmArmaPruebasList; } public ArmasController getArmas() { return armas; } public void setArmas(ArmasController armas) { this.armas = armas; } }