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 com.fp.dto.Request; import com.fp.dto.Response; import com.fp.dto.query.DtoQuery; import com.fp.dto.query.SubQuery; 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.persistence.parmas.param.TarmCentroControl; import com.fp.persistence.parmas.param.TarmCentroControlJur; import com.fp.persistence.parmas.param.TarmTramite; import com.fp.persistence.parmas.soli.TarmDocumentoHabilitante; import com.fp.persistence.parmas.soli.TarmSolicitud; 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.TgeneParameters; import com.fp.persistence.pgeneral.safe.TsafeUserDetail; @SuppressWarnings("serial") @ManagedBean @ViewScoped public class emitirDocumentoHabilitanteportransaccion extends AbstractController { @ManagedProperty(value = "#{reportController}") private ReportController reportController; @ManagedProperty(value="#{alfrescoController}") private AlfrescoController alfrescoController; @ManagedProperty(value="#{documentoHabilitanteController}") private DocumentoHabilitanteController documentoHabilitanteController; @ManagedProperty(value="#{pesonAddressController}") private PersonAddressController pesonAddressController; @ManagedProperty(value="#{solicitudController}") private SolicitudController solicitudController; TarmSolicitudTramite solicitudTramite; TarmSolicitud solicitud; TarmTramite fila; TcustPersonDetail detallesPersona; TcustPersonDetail usuario; TarmDocumentoHabilitante documentoHabilitante; String numeroTramite; String nombreRazonSocial; private String xpathflujo="";//cm:Pruebas/cm:ID_1715819825001"; private String formato = "pdf"; private String mostrarFormato="PDF"; // TcustPersonDetail detallesPersona; List lsolicitud; // String numeroTramite; // String nombreRazonSocial; String identificacion; String tipoidentificacion; private String tramiteflujo=""; private String solicitudflujo=""; private List ldocumentos; private String institucionCentroControl=""; private TarmCentroControl centroControl = new TarmCentroControl(); private TcustPersonDetail responsableCentroControl= null; public emitirDocumentoHabilitanteportransaccion() throws Exception { super(TarmSolicitudTramite.class); } @PostConstruct private void postconstruct() { try { this.pasteBpmScreenParameters(); tramiteflujo=super.getMfilters().get("numerotransaccion"); solicitudflujo=super.getMfilters().get("csolicitud"); this.init(); super.getMfilters().clear(); super.query(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void init() { try { recperpage = 15; // Cambiar al # reg a mirar. // lrecord = new ArrayList<>(); beanalias = "EMITIRDOCUMENTOHABILITANTE"; ldocumentos = new ArrayList(); ldocumentos = CatalogDetailController.find("IDENTIFICATION"); //Obteniendo el tramite solicitudTramite=TarmSolicitudTramiteController.findPorCSolicitud(solicitudflujo); //Obteniendo la solicitud solicitud=ValidacionTramiteLibreTransitoController.findPorSolicitudSimple(solicitudflujo); if (solicitudTramite!=null) this.numeroTramite=solicitudTramite.getNumerotramite(); //Obteniendo los datos del usuario logueado TsafeUserDetail tsafeUserDetail=(TsafeUserDetail)FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL"); usuario=PersonDetailController.find(tsafeUserDetail.getPk().getPersoncode().toString()); //Obteniendo el documento habilitante documentoHabilitante=DocumentoHabilitanteController.findPorSolicitud(solicitudflujo); obtenerCentroControl(); } catch (Exception e) { MessageHelper.setMessageError(e); } } public String getNumeroTramite() { return numeroTramite; } public void setNumeroTramite(String numeroTramite) { this.numeroTramite = numeroTramite; } @Override protected void querydatabase() { try { addFilter("numerotramite", numeroTramite); Request request = this.callerhelper.getRequest(); DtoQuery dto = super.getDtoQuery(true); dto.setOrderby("t.pk"); // En en string van todos los campos de orden ("t.pk, t.nombre, t.cpais"). SubQuery subqueryUso= new SubQuery("TarmTramite","usoactividad","actividad","i.pk=t.pk.ctramite"); dto.addSubQuery(subqueryUso); SubQuery subqueryPersona= new SubQuery("TarmSolicitud","personcode","persona","i.pk=t.pk.csolicitud"); dto.addSubQuery(subqueryPersona); SubQuery subqueryTipo=new SubQuery("TarmTramite", "tipoautorizacion", "tramite", "i.pk=t.pk.ctramite"); dto.addSubQuery(subqueryTipo); SubQuery subqueryTipocodigo=new SubQuery("TarmTramite", "tipoautorizacioncodigo", "tramitecodigo", "i.pk=t.pk.ctramite"); dto.addSubQuery(subqueryTipocodigo); SubQuery subqueryEstado=new SubQuery("TgeneCatalogDetail","description","desc","i.pk.catalog=t.estadotramite and i.pk.catalogcode=t.estadotramitecodigo"); dto.addSubQuery(subqueryEstado); 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); for(int i=0;i< this.lrecord.size();i++){ this.lrecord.get(i).getModifiedData().put("usodes", CatalogDetailController.findxCodigoCodcatalogo(this.lrecord.get(i).getModifiedData().get("actividad").toString(), "USOACTIVIDAD").getDescription()); TcustPersonDetail person = PersonDetailController.find(this.lrecord.get(i).getModifiedData().get("persona").toString()); this.lrecord.get(i).getModifiedData().put("nombre", person.getName()); this.lrecord.get(i).getModifiedData().put("identificacion", person.getIdentification()); TgeneCatalogDetail tipo = CatalogDetailController.findxCodigoCodcatalogo(this.lrecord.get(i).getModifiedData().get("tramite").toString(), this.lrecord.get(i).getModifiedData().get("tramitecodigo").toString()); this.lrecord.get(i).getModifiedData().put("tipotramdesc", tipo.getDescription()); } } } catch (Throwable e) { MessageHelper.setMessageError(e); } } /** * Método para completar la tarea */ public void completarTarea() { try { if(xpathflujo==null || xpathflujo.isEmpty()){ MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_generarReporteRequerido")); return; } Request request = callerhelper.getRequest(); super.cleanRequest(request); 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); RequestContext.getCurrentInstance().execute("Maia.refreshusertasks()"); } else { MessageHelper.setMessageError(resp); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } public void imprimir(TarmSolicitudTramite fila){ try { boolean flagRequisitos = false; boolean flagArmas = false; boolean flagGuardias = false; boolean flagAgencia = false; boolean flagDoc = false; String tipotramite=fila.getModifiedData().get("tramite").toString(); String nombreArchivo = fila.getModifiedData().get("tipotramdesc").toString(); TarmSolicitud solicitud = SolicitudController.findSolicitudxcodsolicitud(fila.getPk().getCsolicitud()); TarmTramite tramite = TarmTramiteController.findSimple(fila.getPk().getCtramite().toString()); documentoHabilitante=documentoHabilitanteController.findPorSolicitud(fila.getPk().getCsolicitud()); xpathflujo=generarXpath(fila.getNumerotramite()); System.out.println("..." + xpathflujo); //solicitud=ValidacionTramiteLibreTransitoController.findPorSolicitudSimple(tipotramite); if(tipotramite==null){ MessageHelper.setMessageError("ERROR NO MANEJADO POR LA APLICACION CONTACTE AL PROVEEDOR"); return; } if(tipotramite.equals("2")){ if(tramite.getRegistroagenciasucursal().equalsIgnoreCase("Y")){ flagAgencia = true; } if (tramite.getRegistroarmas().equalsIgnoreCase("Y")) { flagArmas = true; } if (tramite.getRegistroguardia().equalsIgnoreCase("Y")) { flagGuardias = true; } if(tramite.getDocumentohabilitante().equalsIgnoreCase("Y")) { flagDoc = true; } //this.reporteCertificados(solicitud.getPk(), flagAgencia, flagArmas, flagDoc, flagGuardias); InputStream pdf=this.reporteCertificados(solicitud.getPk(), flagAgencia, flagArmas, flagDoc, flagGuardias); alfrescoController.uploadFile(pdf, documentoHabilitante.getNumerodocumento()+".pdf", xpathflujo) ; xpathflujo = xpathflujo + "/cm:" + documentoHabilitante.getNumerodocumento()+".pdf"; actualizarXpath(documentoHabilitante, xpathflujo); return; }else if (tipotramite.equals("4")) { InputStream pdf=this.reporteGuiaLibreTransito(); alfrescoController.uploadFile(pdf, documentoHabilitante.getNumerodocumento()+".pdf", xpathflujo) ; xpathflujo = xpathflujo + "/cm:" + documentoHabilitante.getNumerodocumento()+".pdf"; actualizarXpath(documentoHabilitante, xpathflujo); return; }else { if(tramite.getRegistroagenciasucursal().equalsIgnoreCase("Y")){ flagAgencia = true; } if (tramite.getRegistroarmas().equalsIgnoreCase("Y")) { flagArmas = true; } if (tramite.getRegistroguardia().equalsIgnoreCase("Y")) { flagGuardias = true; } if(tramite.getDocumentohabilitante().equalsIgnoreCase("Y")) { flagDoc = true; } } InputStream pdf=this.reporteGeneral(solicitud.getPk(),flagAgencia,flagArmas,flagDoc,flagGuardias,flagRequisitos,nombreArchivo); alfrescoController.uploadFile(pdf, documentoHabilitante.getNumerodocumento()+".pdf", xpathflujo) ; xpathflujo = xpathflujo + "/cm:" + documentoHabilitante.getNumerodocumento()+".pdf"; actualizarXpath(documentoHabilitante, xpathflujo); } catch (Exception e) { xpathflujo=null; MessageHelper.setMessageError(MsgControlArmas.getProperty("msg_error_generar_reporte")); } } /** * Metodo para actualziar en la tabla tarmdocumentohabilitante con el xpath de la ruta de alfreco donde se guardo el documento * @param documentoHabilitante * @param xPath * @throws Exception */ private void actualizarXpath(TarmDocumentoHabilitante documentoHabilitante, String xPath) throws Exception{ documentoHabilitanteController.setRecord(documentoHabilitante); documentoHabilitanteController.getRecord().setXpath(xPath); documentoHabilitanteController.update(); documentoHabilitanteController.save(); } public String generarXpath(String tramite){ Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); tramite=tramite.replace("TRA", "SOL"); StringBuilder ruta=new StringBuilder("cm:Solicitud"); 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:"+tramite); return ruta.toString(); } public String encontrarUsuario(){ if(identificacion==null || identificacion=="") return null; detallesPersona=PersonDetailController.findxidentification(identificacion, tipoidentificacion); if(detallesPersona==null) return null; lsolicitud=SolicitudController.findSolicitudxPersona(detallesPersona.getPk().getPersoncode().toString()); String csolicitud=null; for(TarmSolicitud soli : lsolicitud){ if(csolicitud==null){ csolicitud="csolicitud='"+soli.getPk()+"'"; } else{ csolicitud+=" or csolicitud='"+soli.getPk()+"'"; } } return csolicitud; } @Override public void save() { // TODO Auto-generated method stub super.save(); } /** * Ejecuta un reporte de armas * @param name Nombre del reporte a generar. */ public InputStream reporteGuiaLibreTransito() { try { String path = "armas/reports/guiaLibreTransito"; String filename=MsgControlArmas.getProperty("lbl_guiaLibreTransito"); detallesPersona = PersonDetailController.find(String.valueOf(solicitud.getPersoncode().toString())); solicitudTramite=TarmSolicitudTramiteController.findPorCSolicitud(solicitud.getPk()); //Fija parametros del report. HashMap parameters = new HashMap<>(); parameters.put("pathLogoIzquierda", "repo:/maia/1/image/comandoconjunto"); parameters.put("pathLogoDerecha", "repo:/maia/1/image/selloarmas"); parameters.put("csolicitud", solicitudTramite.getPk().getCsolicitud()); TarmSolicitud sol = this.solicitudController.findSolicitudxcodsolicitud(this.solicitudflujo); //No. Guia parameters.put("noGuia", this.numeroTramite); //Codigo de barras String codigoBarras=this.numeroTramite.replace("-", "").toLowerCase(); Boolean caracterEliminado=false; for (int i = 0; i < codigoBarras.length(); i++) { if(caracterEliminado){ i=0; caracterEliminado=false; } if(codigoBarras.toCharArray()[i]!='0' && codigoBarras.toCharArray()[i]!='1' && codigoBarras.toCharArray()[i]!='2' && codigoBarras.toCharArray()[i]!='3' && codigoBarras.toCharArray()[i]!='4' && codigoBarras.toCharArray()[i]!='5' && codigoBarras.toCharArray()[i]!='6' && codigoBarras.toCharArray()[i]!='7' && codigoBarras.toCharArray()[i]!='8' && codigoBarras.toCharArray()[i]!='9'){ String caracterExtranno=""; caracterExtranno+=codigoBarras.toCharArray()[i]; codigoBarras=codigoBarras.replace(caracterExtranno, ""); caracterEliminado=true; } } parameters.put("codigoBarras", codigoBarras); //Nombre/Razon Social parameters.put("nombreRazon", detallesPersona.getName()); //Cedula parameters.put("cedula", detallesPersona.getIdentification()); //Desde parameters.put("desde", solicitud.getLugarorigen()); //Hasta parameters.put("hasta", solicitud.getLugardestino()); //Fechas SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy"); if(documentoHabilitante!=null){ parameters.put("fechaExpide", sdf.format(documentoHabilitante.getFechaemision())); parameters.put("fechaCaduca", sdf.format(documentoHabilitante.getFechaexpiracion())); }else{ parameters.put("fechaExpide", " "); parameters.put("fechaCaduca", " "); } //Grado String gradoFuncionario=""; TgeneCatalogDetail grado=CatalogDetailController.findxCodigoCodcatalogo(this.responsableCentroControl.getMilitarygrade(), this.responsableCentroControl.getMilitarygradecode()); if(grado!=null){ gradoFuncionario=grado.getDescription()+" - "; } //Lugar origen y destino if(sol!=null){ parameters.put("provinciaorigen", sol.modifiedData().get("provinciaorigen").toString()); parameters.put("cantonorigen", sol.modifiedData().get("cantonorigen").toString()); parameters.put("lugarorigen", sol.getLugarorigen().toString()); parameters.put("provinciadestino", sol.modifiedData().get("provinciadestino").toString()); parameters.put("cantondestino", sol.modifiedData().get("cantondestino").toString()); parameters.put("lugardestino", sol.getLugardestino().toString()); } //Funcionario parameters.put("gradoNombreFuncionario",gradoFuncionario+this.responsableCentroControl.getName()); parameters.put("personcode",this.responsableCentroControl.getPk().getPersoncode()); parameters.put("centroControl","JEFE DEL "+this.institucionCentroControl); parameters.put("nombreCentro", this.institucionCentroControl); //Usuario parameters.put("usuario",this.usuario.getName()); sdf=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String fechaHora=sdf.format(Calendar.getInstance().getTime()); parameters.put("fechaHora",fechaHora); parameters.put("codigoQR",solicitud+" "+parameters.get("fechaExpide")+" "+ parameters.get("fechaExpide")+" "+gradoFuncionario+this.responsableCentroControl.getName()); String format = "pdf"; InputStream pdf = this.reportController.jaspertoInputstream(path, parameters, format, filename, this.getLoginController()); return pdf; } catch (Exception ex) { MessageHelper.setMessageError(ex); } return null; } /** * Ejecuta un reporte de certificado de armas * @param name Nombre del reporte a generar. */ public void reporteCertificadoArmas() { try { String path = "armas/reports/certificadoArmas"; String filename="certificadoarmas"; //Fija parametros del report. HashMap parameters = new HashMap<>(); parameters.put("pathLogoIzquierda", "repo:/maia/1/image/comandoconjunto"); parameters.put("pathLogoDerecha", "repo:/maia/1/image/selloarmas"); parameters.put("csolicitud", solicitudTramite.getPk().getCsolicitud()); //Fecha SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy"); parameters.put("lugarFecha", sdf.format(Calendar.getInstance().getTime())); parameters.put("codigoQR",solicitud+" "+ sdf.format(Calendar.getInstance().getTime())+" "+this.responsableCentroControl.getName()); String format = "pdf"; this.reportController.execute(path, parameters, format, filename, this.getLoginController()); } catch (Exception ex) { MessageHelper.setMessageError(ex); } } /** * Ejecuta un reporte de certificado de armas * @param name Nombre del reporte a generar. */ public void reporteAgencias() { try { String path = "armas/reports/aperturaAgenciasSucursales"; String filename="aperturaagenciassucursales"; //Fija parametros del report. HashMap parameters = new HashMap<>(); parameters.put("pathLogoIzquierda", "repo:/maia/1/image/comandoconjunto"); parameters.put("pathLogoDerecha", "repo:/maia/1/image/selloarmas"); parameters.put("csolicitud", solicitudTramite.getPk().getCsolicitud()); //Fecha SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy"); parameters.put("lugarFecha", sdf.format(Calendar.getInstance().getTime())); parameters.put("codigoQR",solicitud+" "+sdf.format(Calendar.getInstance().getTime())+" "+ this.responsableCentroControl.getName()); String format = "pdf"; this.reportController.execute(path, parameters, format, filename, this.getLoginController()); } catch (Exception ex) { MessageHelper.setMessageError(ex); } } /* public void reporteInscripcion(TarmSolicitud solicitud) { try { String path = "armas/reports/reporteInscripcion"; String filename="armas"; detallesPersona = PersonDetailController.find(String.valueOf(solicitud.getPersoncode().toString())); solicitudTramite=TarmSolicitudTramiteController.findPorCSolicitud(solicitud.getPk()); //Fija parametros del report. HashMap parameters = new HashMap<>(); parameters.put("pathLogoIzquierda", "repo:/maia/1/image/comandoconjunto"); parameters.put("pathLogoDerecha", "repo:/maia/1/image/selloarmas"); //No. Guia parameters.put("nombreCompania", detallesPersona.getName()); //Nombre/Razon Social parameters.put("nombrepersona",detallesPersona.getLegalrepresent()); SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy"); parameters.put("fecha", sdf.format(solicitud.getFregistro())); parameters.put("ciudad", "Quito"); String format = "pdf"; this.reportController.execute(path, parameters, format, filename, this.getLoginController()); } catch (Exception ex) { MessageHelper.setMessageError(ex); } } */ /** * Ejecuta reporte general de informacion de armas, guardias, agencias y sucursales * @param name Nombre del reporte a generar. */ public InputStream reporteGeneral(String solicitud,boolean flagAgencia,boolean flagArmas,boolean flagDoc,boolean flagGuardias,boolean flagRequisitos,String nombreArchivo) { try { String path = "armas/reports/generalReportHabilita"; String filename=nombreArchivo; TsafeUserDetail tsafeUserDetail = (TsafeUserDetail) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL"); TcustPersonDetail user = PersonDetailController.find(tsafeUserDetail.getPk().getPersoncode().toString()); // TgeneCatalogDetail grado = CatalogDetailController.findxCodigoCodcatalogo(user.getMilitarygrade(), user.getMilitarygradecode()); TgeneCatalogDetail grado =null; if(this.responsableCentroControl.getMilitarygrade()!=null && this.responsableCentroControl.getMilitarygradecode()!=null){ grado = CatalogDetailController.findxCodigoCodcatalogo(this.responsableCentroControl.getMilitarygrade(), this.responsableCentroControl.getMilitarygradecode()); } String gradoUsuario=""; if(grado!=null){ gradoUsuario = grado.getDescription()+" - "+this.responsableCentroControl.getName(); }else{ gradoUsuario = this.responsableCentroControl.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"); parameters.put("csolicitud", solicitudflujo); //Obteniendo la solicitud TarmSolicitud s=SolicitudController.findSolicitudxcodsolicitud(solicitudflujo); TarmTramite t; Boolean datosTramiteVacios=false; if(s!=null){ //Obteniendo el tramite t=TarmTramiteController.find(s.getCtramite().toString()); //Obteniendo la solicitud trmite TarmSolicitudTramite st=TarmSolicitudTramiteController.findPorCSolicitud(solicitudflujo); if(t!=null){ //No de tramite if(st!=null){ parameters.put("noTramite", st.getNumerotramite()); }else{ parameters.put("noTramite", " "); } //Tipo de tramite if(t.getModifiedData().get("tipotramite")!=null){ parameters.put("tipoTramite", t.getModifiedData().get("tipotramite")); }else{ parameters.put("tipoTramite", " "); } //Tipo de autorizacion if(t.getModifiedData().get("tipoautorizacion")!=null){ parameters.put("tipoAutorizacion", t.getModifiedData().get("tipoautorizacion")); }else{ parameters.put("tipoAutorizacion", " "); } //Categoria if(t.getModifiedData().get("categoria")!=null){ parameters.put("categoria", t.getModifiedData().get("categoria")); }else{ parameters.put("categoria", " "); } //Uso actividad if(t.getModifiedData().get("usoactividad")!=null){ parameters.put("usoActividad", t.getModifiedData().get("usoactividad")); }else{ parameters.put("usoActividad", " "); } //Cabecera if(t.getCabecera()!=null){ parameters.put("cabecera", t.getCabecera()); }else{ parameters.put("cabecera", " "); } //Pie if(t.getPie()!=null){ parameters.put("pie", t.getPie()); }else{ parameters.put("pie", " "); } //fecha de solicitud if(s.getFregistro()!=null){ SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); parameters.put("fecSolicitud", sdf.format(s.getFregistro())); } else { parameters.put("fecSolicitud", ""); } }else{ datosTramiteVacios=true; } }else{ datosTramiteVacios=true; } if(datosTramiteVacios){ parameters.put("noTramite", " "); parameters.put("tipoTramite", " "); parameters.put("tipoAutorizacion", " "); parameters.put("categoria", " "); parameters.put("usoActividad", " "); parameters.put("cabecera", " "); parameters.put("pie", " "); } //Obteniendo la direccion String email=" ",direccion=" "; List direcciones=PersonAddressController.findAllByPersonCode(s.getPersoncode().toString()); for (TcustPersonAddress d : direcciones) { Calendar calendario=Calendar.getInstance(); calendario.setTime(d.getPk().getDateto()); if(calendario.get(Calendar.YEAR)==2999){ if(d.getAddresstypecatalog().equalsIgnoreCase("3")){ email=d.getAddress(); }else if(d.getPrincipal()!=null && d.getPrincipal().equalsIgnoreCase("Y")){ direccion=d.getAddress(); } } } //Email parameters.put("email", email); //Direccion parameters.put("direccion", direccion); //Fecha SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy / hh:mm:ss"); parameters.put("lugarFecha", sdf.format(Calendar.getInstance().getTime())); parameters.put("flagAgencia", flagAgencia); parameters.put("flagArmas", flagArmas); parameters.put("flagDoc", flagDoc); parameters.put("flagGuardias", flagGuardias); parameters.put("flagRequisitos", flagRequisitos); parameters.put("centroControl", this.obtenerCentroControl()); parameters.put("gradoUsuario", gradoUsuario); parameters.put("codResponsable", this.responsableCentroControl.getPk().getPersoncode()); parameters.put("usuario",user.getName()); parameters.put("codigoQR",solicitud+" "+sdf.format(Calendar.getInstance().getTime())+" "+gradoUsuario); String format = "pdf"; InputStream pdf=this.reportController.jaspertoInputstream(path, parameters, format, filename, this.getLoginController()); return pdf; } catch (Exception ex) { MessageHelper.setMessageError(ex); } return null; } /** * Obtiene el centro de control segun usurio logeado. * @throws Exception * */ private String obtenerCentroControl() throws Exception { TsafeUserDetail tsafeUserDetail = (TsafeUserDetail) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL"); PersonAddressController direccion = new PersonAddressController(); TcustPersonAddress tcustPersonAddres= direccion.findPrincipal(tsafeUserDetail.getPk().getPersoncode().toString()); TarmCentroControlJur centroControlJur= TarmCentroControlJurController.findxProvincia(tcustPersonAddres.getProvincecode()); this.centroControl= CentroControlArmasController.findPorCodigo(centroControlJur.getCcentrocontrol()); //Reponsable Integer responsable = this.centroControl.getPersoncode(); this.responsableCentroControl = PersonDetailController.find(responsable.toString()); return setInstitucionCentroControl(CatalogDetailController.findxCodigoCodcatalogo( centroControl.getNombreinstitucion(), centroControl.getNombreinstitucioncodigo()).getDescription()); } /** * Ejecuta reporte general de informacion de armas, guardias, agencias y sucursales * @param name Nombre del reporte a generar. */ public InputStream reporteCertificados(String solicitud,boolean flagAgencia,boolean flagArmas,boolean flagDoc,boolean flagGuardias) { try { String gradoUsuario =""; String path = "armas/reports/reporteCertificado"; String filename="reporteCertificado"; TsafeUserDetail tsafeUserDetail = (TsafeUserDetail) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL"); TcustPersonDetail user = PersonDetailController.find(tsafeUserDetail.getPk().getPersoncode().toString()); 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(); } //Fija parametros del report. HashMap parameters = new HashMap<>(); parameters.put("pathLogoIzquierda", "repo:/maia/1/image/comandoconjunto"); parameters.put("pathLogoDerecha", "repo:/maia/1/image/selloarmas"); parameters.put("csolicitud", solicitud); //Obteniendo la solicitud TarmSolicitud s=SolicitudController.findSolicitudxcodsolicitud(solicitudflujo); //Obteniendo la direccion String email=" ",direccion=" "; List direcciones=PersonAddressController.findAllByPersonCode(s.getPersoncode().toString()); for (TcustPersonAddress d : direcciones) { Calendar calendario=Calendar.getInstance(); calendario.setTime(d.getPk().getDateto()); if(calendario.get(Calendar.YEAR)==2999){ if(d.getAddresstypecatalog().equalsIgnoreCase("3")){ email=d.getAddress(); }else if(d.getAddresstypecatalog().equalsIgnoreCase("1")){ direccion=d.getAddress(); } } } //Email parameters.put("email", email); //Fecha SimpleDateFormat sdf=new SimpleDateFormat("dd-MM-yyyy / hh:mm:ss"); parameters.put("lugarFecha", sdf.format(Calendar.getInstance().getTime())); parameters.put("flagAgencia", flagAgencia); parameters.put("flagArmas", flagArmas); parameters.put("flagDoc", flagDoc); parameters.put("flagGuardias", flagGuardias); parameters.put("centroControl", this.obtenerCentroControl()); parameters.put("gradoUsuario", gradoUsuario); parameters.put("usuario",user.getName()); parameters.put("codResponsable", this.responsableCentroControl.getPk().getPersoncode()); parameters.put("codigoQR",solicitud+" "+sdf.format(Calendar.getInstance().getTime())+" "+ gradoUsuario); String format = "pdf"; //this.reportController.execute(path, parameters, format, filename, this.getLoginController()); InputStream pdf=this.reportController.jaspertoInputstream(path, parameters, format, filename, this.getLoginController()); return pdf; } catch (Exception ex) { MessageHelper.setMessageError(ex); } return null; } public List getLdocumentos() { return ldocumentos; } public String getXpathflujo() { return xpathflujo; } public void setXpathflujo(String xpathflujo) { this.xpathflujo = xpathflujo; } public void setLdocumentos(List ldocumentos) { this.ldocumentos = ldocumentos; } public String getIdentificacion() { return identificacion; } public void setIdentificacion(String identificacion) { this.identificacion = identificacion; } public String getTipoidentificacion() { return tipoidentificacion; } public void setTipoidentificacion(String tipoidentificacion) { this.tipoidentificacion = tipoidentificacion; } TarmTramite getFila() { return fila; } public void setFila(TarmTramite fila) { this.fila = fila; } public String getFormato() { return formato; } public void setFormato(String formato) { this.formato = formato; } public String getMostrarFormato() { return mostrarFormato; } public void setMostrarFormato(String mostrarFormato) { this.mostrarFormato = mostrarFormato; } public String getTramiteflujo() { return tramiteflujo; } public void setTramiteflujo(String tramiteflujo) { this.tramiteflujo = tramiteflujo; } public String getInstitucionCentroControl() { return institucionCentroControl; } public String setInstitucionCentroControl(String institucionCentroControl) { this.institucionCentroControl = institucionCentroControl; return institucionCentroControl; } public AlfrescoController getAlfrescoController() { return alfrescoController; } public void setAlfrescoController(AlfrescoController alfrescoController) { this.alfrescoController = alfrescoController; } public ReportController getReportController() { return reportController; } public void setReportController(ReportController reportController) { this.reportController = reportController; } public DocumentoHabilitanteController getDocumentoHabilitanteController() { return documentoHabilitanteController; } public void setDocumentoHabilitanteController( DocumentoHabilitanteController documentoHabilitanteController) { this.documentoHabilitanteController = documentoHabilitanteController; } public PersonAddressController getPesonAddressController() { return pesonAddressController; } public void setPesonAddressController( PersonAddressController pesonAddressController) { this.pesonAddressController = pesonAddressController; } public SolicitudController getSolicitudController() { return solicitudController; } public void setSolicitudController(SolicitudController solicitudController) { this.solicitudController = solicitudController; } }