package com.fp.frontend.controller.armas.solicitud; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; 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.SelectEvent; import com.fp.dto.AbstractDataTransport; import com.fp.frontend.controller.AbstractController; import com.fp.frontend.controller.alfresco.AlfrescoController; import com.fp.frontend.controller.armas.eval.EvaluacionController; import com.fp.frontend.controller.armas.parametros.CashManagementHistoryController; import com.fp.frontend.controller.armas.parametros.CentroControlArmasController; import com.fp.frontend.controller.armas.parametros.TarmCentroControlJurController; import com.fp.frontend.controller.armas.parametros.TarmVentaArmaTemporalController; import com.fp.frontend.controller.pcustomer.PersonAddressController; import com.fp.frontend.controller.pcustomer.PersonDetailController; import com.fp.frontend.enums.EnumLovOption; import com.fp.frontend.helper.MessageHelper; import com.fp.frontend.utility.MsgControlArmas; import com.fp.persistence.parmas.eval.TarmEvaluacion; import com.fp.persistence.parmas.fun.TarmCashManagementHistory; import com.fp.persistence.parmas.fun.TarmVentaArmaTem; import com.fp.persistence.parmas.ins.TarmPlanificacionInspeccion; import com.fp.persistence.parmas.param.TarmCentroControl; import com.fp.persistence.parmas.param.TarmCentroControlJur; import com.fp.persistence.parmas.soli.TarmArmaPruebas; import com.fp.persistence.parmas.soli.TarmArmas; import com.fp.persistence.parmas.soli.TarmCertificadoFiscalia; import com.fp.persistence.parmas.soli.TarmDecomiso; import com.fp.persistence.parmas.soli.TarmDecomisoArmaTransaccion; import com.fp.persistence.parmas.soli.TarmDocumentoAlfresco; import com.fp.persistence.parmas.soli.TarmDocumentoHabilitante; import com.fp.persistence.parmas.soli.TarmInspeccion; import com.fp.persistence.parmas.soli.TarmInspeccionArchivo; import com.fp.persistence.parmas.soli.TarmSolicitud; import com.fp.persistence.parmas.soli.TarmSolicitudGuardias; import com.fp.persistence.parmas.soli.TarmSolicitudRequisitos; 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.safe.TsafeUserDetail; /** * Clase controladora para consultar documentos en alfresco. * * @author Carlos Guzman. * @version 2.1 */ @SuppressWarnings("serial") @ManagedBean @ViewScoped public class ConsultaAlfrescoController extends AbstractController { @ManagedProperty(value = "#{alfrescoController}") private AlfrescoController alfrescoController; @ManagedProperty(value = "#{ingresoFichaTecnicaArmasController}") private IngresoFichaTecnicaArmasController ingresoFichaTecnicaArmasController; //Manu @ManagedProperty(value="#{solicitudController}") private SolicitudController solicitudController; @ManagedProperty(value = "#{solicitudGuardiasController}") private SolicitudGuardiasController solicitudGuardiasController; /*reporte alfresco*/ private TarmDocumentoHabilitante documentoHabilitante = new TarmDocumentoHabilitante(); private List armaPrueba = new ArrayList<>(); private List solicitudRequisitos = new ArrayList<>(); private List inspeccionArchivo = new ArrayList<>(); private TarmSolicitudTramite solicitudTramite = new TarmSolicitudTramite(); //Manu private TarmSolicitud solicitud = new TarmSolicitud(); private TarmEvaluacion tarmevaluacion = new TarmEvaluacion(); private List listaEvaluacionGuardias = new ArrayList<>(); private List listaCash = new ArrayList<>(); private List listaPlanificacion; //New private List listaInspeccionesNoPlanificacion; private List listTtarmdecomisoarmaEntrega; private List listTtarmdecomisoarmaRecepcion; private List listTarmdecomiso; private TarmCertificadoFiscalia certificadoFiscalia; private String consulta; private String tipoDocumento; private boolean verPanelDocumentos; private String year; private String mes; private Date fechaDesde; private Date fechaHasta; private String centro; private TarmCentroControl centroControl = new TarmCentroControl(); private String documentos; private String tipoPersona; /** * Lista de documentos habilitantes suspendidos */ private ListlistaDocumentoHabSus; private ListlistaArmasCompradas; private TcustPersonDetail tcustPersonDetail; private ListlistaTarmVentaArmaTem; /** * Constructor * @throws Exception */ public ConsultaAlfrescoController() throws Exception { super(AbstractDataTransport.class); } @PostConstruct private void postconstruct() throws Exception { solicitudController= new SolicitudController(); listaDocumentoHabSus= new ArrayList<>(); listaArmasCompradas= new ArrayList<>(); listaTarmVentaArmaTem=new ArrayList<>(); String perfil = this.getLoginController().getRequest().getProfile(); List lista = MantenimientoDocumentosAlfrescoController.findByProfile(perfil); if(lista != null && !lista.isEmpty()){ for(TarmDocumentoAlfresco docAlfresco : lista){ if("".equals(documentos)){ documentos += docAlfresco.getDocumento(); }else{ documentos += ", " + docAlfresco.getDocumento(); } } } this.init(); } @Override protected void querydatabase() { try { if("solicitud".equals(tipoDocumento)){ if(consulta==null || consulta.isEmpty()){ return ; } setSolicitud(SolicitudController.findSolicitudxnumerosolicitud(consulta.trim())); if(solicitud == null){ MsgControlArmas.getProperty("msg_error_solicitud_noencontrada"); return; } String consultaCodigo = solicitud.getPk(); solicitudTramite = TarmSolicitudTramiteController.findPorCSolicitud(solicitud.getPk()); if(solicitudTramite != null && ("FIN".equals(solicitudTramite.getEstadotramite()) || "APB".equals(solicitudTramite.getEstadotramite()))){ documentoHabilitante = DocumentoHabilitanteController.findPorSolicitud(consultaCodigo); }else{ documentoHabilitante = null; } armaPrueba = ingresoFichaTecnicaArmasController.findPorSolicitud(consultaCodigo); solicitudRequisitos = SolicitudRequisitosController.find(consultaCodigo); inspeccionArchivo = InspeccionArchivoController.findPorSolicitud(consultaCodigo); // solicitudTramite = TarmSolicitudTramiteController.findPorCSolicitud(consultaCodigo); TcustPersonDetail tcustPersonDetailObj=PersonDetailController.find(solicitud.getPersoncode().toString()); if(tcustPersonDetailObj.getPersontypecatalog().equals("2")){ tipoPersona = "JURIDICA"; this.listaEvaluacionGuardias.clear(); List lsolicitudGuardias = solicitudGuardiasController.findPorSolicitud(solicitud.getPk()); if(lsolicitudGuardias!=null && !lsolicitudGuardias.isEmpty()){ for(TarmSolicitudGuardias solicitudGuardias : lsolicitudGuardias){ TarmEvaluacion tarmEvaluacionGuardia = EvaluacionController.findEvaluacionesVigentes(solicitudGuardias.getPk().getCguardia().toString(), "PSICOLOGICA"); if(tarmEvaluacionGuardia==null){ tarmEvaluacionGuardia = new TarmEvaluacion(); } TcustPersonDetail tcustPersonDetailGuardia=PersonDetailController.find(solicitudGuardias.getPk().getCguardia().toString()); tarmEvaluacionGuardia.getModifiedData().put("nombreGuardia", tcustPersonDetailGuardia.getName()); this.listaEvaluacionGuardias.add(tarmEvaluacionGuardia); } } }else{ tipoPersona = "NATURAL"; tarmevaluacion = EvaluacionController.findEvaluacionesVigentes(solicitud.getPersoncode().toString(), "PSICOLOGICA"); } }else if("cashManagement".equals(tipoDocumento)){ listaCash = CashManagementHistoryController.findReportesByDate(fechaDesde, fechaHasta); }else if("planificacionAnual".equals(tipoDocumento)){ listaPlanificacion = AprobacionPlanInspeccionController.findPorAnno(centroControl.getPk(), getYear()); List listaInspecciones = InspeccionController.findPorAnno(centroControl.getPk(), getYear()); if(listaInspecciones != null && !listaInspecciones.isEmpty()){ listaInspeccionesNoPlanificacion = InspeccionArchivoController.findPorInspeccion(listaInspecciones.get(0).getPk().toString()); } }else if("decomisos".equals(tipoDocumento)){ //numero de consulta if(consulta==null || consulta.isEmpty()){ return ; } TarmDecomiso tarmDecomiso = DecomisoController.find(consulta); if(tarmDecomiso != null){ listTarmdecomiso = new ArrayList<>(); listTarmdecomiso.add(tarmDecomiso); listTtarmdecomisoarmaEntrega = DecomisoArmaTransaccionController.findPorEnvioNroDecomiso("ENTREGA", tarmDecomiso.getPk()); listTtarmdecomisoarmaRecepcion = DecomisoArmaTransaccionController.findPorEnvioNroDecomiso("RECEPCION", tarmDecomiso.getPk()); } }else if("fiscalia".equals(tipoDocumento)){ certificadoFiscalia = SolicitudCertificadoController.findPorSolicitud(consulta.trim()); }else if("suspenciondh".equals(tipoDocumento)){ if(tcustPersonDetail==null || tcustPersonDetail.getPk()==null){ MessageHelper.setMessageError("SELECCIONE UNA IDENTIFICACI\u00d3N"); return; } listaDocumentoHabSus=DocumentoHabilitanteController.findByPersonCode(tcustPersonDetail.getPk().getPersoncode()); }else if("ventaarmas".equals(tipoDocumento) ){ solicitud=null; if(consulta==null || consulta.trim().isEmpty()){ MessageHelper.setMessageError("INGRESE EL LOTE"); return; } listaArmasCompradas=ArmasController.findxLoteRegistro(consulta); } else if("roboperdida".equals(tipoDocumento)){ solicitud=null; if(consulta==null || consulta.trim().isEmpty()){ MessageHelper.setMessageError("INGRESE EL LOTE"); return; } listaArmasCompradas=ArmasController.findxLotePerdidaRobo(consulta); } else if("ventaarmas2".equals(tipoDocumento) ){ solicitud=null; if(consulta==null || consulta.trim().isEmpty()){ MessageHelper.setMessageError("INGRESE EL LOTE"); return; } listaTarmVentaArmaTem=TarmVentaArmaTemporalController.findLote(consulta); } } catch (Exception e) { MessageHelper.setMessageError(e); } } /** * Metodo para extrer solo el nombre del archivo * @param xpath xpath del archivo en alfresco * @return solo la parte correspondiente al nombre del archivo */ public String soloNombreArchivo(String xpath){ return xpath.substring(xpath.lastIndexOf(":") + 1,xpath.length()); } /** * Incializa el controlador, cuando se esta utilizando una pagina que utliza el controlador. */ private void init() { try { this.lrecord = new ArrayList<>(); this.beanalias = "CONSULTAALFRESCO"; verPanelDocumentos = false; } catch (Exception e) { MessageHelper.setMessageError(e); } } /** * Metodo que analiza si el archivo tiene la extension permitida * @param nombreArchivo * @return */ public Boolean esExtensionDeArchivoPermitida(String nombreArchivo){ String[]archivosPermitidosLst = {".pdf"}; for(String extensionValida:archivosPermitidosLst){ if(nombreArchivo.contains(extensionValida)){ return Boolean.TRUE; } } return Boolean.FALSE; } public void guardarRegistro() { } public boolean activarPanel(String selectedDocument){ for(String doc : documentos.split(", ")){ if(doc.equals(selectedDocument)){ return true; } } return false; } /** * Permite actualizar el centro de armas en caso de set tipo planificacionAnual * @throws Exception * */ public void actualizarMenu() throws Exception{ tcustPersonDetail=null; verPanelDocumentos = false; consulta = ""; fechaDesde = null; fechaHasta = null; year = ""; if("planificacionAnual".equals(tipoDocumento)){ TsafeUserDetail tsafeUserDetail = (TsafeUserDetail) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL"); PersonAddressController personAddressController = new PersonAddressController(); TcustPersonAddress tcustPersonAddres=personAddressController.findPrincipal(tsafeUserDetail.getPk().getPersoncode().toString()); TarmCentroControlJur centroControlJur= TarmCentroControlJurController.findxProvincia(tcustPersonAddres.getProvincecode()); setCentroControl(CentroControlArmasController.findPorCodigo(centroControlJur.getCcentrocontrol())); } } /* (non-Javadoc) * @see com.fp.frontend.controller.AbstractController#save() */ @Override public void save(){} @Override public void query() throws Exception { verPanelDocumentos = true; super.query(); } public static void openLov() { Map options = new HashMap(); // hint: ver EnumLovOption para las opciones del modal options.put(EnumLovOption.MODAL.getLabel(), true); options.put(EnumLovOption.HEIGHT.getLabel(), 450); options.put(EnumLovOption.WIDTH.getLabel(), 700); options.put(EnumLovOption.RESIZABLE.getLabel(), true); // lovpersona es el nombre de la pagina RequestContext.getCurrentInstance().openDialog("/pages/customer/lov/personLov.xhtml", options, null); } /** * Maneja la respuesta del Lov de Personas * @param event * @throws Exception */ public void onReturnPersonLov(SelectEvent event) throws Exception { tcustPersonDetail = (TcustPersonDetail) event.getObject(); this.getMfilters().put("personcode",tcustPersonDetail.getPk().getPersoncode().toString()); this.query(); } public AlfrescoController getAlfrescoController() { return alfrescoController; } public void setAlfrescoController(AlfrescoController alfrescoController) { this.alfrescoController = alfrescoController; } /** * @return the solicitudController */ public SolicitudController getSolicitudController() { return solicitudController; } /** * @param solicitudController the solicitudController to set */ public void setSolicitudController(SolicitudController solicitudController) { this.solicitudController = solicitudController; } public IngresoFichaTecnicaArmasController getIngresoFichaTecnicaArmasController() { return ingresoFichaTecnicaArmasController; } public void setIngresoFichaTecnicaArmasController( IngresoFichaTecnicaArmasController ingresoFichaTecnicaArmasController) { this.ingresoFichaTecnicaArmasController = ingresoFichaTecnicaArmasController; } public TarmDocumentoHabilitante getDocumentoHabilitante() { return documentoHabilitante; } public void setDocumentoHabilitante( TarmDocumentoHabilitante documentoHabilitante) { this.documentoHabilitante = documentoHabilitante; } /** * @return the solicitud */ public TarmSolicitud getSolicitud() { return solicitud; } /** * @param solicitud the solicitud to set */ public void setSolicitud(TarmSolicitud solicitud) { this.solicitud = solicitud; } public List getArmaPrueba() { return armaPrueba; } public void setArmaPrueba(List armaPrueba) { this.armaPrueba = armaPrueba; } public List getSolicitudRequisitos() { return solicitudRequisitos; } public void setSolicitudRequisitos( List solicitudRequisitos) { this.solicitudRequisitos = solicitudRequisitos; } public List getInspeccionArchivo() { return inspeccionArchivo; } public void setInspeccionArchivo(List inspeccionArchivo) { this.inspeccionArchivo = inspeccionArchivo; } public TarmSolicitudTramite getSolicitudTramite() { return solicitudTramite; } public void setSolicitudTramite(TarmSolicitudTramite solicitudTramite) { this.solicitudTramite = solicitudTramite; } /** * @return the tarmevaluacion */ public TarmEvaluacion getTarmevaluacion() { return tarmevaluacion; } /** * @param tarmevaluacion the tarmevaluacion to set */ public void setTarmevaluacion(TarmEvaluacion tarmevaluacion) { this.tarmevaluacion = tarmevaluacion; } /** * @return the listaCash */ public List getListaCash() { return listaCash; } /** * @param listaCash the listaCash to set */ public void setListaCash(List listaCash) { this.listaCash = listaCash; } /** * @return the centroControl */ public TarmCentroControl getCentroControl() { return centroControl; } /** * @param centroControl the centroControl to set */ public void setCentroControl(TarmCentroControl centroControl) { this.centroControl = centroControl; } /** * @return the listaPlanificacion */ public List getListaPlanificacion() { return listaPlanificacion; } /** * @param listaPlanificacion the listaPlanificacion to set */ public void setListaPlanificacion( List listaPlanificacion) { this.listaPlanificacion = listaPlanificacion; } /** * @return the listTtarmdecomisoarmaEntrega */ public List getListTtarmdecomisoarmaEntrega() { return listTtarmdecomisoarmaEntrega; } /** * @param listTtarmdecomisoarmaEntrega the listTtarmdecomisoarmaEntrega to set */ public void setListTtarmdecomisoarmaEntrega( List listTtarmdecomisoarmaEntrega) { this.listTtarmdecomisoarmaEntrega = listTtarmdecomisoarmaEntrega; } /** * @return the listTtarmdecomisoarmaRecepcion */ public List getListTtarmdecomisoarmaRecepcion() { return listTtarmdecomisoarmaRecepcion; } /** * @param listTtarmdecomisoarmaRecepcion the listTtarmdecomisoarmaRecepcion to set */ public void setListTtarmdecomisoarmaRecepcion( List listTtarmdecomisoarmaRecepcion) { this.listTtarmdecomisoarmaRecepcion = listTtarmdecomisoarmaRecepcion; } public String getConsulta() { return consulta; } public void setConsulta(String consulta) { this.consulta = consulta; } public String getTipoDocumento() { return tipoDocumento; } public void setTipoDocumento(String tipoDocumento) { this.tipoDocumento = tipoDocumento; } public boolean isVerPanelDocumentos() { return verPanelDocumentos; } public void setVerPanelDocumentos(boolean verPanelDocumentos) { this.verPanelDocumentos = verPanelDocumentos; } public String getYear() { return year; } public void setYear(String year) { this.year = year; } public String getMes() { return mes; } public void setMes(String mes) { this.mes = mes; } public Date getFechaDesde() { return fechaDesde; } public void setFechaDesde(Date fechaDesde) { this.fechaDesde = fechaDesde; } public Date getFechaHasta() { return fechaHasta; } public void setFechaHasta(Date fechaHasta) { this.fechaHasta = fechaHasta; } public String getCentro() { return centro; } public void setCentro(String centro) { this.centro = centro; } /** * @return the certificadoFiscalia */ public TarmCertificadoFiscalia getCertificadoFiscalia() { return certificadoFiscalia; } /** * @param certificadoFiscalia the certificadoFiscalia to set */ public void setCertificadoFiscalia(TarmCertificadoFiscalia certificadoFiscalia) { this.certificadoFiscalia = certificadoFiscalia; } public List getListaInspeccionesNoPlanificacion() { return listaInspeccionesNoPlanificacion; } public void setListaInspeccionesNoPlanificacion( List listaInspeccionesNoPlanificacion) { this.listaInspeccionesNoPlanificacion = listaInspeccionesNoPlanificacion; } public List getListTarmdecomiso() { return listTarmdecomiso; } public void setListTarmdecomiso(List listTarmdecomiso) { this.listTarmdecomiso = listTarmdecomiso; } public List getListaEvaluacionGuardias() { return listaEvaluacionGuardias; } public void setListaEvaluacionGuardias( List listaEvaluacionGuardias) { this.listaEvaluacionGuardias = listaEvaluacionGuardias; } public String getTipoPersona() { return tipoPersona; } public void setTipoPersona(String tipoPersona) { this.tipoPersona = tipoPersona; } public SolicitudGuardiasController getSolicitudGuardiasController() { return solicitudGuardiasController; } public void setSolicitudGuardiasController( SolicitudGuardiasController solicitudGuardiasController) { this.solicitudGuardiasController = solicitudGuardiasController; } public List getListaDocumentoHabSus() { return listaDocumentoHabSus; } public void setListaDocumentoHabSus( List listaDocumentoHabSus) { this.listaDocumentoHabSus = listaDocumentoHabSus; } public List getListaArmasCompradas() { return listaArmasCompradas; } public void setListaArmasCompradas(List listaArmasCompradas) { this.listaArmasCompradas = listaArmasCompradas; } public TcustPersonDetail getTcustPersonDetail() { return tcustPersonDetail; } public void setTcustPersonDetail(TcustPersonDetail tcustPersonDetail) { this.tcustPersonDetail = tcustPersonDetail; } public List getListaTarmVentaArmaTem() { return listaTarmVentaArmaTem; } public void setListaTarmVentaArmaTem( List listaTarmVentaArmaTem) { this.listaTarmVentaArmaTem = listaTarmVentaArmaTem; } }