diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/seguridad/ExtrairBpeXmlController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/seguridad/ExtrairBpeXmlController.java new file mode 100644 index 000000000..5a2b2a918 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/seguridad/ExtrairBpeXmlController.java @@ -0,0 +1,191 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.seguridad; + +import java.util.Date; +import java.util.List; + +import org.apache.log4j.Logger; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Controller; +import org.zkoss.util.resource.Labels; +import org.zkoss.zhtml.Messagebox; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zul.Combobox; +import org.zkoss.zul.Comboitem; +import org.zkoss.zul.Datebox; +import org.zkoss.zul.Filedownload; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.Estado; +import com.rjconsultores.ventaboletos.service.BpeService; +import com.rjconsultores.ventaboletos.service.EmpresaService; +import com.rjconsultores.ventaboletos.service.EstadoService; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.vo.bpe.BPeVO; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; + +@Controller("extrairBpeXmlController") +@Scope("prototype") +public class ExtrairBpeXmlController extends MyGenericForwardComposer { + + private static Logger log = Logger.getLogger(ExtrairBpeXmlController.class); + + private static final long serialVersionUID = 1L; + + private Datebox dtInicio; + private Datebox dtFim; + private MyComboboxEstandar cmbEmpresa; + private MyComboboxEstandar cmbEstado; + private Combobox cmbPuntoVenta; + + private List lsEmpresa; + private List lsEstado; + + @Autowired + private EmpresaService empresaService; + @Autowired + private EstadoService estadoService; + @Autowired + private BpeService bpeService; + + @Override + public void doAfterCompose(Component comp) throws Exception { + lsEmpresa = empresaService.obtenerTodos(); + lsEstado = estadoService.obtenerTodos(); + super.doAfterCompose(comp); + } + + private void extrairBpeXml() throws Exception { + if (!validar()) { + return; + } + + try { + + Integer empresaId = null; + Date dataVendaInicio = null; + Date dataVendaFim = null; + Integer estadoId = null; + + if (dtInicio.getValue() != null && dtFim.getValue() != null) { + dataVendaInicio = dtInicio.getValue(); + dataVendaFim = dtFim.getValue(); + } + + Comboitem itemEmpresa = cmbEmpresa.getSelectedItem(); + if (itemEmpresa != null) { + Empresa empresa = (Empresa) itemEmpresa.getValue(); + empresaId = empresa.getEmpresaId(); + } + + Comboitem itemEstado = cmbEstado.getSelectedItem(); + if (itemEstado != null) { + Estado estado = (Estado) itemEstado.getValue(); + estadoId = estado.getEstadoId(); + } + + List bpes = bpeService.buscarBPeVendaEEventosAutorizados(empresaId, dataVendaInicio, dataVendaFim, estadoId); + if(bpes == null || bpes.isEmpty()) { + Messagebox.show(Labels.getLabel("extrairBpeXmlController.MSG.nenhumaInformacao"), + Labels.getLabel("extrairBpeXmlController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + return; + } + byte[] arquivoCompactado = bpeService.extrairXmlsBPe(bpes); + String dataInicial = DateUtil.getStringDate(dataVendaInicio, "yyyy-MM-dd"); + String dataFinal = DateUtil.getStringDate(dataVendaFim, "yyyy-MM-dd"); + String nomearquivo = "BPe_Dump_" + dataInicial + "_" + dataFinal + ".zip"; + + Filedownload.save(arquivoCompactado, "application/x-download", nomearquivo); + + } catch (Exception e) { + log.error(e.getMessage(), e); + } + + } + + private boolean validar() { + try { + if (dtInicio.getValue() == null || dtFim.getValue() == null) { + Messagebox.show(Labels.getLabel("relatorioBPeController.MSG.informarData"), + Labels.getLabel("extrairBpeXmlController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + return false; + } + + if(dtInicio.getValue().after(dtFim.getValue())){ + Messagebox.show(Labels.getLabel("relatorioBPeController.MSG.dataInicialMaiorQueFinal"), + Labels.getLabel("extrairBpeXmlController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + return false; + } + + Integer difDias = DateUtil.getElapsedDias(dtInicio.getValue(), dtFim.getValue()); + if(difDias >= 7) { + Messagebox.show(Labels.getLabel("extrairBpeXmlController.MSG.limiteDias"), + Labels.getLabel("extrairBpeXmlController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + return false; + } + + } catch (InterruptedException ex) { + return false; + } + return true; + } + + public void onClick$btnExtrairBpeXml(Event ev) throws Exception { + extrairBpeXml(); + } + + public Datebox getDtInicio() { + return dtInicio; + } + + public void setDtInicio(Datebox dtInicio) { + this.dtInicio = dtInicio; + } + + public Datebox getDtFim() { + return dtFim; + } + + public void setDtFim(Datebox dtFim) { + this.dtFim = dtFim; + } + + public MyComboboxEstandar getCmbEmpresa() { + return cmbEmpresa; + } + + public void setCmbEmpresa(MyComboboxEstandar cmbEmpresa) { + this.cmbEmpresa = cmbEmpresa; + } + + public Combobox getCmbPuntoVenta() { + return cmbPuntoVenta; + } + + public void setCmbPuntoVenta(Combobox cmbPuntoVenta) { + this.cmbPuntoVenta = cmbPuntoVenta; + } + + public List getLsEmpresa() { + return lsEmpresa; + } + + public void setLsEmpresa(List lsEmpresa) { + this.lsEmpresa = lsEmpresa; + } + + public List getLsEstado() { + return lsEstado; + } + + public void setLsEstado(List lsEstado) { + this.lsEstado = lsEstado; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/seguridad/ItemMenuExtrairBPeXml.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/seguridad/ItemMenuExtrairBPeXml.java new file mode 100644 index 000000000..84f510026 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/seguridad/ItemMenuExtrairBPeXml.java @@ -0,0 +1,24 @@ +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad; + +import org.zkoss.util.resource.Labels; + +import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria; +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class ItemMenuExtrairBPeXml extends DefaultItemMenuSistema { + public ItemMenuExtrairBPeXml() { + super("indexController.mniExtrairBpeXmlController.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.SEGURIDAD.MENU.EXTRAIRBPEXML"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/seguridad/busquedaExtrairBpeXml.zul", + Labels.getLabel("extrairBpeXmlController.window.title"), getArgs(), desktop); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/seguridad/ItemMenuReenvioBPe.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/seguridad/ItemMenuReenvioBPe.java index 1b2c21550..fdd663e33 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/seguridad/ItemMenuReenvioBPe.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/seguridad/ItemMenuReenvioBPe.java @@ -1,6 +1,5 @@ package com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad; -import org.apache.log4j.Logger; import org.zkoss.util.resource.Labels; import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria; diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties index 461fc86eb..b514f3af9 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties @@ -274,6 +274,7 @@ seguridad.visualizaSenhaInstalacaoVendaEmbarcada=com.rjconsultores.ventaboletos. seguridad.painelBpe=com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad.ItemMenuPainelBPe seguridad.contingencia=com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad.ItemMenuContingencia seguridad.reenvioBpe=com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad.ItemMenuReenvioBPe +seguridad.reenvioBpe=com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad.ItemMenuExtrairBPeXml pasajerofrecuente=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pasajerofrecuente.MenuPasajeroFrecuente pasajerofrecuente.cliente=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pasajerofrecuente.ItemMenuCliente pasajerofrecuente.importarClientes=com.rjconsultores.ventaboletos.web.utilerias.menu.item.pasajerofrecuente.ItemMenuImportarClientes diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 4782a632a..2099c1b0e 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -400,7 +400,8 @@ indexController.mniRelatorioDepositosDetalhados.label= Depósitos Detallados indexController.mniRelatorioPosicaoCaixaAnalitico.label= Reporte de Numeración Lógica indexController.mniPainelBpe.label = Painel BPe indexController.mniReenvioBpe.label = Reenvio BP-e -indexController.mniVisualizaSenhaInstalacaoVendaEmbarcada.label = Visualizar Senha Instalação +indexController.mniVisualizaSenhaInstalacaoVendaEmbarcada.label = Visualizar Senha Instalação +indexController.mniExtrairBpeXmlController.label = Extrair BP-e XML relatorioPosicaoCaixaAnaliticoController.lbPuntoVenta.value=Punto de venta relatorioPosicaoCaixaAnaliticoController.lbEmpresa.value=Empresa @@ -8511,4 +8512,10 @@ reenvioBpeController.lbl.selecioneReenvio = Selecione os BP-e para Reenvio reenvioBpeController.lbl.codigoRejeicao = Código Rejeição (Separados por ';') reenvioBpeController.MSG.bpeNaoSelecionados = Nenhum BP-e selecionado para reenvio reenvioBpeController.MSG.bpeDefinidosReenvio = BP-e(s) selecioando(s) definido(s) para reenvio com sucesso -reenvioBpeController.MSG.bpeNaoLocalizado = Nenhum BP-e localizado com os filtros informados \ No newline at end of file +reenvioBpeController.MSG.bpeNaoLocalizado = Nenhum BP-e localizado com os filtros informados + +# Extrair BPe XML +extrairBpeXmlController.window.title = Extrair BP-e XML +extrairBpeXmlController.lbl.btnExtrairBpeXml = Extrair XML +extrairBpeXmlController.MSG.nenhumaInformacao = Nenhuma Informação foi localizada com os dados informados +extrairBpeXmlController.MSG.limiteDias = Extração BP-e XML limitada para 7 dias \ No newline at end of file diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 25cdcfc30..953e3306c 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -408,6 +408,7 @@ indexController.mniAutorizacaoUsoSerieEmbarcada.label = Autorização de uso de indexController.mniPainelBpe.label = Painel BPe indexController.mniReenvioBpe.label = Reenvio BP-e indexController.mniVisualizaSenhaInstalacaoVendaEmbarcada.label = Visualizar Senha Instalação +indexController.mniExtrairBpeXmlController.label = Extrair BP-e XML indexController.mniEscola.label = Escola indexController.mniCurso.label = Curso @@ -9058,4 +9059,10 @@ reenvioBpeController.lbl.selecioneReenvio = Selecione os BP-e para Reenvio reenvioBpeController.lbl.codigoRejeicao = Código Rejeição (Separados por ';') reenvioBpeController.MSG.bpeNaoSelecionados = Nenhum BP-e selecionado para reenvio reenvioBpeController.MSG.bpeDefinidosReenvio = BP-e(s) selecioando(s) definido(s) para reenvio com sucesso -reenvioBpeController.MSG.bpeNaoLocalizado = Nenhum BP-e localizado com os filtros informados \ No newline at end of file +reenvioBpeController.MSG.bpeNaoLocalizado = Nenhum BP-e localizado com os filtros informados + +# Extrair BPe XML +extrairBpeXmlController.window.title = Extrair BP-e XML +extrairBpeXmlController.lbl.btnExtrairBpeXml = Extrair XML +extrairBpeXmlController.MSG.nenhumaInformacao = Nenhuma Informação foi localizada com os dados informados +extrairBpeXmlController.MSG.limiteDias = Extração BP-e XML limitada para 7 dias \ No newline at end of file diff --git a/web/gui/seguridad/busquedaExtrairBpeXml.zul b/web/gui/seguridad/busquedaExtrairBpeXml.zul new file mode 100644 index 000000000..efbef35a3 --- /dev/null +++ b/web/gui/seguridad/busquedaExtrairBpeXml.zul @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +