package com.fp.frontend.controller.armas.funcionalidad; import java.text.SimpleDateFormat; 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.application.FacesMessage; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; import javax.faces.context.FacesContext; import org.eclipse.jdt.core.dom.ThisExpression; import org.jboss.logging.Logger; import org.primefaces.event.SelectEvent; import com.fp.dto.AbstractDataTransport; import com.fp.frontend.controller.AbstractController; import com.fp.frontend.controller.ReportController; 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.pcustomer.lov.PersonLovController; import com.fp.frontend.controller.pgeneral.gene.CatalogDetailController; 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.soli.TarmArmas; 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.safe.TsafeUserDetail; /** * @author usermaia2 * Clase Controladora la cual genera el reporte de trámite por centro de control */ @ManagedBean @ViewScoped public class ReporteNumPermisosController extends AbstractController { private final static Logger LOGGER = Logger.getLogger(ReporteNumPermisosController.class); public ReporteNumPermisosController() throws Exception { super(AbstractDataTransport.class); // TODO Auto-generated constructor stub } private static final long serialVersionUID = 1L; @ManagedProperty(value = "#{reportController}") private ReportController reportController; @ManagedProperty(value = "#{personDetailController}") private PersonDetailController personDetailController; @ManagedProperty(value = "#{centroControlController}") private CentroControlArmasController centroControlController; private TcustPersonDetail customerperson; private TsafeUserDetail userDetail; private TcustPersonDetail responsableCentroControl= null; private TsafeUserDetail tsafeUserDetailUsuario = null; private TarmCentroControl centroControl = new TarmCentroControl(); private List lcentroControl = null; private List ltiporeg = null; private List lestadosArma = null; private List estadosSeleccionados = null; private String institucionCentroControl=""; private Date fechainicial; private Date fechafinal; private String filtro=""; private String filtro2=""; private String idTipoReg; private Date fec_actual; private String codCentroControl; //Datos para buscar persona private String razonSocial; private String numeroDocumento; private String filtroPersona; public String getInstitucionCentroControl() { return institucionCentroControl; } @PostConstruct private void postconstruct() { this.init(); // Inicializa autoconsulta } /** * Incializa el controlador, cuando se esta utilizando una pagina que utliza el controlador. */ private void init() { try { this.lrecord = new ArrayList<>(); this.beanalias = "REPORTE"; ltiporeg = CatalogDetailController.find("TIPOREGISTRO", "DECINC"); this.lestadosArma = CatalogDetailController.find("ESTADOARMA"); this.lcentroControl = CentroControlArmasController.findAll(); this.responsableCentroControl = new TcustPersonDetail(); // this.tsafeUserDetailUsuario = new TsafeUserDetail(); this.tsafeUserDetailUsuario = (TsafeUserDetail) FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("TSAFEUSERDETAIL"); //this.obtenerResponsableCentroControl(); this.idTipoReg=""; this.codCentroControl=""; } catch (Exception e) { MessageHelper.setMessageError(e); } } /** * 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()); } @Override protected void querydatabase() { } /** * Graba los registros en la base de datos */ @Override public void save() { } /** * Obtiene el reporte de Ficha de Armas */ public void reporteTotalPermisos() { try { String gradoUsuario =""; String path = "armas/reports/reporteNumeroPermisos"; //String filename=MsgControlArmas.getProperty("lbl_tramitesXcentro"); String filename="reporte"; //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 //Fecha actual this.fec_actual = new Date(); SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy hh:mm:ss"); parameters.put("fecActual", sdf.format(this.fec_actual)); //usuario customerperson = PersonDetailController.find(this.tsafeUserDetailUsuario.getPk().getPersoncode().toString()); parameters.put("usuario", customerperson.getName()); parameters.put("filtroPersona", obtenerPersonaSeleccionada()); String format = "pdf"; try { this.reportController.execute(path, parameters, format, filename, this.getLoginController()); } catch (Exception ex) { MessageHelper.setMessageError(ex); } } catch (Exception ex) { MessageHelper.setMessageError(ex); } } public void reporteTotalPermisosXls() { try { String gradoUsuario =""; String path = "armas/reports/reporteNumeroPermisos"; //String filename=MsgControlArmas.getProperty("lbl_tramitesXcentro"); String filename="reporte"; //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 //Fecha actual this.fec_actual = new Date(); SimpleDateFormat sdf=new SimpleDateFormat("dd/MM/yyyy hh:mm:ss"); parameters.put("fecActual", sdf.format(this.fec_actual)); //usuario customerperson = PersonDetailController.find(this.tsafeUserDetailUsuario.getPk().getPersoncode().toString()); parameters.put("usuario", customerperson.getName()); parameters.put("filtroPersona", obtenerPersonaSeleccionada()); String format = "xls"; try { this.reportController.executeXls(path, parameters, format, filename, this.getLoginController()); } catch (Exception ex) { MessageHelper.setMessageError(ex); } } catch (Exception ex) { MessageHelper.setMessageError(ex); } } public ReportController getReportController() { return reportController; } public void setReportController(ReportController reportController) { this.reportController = reportController; } public TcustPersonDetail getCustomerperson() { return customerperson; } public void setCustomerperson(TcustPersonDetail customerperson) { this.customerperson = customerperson; } public TsafeUserDetail getUserDetail() { return userDetail; } public void setUserDetail(TsafeUserDetail userDetail) { this.userDetail = userDetail; } 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 TarmCentroControl getCentroControl() { return centroControl; } public void setCentroControl(TarmCentroControl centroControl) { this.centroControl = centroControl; } public Date getFechainicial() { return fechainicial; } public void setFechainicial(Date fechainicial) { this.fechainicial = fechainicial; } public Date getFechafinal() { return fechafinal; } public void setFechafinal(Date fechafinal) { this.fechafinal = fechafinal; } public String getFiltro() { return filtro; } public void setFiltro(String filtro) { this.filtro = filtro; } public Date getFec_actual() { return fec_actual; } public void setFec_actual(Date fec_actual) { this.fec_actual = fec_actual; } public void setInstitucionCentroControl(String institucionCentroControl) { this.institucionCentroControl = institucionCentroControl; } public String getIdTipoReg() { return idTipoReg; } public void setIdTipoReg(String idTipoReg) { this.idTipoReg = idTipoReg; } public List getLtiporeg() { return ltiporeg; } public void setLtiporeg(List ltiporeg) { this.ltiporeg = ltiporeg; } public PersonDetailController getPersonDetailController() { return personDetailController; } public void setPersonDetailController( PersonDetailController personDetailController) { this.personDetailController = personDetailController; } public CentroControlArmasController getCentroControlController() { return centroControlController; } public void setCentroControlController( CentroControlArmasController centroControlController) { this.centroControlController = centroControlController; } public List getLcentroControl() { return lcentroControl; } public void setLcentroControl(List lcentroControl) { this.lcentroControl = lcentroControl; } public String getCodCentroControl() { return codCentroControl; } public void setCodCentroControl(String codCentroControl) { this.codCentroControl = codCentroControl; } public List getLestadosArma() { return lestadosArma; } public void setLestadosArma(List lestadosArma) { this.lestadosArma = lestadosArma; } public List getEstadosSeleccionados() { return estadosSeleccionados; } public void setEstadosSeleccionados(List estadosSeleccionados) { this.estadosSeleccionados = estadosSeleccionados; } //BUSQUEDA DE PERSONA public String getRazonSocial() { return razonSocial; } public void setRazonSocial(String razonSocial) { this.razonSocial = razonSocial; } public String getNumeroDocumento() { return numeroDocumento; } public void setNumeroDocumento(String numeroDocumento) { this.numeroDocumento = numeroDocumento; } public String getFiltroPersona() { return filtroPersona; } public void setFiltroPersona(String filtroPersona) { this.filtroPersona = filtroPersona; } /** * Abre el lov de persona */ public void openPersonLov() { Map> params = new HashMap<>(); PersonLovController.openLov(params); } /** * Maneja la respuesta del Lov de Personas * @param event * @throws Exception */ public void onReturnPersonLov(SelectEvent event) throws Exception { filtroPersona = ""; TcustPersonDetail personaDetailSelecionada = (TcustPersonDetail) event.getObject(); razonSocial=personaDetailSelecionada.getName(); numeroDocumento=personaDetailSelecionada.getIdentification(); filtroPersona=personaDetailSelecionada.getPk().getPersoncode().toString(); LOGGER.info("parametro seleccionado " +filtroPersona); //this.setLrecord(new ArrayList()); FacesContext context = FacesContext.getCurrentInstance(); context.addMessage(null, new FacesMessage("RECUERDE", MsgControlArmas.getProperty("msg_recuerdeClickSeleccionarArmas"))); } private String obtenerPersonaSeleccionada(){ StringBuilder filtro = new StringBuilder(); filtro.append(" AND personadetalle.identification IN ('"); filtro.append(numeroDocumento); filtro.append("')"); LOGGER.info("el filtro obtenido de persona es el siguiente::" + filtro); return filtro.toString(); } }