diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioArquivoRemessaCNABController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioArquivoRemessaCNABController.java new file mode 100644 index 000000000..e4dba8662 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioArquivoRemessaCNABController.java @@ -0,0 +1,116 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Controller; +import org.zkoss.zhtml.Filedownload; +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 com.rjconsultores.ventaboletos.ArquivoRemessa; +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.FechamentoBoleto; +import com.rjconsultores.ventaboletos.layouts.CNABFactory; +import com.rjconsultores.ventaboletos.layouts.RemessaInterface; +import com.rjconsultores.ventaboletos.service.ArquivoRemessaCNAB; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderFechamentoBoleto; + +@Controller("relatorioArquivoRemessaCNABController") +@Scope("prototype") +public class RelatorioArquivoRemessaCNABController extends MyGenericForwardComposer { + + + private MyListbox boletoFechamentoList; + + private List lsEmpresas; + private List lsFechamentoBoletos; + private Empresa empresa; + + private Combobox cmbEmpresa; + private Datebox fecBoletoIni; + private Datebox fecBoletoFin; + + @Autowired + private ArquivoRemessaCNAB arquivoRemessaCNAB; + + @Override + public void doAfterCompose(Component comp) throws Exception { + + this.lsFechamentoBoletos = this.arquivoRemessaCNAB.obtenerTodosParaRemessa(null, null, null); + this.lsEmpresas = this.arquivoRemessaCNAB.getEmpresas(); + + super.doAfterCompose(comp); + + for (Empresa e : this.lsEmpresas) { + Comboitem comboItem = new Comboitem(e.getNombempresa()); + comboItem.setValue(e); + comboItem.setParent(this.cmbEmpresa); + } + + this.boletoFechamentoList.setItemRenderer(new RenderFechamentoBoleto()); + this.boletoFechamentoList.setData(this.lsFechamentoBoletos); + + } + + public void onClick$btnPesquisar(Event ev) throws Exception { + + Empresa empresa = (Empresa) cmbEmpresa.getSelectedItem().getValue(); + this.lsFechamentoBoletos = arquivoRemessaCNAB.obtenerTodosParaRemessa(empresa, this.fecBoletoIni.getValue(), this.fecBoletoFin.getValue()); + this.boletoFechamentoList.setData(this.lsFechamentoBoletos); + } + + public void onClick$btnExecutarRemessa(Event ev) throws Exception { + + empresa = (Empresa) cmbEmpresa.getSelectedItem().getValue(); + + if(empresa == null){ + + + return; + } + + if(fecBoletoIni.getValue() == null || fecBoletoFin.getValue() == null){ + + + return; + } + + ArquivoRemessa arquivoRemessa = arquivoRemessaCNAB.remessa(empresa, fecBoletoIni.getValue(), fecBoletoFin.getValue()); + + RemessaInterface remessaInterface = CNABFactory.createRemessa(arquivoRemessa.getBancoLayout()); + + File fileRemessa = new File(arquivoRemessa.getNomeArquivo()); + + List conteudoArquivoRemessa = remessaInterface.gerarRemessa(fileRemessa, arquivoRemessa); + + InputStream is = null; + is = new FileInputStream(fileRemessa); + Filedownload.save(is, "application/txt", arquivoRemessa.getNomeArquivo()); + + arquivoRemessaCNAB.atualizaRemessa(empresa, arquivoRemessa); + + } + + public void onClick$btnImportarRetornoRemessa(Event ev) throws Exception { + + + } + + public Empresa getEmpresa() { + return empresa; + } + + public void setEmpresa(Empresa empresa) { + this.empresa = empresa; + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioRemessaCNAB.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioRemessaCNAB.java new file mode 100644 index 000000000..29cc1e4c3 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioRemessaCNAB.java @@ -0,0 +1,25 @@ +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios; + +import org.zkoss.util.resource.Labels; + +import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria; +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class ItemMenuRelatorioRemessaCNAB extends DefaultItemMenuSistema { + + public ItemMenuRelatorioRemessaCNAB() { + super("indexController.mniRelatorioRemessaCNAB.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.RELATORIOREMESSACNAB"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioRemessaCNAB.zul", + Labels.getLabel("relatorioRemessaCNAB.window.title"), getArgs(), desktop); + + } +} 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 b8a5a3d59..da8316953 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 @@ -191,6 +191,7 @@ analitico.gerenciais.pacote=com.rjconsultores.ventaboletos.web.utilerias.menu.it analitico.gerenciais.pacote.boletos=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioVendasPacotesBoletos analitico.gerenciais.pacote.detalhado=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioVendasPacotesDetalhado analitico.gerenciais.pacote.resumido=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioVendasPacotesResumido +analitico.gerenciais.relatorioRemessaCNAB=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioRemessaCNAB analitico.integracion=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.integracion.SubMenuIntegracion analitico.integracion.sisdap=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioSisdap analitico.integracion.aidf=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioAidf diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderFechamentoBoleto.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderFechamentoBoleto.java new file mode 100644 index 000000000..ed60918b9 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderFechamentoBoleto.java @@ -0,0 +1,48 @@ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import java.text.DecimalFormat; +import java.text.NumberFormat; +import java.text.SimpleDateFormat; +import java.util.Locale; + +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.FechamentoBoleto; + +public class RenderFechamentoBoleto implements ListitemRenderer { + + NumberFormat numberFormat = NumberFormat.getCurrencyInstance(new Locale("pt", "BR")); + + @Override + public void render(Listitem lstm, Object o) throws Exception { + + FechamentoBoleto fechamentoBoleto = (FechamentoBoleto) o; + + Listcell lc = new Listcell(); + + lc = new Listcell(fechamentoBoleto.getFechamentoCntcorrente().getEmpresa().getNombempresa()); + lc.setParent(lstm); + + lc = new Listcell(fechamentoBoleto.getFechamentoCntcorrente().getPuntoventa().getNombpuntoventa()); + lc.setParent(lstm); + + lc = new Listcell(fechamentoBoleto.getNossonumero()); + lc.setParent(lstm); + + lc = new Listcell(new SimpleDateFormat("dd/MM/yyyy").format(fechamentoBoleto.getFecdocumento())); + lc.setParent(lstm); + + lc = new Listcell(numberFormat.format(fechamentoBoleto.getValordocumento().doubleValue())); + lc.setParent(lstm); + + String id = (fechamentoBoleto.getRemessaId() != null) ? "Sim" : "Não"; + lc = new Listcell(id); + lc.setParent(lstm); + + lstm.setAttribute("data", fechamentoBoleto); + + } + +} diff --git a/src/java/spring-config.xml b/src/java/spring-config.xml index 3a2188aae..b794f598d 100644 --- a/src/java/spring-config.xml +++ b/src/java/spring-config.xml @@ -392,6 +392,8 @@ com.rjconsultores.ventaboletos.entidad.FiscalImpressoraEstado com.rjconsultores.ventaboletos.entidad.FechamentoParamgeral com.rjconsultores.ventaboletos.entidad.FechamentoParamptovta + com.rjconsultores.ventaboletos.entidad.FechamentoBoleto + com.rjconsultores.ventaboletos.entidad.FechamentoCntcorrente com.rjconsultores.ventaboletos.entidad.TipoIdentificacion com.rjconsultores.ventaboletos.entidad.Hotel com.rjconsultores.ventaboletos.entidad.PrecoApanhe @@ -459,7 +461,9 @@ com.rjconsultores.ventaboletos.entidad.RutaEmbarqueDesembarque com.rjconsultores.ventaboletos.entidad.EsquemaCorridaEmbarqueDesembarque com.rjconsultores.ventaboletos.entidad.ContaMD - com.rjconsultores.ventaboletos.entidad.PtovtaContaMD com.rjconsultores.ventaboletos.entidad.MensagemRecusa + com.rjconsultores.ventaboletos.entidad.PtovtaContaMD + com.rjconsultores.ventaboletos.entidad.MensagemRecusa + diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index aab478b78..a4053362e 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -294,6 +294,8 @@ indexController.mniRelatorioImpressaoPosterior.label=Impresión posterior indexController.mniRelatorioServicoBloqueadoVendaInternet.label = Corrida bloqueada en venta internet indexController.mniRelatorioDocumentosFiscais.label = Report Documentos Fiscais +indexController.mniRelatorioRemessaCNAB.label = Remessa de Lote (CNAB 400) + indexController.mnSubMenuImpressaoFiscal.label=Impresión fiscal indexController.mnSubMenuRelatorioImpressaoFiscal.label=Importación fiscal indexController.mniTotnaofiscalEmpresa.label=Totalizadores No-Fiscales @@ -7183,6 +7185,22 @@ relatorioFinanceiroReceitasDespesasController.lb.evento = Por Evento relatorioFinanceiroReceitasDespesasController.lbEventoExtra.value = Evento relatorioFinanceiroReceitasDespesasController.lbNumDocumento.value=Nº Documento +# Relatório CNAB +indexController.mniRelatorioRemessaCNAB.label = Remessa de Lote (CNAB 400) +relatorioRemessaCNAB.window.title = Remessa de Lote de Boletos Bancários +relatorioRemessaCNAB.lbEmpresa.value = Empresa +relatorioRemessaCNAB.lbFec.value = Data emissão +relatorioRemessaCNAB.lbAte.value = até +relatorioRemessaCNAB.btnPesquisar.label = Pequisar +relatorioRemessaCNAB.btnGerarRemessa.label = Gerar Remessa +relatorioRemessaCNAB.btnImportarRetornoRemessa.label = Importar Retorno +relatorioRemessaCNAB.lbEmpresa.value = Empresa +relatorioRemessaCNAB.lbEmpresaSacado.value = Sacador +relatorioRemessaCNAB.lbNossoNumero.value = Nosso Número +relatorioRemessaCNAB.lbDataEmissao.value = Dt. Emissão +relatorioRemessaCNAB.lbValor.value = Valor +relatorioRemessaCNAB.lbRemessa.value = Enviado + # Relatório Vendas com Parcelamento relatorioVendasParcelamentoController.window.title = Ventas con Parcelamiento relatorioVendasParcelamentoController.lbDataFin.value = Fecha Final diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 5fed6ec19..df3389acb 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -7672,6 +7672,22 @@ relatorioBaixasVendasInternetController.lbFecInicio.value=Data Início relatorioBaixasVendasInternetController.lbFecFinal.value=Data Fim relatorioBaixasVendasInternetController.lbPuntoVenta.value=Ponto de Venda +# Relatório CNAB +indexController.mniRelatorioRemessaCNAB.label = Remessa de Lote (CNAB 400) +relatorioRemessaCNAB.window.title = Remessa de Lote de Boletos Bancários +relatorioRemessaCNAB.lbEmpresa.value = Empresa +relatorioRemessaCNAB.lbFec.value = Data emissão +relatorioRemessaCNAB.lbAte.value = até +relatorioRemessaCNAB.btnPesquisar.label = Pequisar +relatorioRemessaCNAB.btnGerarRemessa.label = Gerar Remessa +relatorioRemessaCNAB.btnImportarRetornoRemessa.label = Importar Retorno +relatorioRemessaCNAB.lbEmpresa.value = Empresa +relatorioRemessaCNAB.lbEmpresaSacado.value = Sacador +relatorioRemessaCNAB.lbNossoNumero.value = Nosso Número +relatorioRemessaCNAB.lbDataEmissao.value = Dt. Emissão +relatorioRemessaCNAB.lbValor.value = Valor +relatorioRemessaCNAB.lbRemessa.value = Enviado + # Relatório Vendas com Parcelamento relatorioVendasParcelamentoController.window.title = Vendas com Parcelamento diff --git a/web/gui/relatorios/filtroRelatorioRemessaCNAB.zul b/web/gui/relatorios/filtroRelatorioRemessaCNAB.zul new file mode 100644 index 000000000..12e97b02c --- /dev/null +++ b/web/gui/relatorios/filtroRelatorioRemessaCNAB.zul @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +