diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioFolioRmd.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioFolioRmd.java new file mode 100644 index 000000000..673052d1b --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioFolioRmd.java @@ -0,0 +1,124 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; + +import com.rjconsultores.ventaboletos.entidad.Aidf; +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.Estado; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.utilerias.impressaormd.vo.FolioRMD; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +public class RelatorioFolioRmd extends Relatorio { + + private static Logger log = Logger.getLogger(RelatorioFolioRmd.class); + List listdata = null; + private static final String DATE_FORMAT_FISCAL = "yyyyMMdd"; + + public RelatorioFolioRmd(final Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + + this.setCustomDataSource(new DataSource(this) { + @Override + public void initDados() throws Exception { + + try { + Empresa empresa = (Empresa) parametros.get("empresa"); + Estado estado = (Estado) parametros.get("estado"); + Aidf aidf = (Aidf) parametros.get("aidf"); + + NamedParameterStatement stmt = new NamedParameterStatement(getConexao(), getSqlRMDReporte()); + stmt.setInt("empresaId", empresa.getEmpresaId()); + stmt.setInt("estadoId", estado.getEstadoId()); + stmt.setLong("rmdId", aidf.getAidfId()); + + ResultSet rset = stmt.executeQuery(); + listdata = new ArrayList(); + while (rset.next()) { + FolioRMD item = new FolioRMD(); + + item.setFoliormd(rset.getString("foliormd")); + item.setStatus(rset.getString("status")); + item.setFechorfolio(rset.getString("fechorfolio")); + item.setEmpresa(rset.getString("empresa")); + item.setUf(rset.getString("uf")); + item.setEstado(rset.getString("estado")); + item.setDoc(rset.getString("doc")); + item.setTipo(rset.getString("tipo")); + item.setFechorfolioDate(DateUtil.getDateFromString(item.getFechorfolio(), DATE_FORMAT_FISCAL)); + + listdata.add(item); + } + + if (!getConexao().isClosed()) + getConexao().close(); + + } catch (SQLException e) { + log.error("", e); + } + } + + }); + + this.setCollectionDataSource(new JRBeanCollectionDataSource(listdata)); + } + + @Override + protected void processaParametros() throws Exception { + } + + private String getSqlRMDReporte() { + StringBuilder sql = new StringBuilder(); + sql.append("select foliormd as foliormd, "); + sql.append(" 'IMPRESSO' as status, "); + sql.append(" coalesce(r4.datamov, to_char(b.fechorventa, 'yyyymmdd')) as fechorfolio, "); + sql.append(" e.nombempresa as empresa, "); + sql.append(" eo.cveestado as uf, "); + sql.append(" eo.nombestado as estado, "); + sql.append(" ai.docfiscal as doc, "); + sql.append(" case when b.tipoventa_id <> 3 then 'ECF' else 'BPR' end as tipo "); + sql.append("from boleto b "); + sql.append(" left join fiscal_r4 r4 on r4.boleto_id = b.boleto_id "); + sql.append(" inner join aidf ai on b.rmd_id = ai.aidf_id and ai.aidfesp_id = 3 "); + sql.append(" inner join marca m on b.marca_id = m.marca_id and ai.empresa_id = m.empresa_id "); + sql.append(" inner join empresa e on e.empresa_id = m.empresa_id "); + sql.append(" inner join parada po on po.parada_id = b.origen_id "); + sql.append(" inner join ciudad co on co.ciudad_id = po.ciudad_id and co.estado_id = ai.estado_id "); + sql.append(" join estado eo on eo.estado_id = co.estado_id "); + sql.append("where ai.empresa_id = :empresaId and ai.aidf_id = :rmdId and ai.estado_id = :estadoId "); + sql.append("group by foliormd, "); + sql.append("coalesce( r4.datamov, to_char(b.fechorventa, 'yyyymmdd')), e.nombempresa, eo.cveestado,eo.nombestado, "); + sql.append("ai.docfiscal, case when b.tipoventa_id <> 3 then 'ECF' else 'BPR' end "); + sql.append(" "); + sql.append("union "); + sql.append(" "); + sql.append("select f.folio as foliormd, "); + sql.append(" case when f.indcancelacion = 1 then 'CANCELADO' else 'INATIVO' end as status, "); + sql.append(" to_char(f.fechorfolio, 'yyyymmdd') as fechorfolio, "); + sql.append(" e.nombempresa as empresa, "); + sql.append(" eo.cveestado as uf, "); + sql.append(" eo.nombestado as estado, "); + sql.append(" ai.docfiscal as doc, "); + sql.append(" case when f.indecf = 1 then 'ECF' else 'BPR' end as tipo "); + sql.append("from folio_consumo_rmd f "); + sql.append("inner join aidf ai on f.rmd_id = ai.aidf_id and ai.aidfesp_id = 3 "); + sql.append("inner join empresa e on e.empresa_id = f.empresa_id "); + sql.append("join estado eo on eo.estado_id = f.estado_id "); + sql.append("where f.empresa_id = :empresaId and f.rmd_id = :rmdId and f.estado_id = :estadoId "); + sql.append(" "); + sql.append("order by foliormd "); + + return sql.toString(); + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioFolioRmd_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioFolioRmd_es.properties new file mode 100644 index 000000000..57daa3700 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioFolioRmd_es.properties @@ -0,0 +1,2 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioFolioRmd_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioFolioRmd_pt_BR.properties new file mode 100644 index 000000000..57daa3700 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioFolioRmd_pt_BR.properties @@ -0,0 +1,2 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFolioRmd.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFolioRmd.jasper new file mode 100644 index 000000000..589cfc3dd Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFolioRmd.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFolioRmd.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFolioRmd.jrxml new file mode 100644 index 000000000..09e529b56 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFolioRmd.jrxml @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + <band splitType="Stretch"/> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoRmd.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoRmd.jasper index b9da9b92d..97c12ca69 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoRmd.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoRmd.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoRmd.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoRmd.jrxml index 0f70b1414..ad0334b28 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoRmd.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoRmd.jrxml @@ -1,7 +1,7 @@ - + @@ -43,49 +43,49 @@ - + - + - + - + - + - + - + @@ -98,72 +98,72 @@ - + - + - + - + - + - + - + - + - + - + - + - + @@ -174,35 +174,35 @@ - + - + - + - + - + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoRmdBpr.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoRmdBpr.jasper index 076db7211..15bdd168c 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoRmdBpr.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoRmdBpr.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoRmdBpr.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoRmdBpr.jrxml index 78dce2de6..f7e4a6312 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoRmdBpr.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioImpressaoRmdBpr.jrxml @@ -43,49 +43,49 @@ - + - + - + - + - + - + - + @@ -98,27 +98,27 @@ - + - + - + - + - + - + @@ -126,49 +126,49 @@ - + - + - + - + - + - + - + @@ -179,35 +179,35 @@ - + - + - + - + - + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/impressaofiscal/BusquedaImpressaoRMDController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/impressaofiscal/BusquedaImpressaoRMDController.java index 736f4d821..604569238 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/impressaofiscal/BusquedaImpressaoRMDController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/impressaofiscal/BusquedaImpressaoRMDController.java @@ -28,6 +28,7 @@ import org.zkoss.zul.Radio; import com.rjconsultores.ventaboletos.entidad.Aidf; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Estado; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioFolioRmd; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioImpressaoRmd; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioImpressaoRmdBpr; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; @@ -75,6 +76,7 @@ public class BusquedaImpressaoRMDController extends MyGenericForwardComposer { private MyComboboxEstandar cmbAidf; private Radio radBPR; + private Radio radECF; private Checkbox tipoLayout; @Override @@ -118,9 +120,12 @@ public class BusquedaImpressaoRMDController extends MyGenericForwardComposer { } public void onSelect$cmbAidf(Event ev) { + + Empresa empresa = cmbEmpresa.getSelectedItem() == null ? null : (Empresa) cmbEmpresa.getSelectedItem().getValue(); + Estado estado = cmbEstado.getSelectedItem() == null ? null : (Estado) cmbEstado.getSelectedItem().getValue(); Aidf aidf = cmbAidf.getSelectedItem() == null ? null : (Aidf) cmbAidf.getSelectedItem().getValue(); if (aidf != null) { - String ultimoRmdUtilizado = aidfService.buscaUltimoAidfRMDUtilizado(aidf.getAidfId()); + String ultimoRmdUtilizado = aidfService.buscaUltimoAidfRMDUtilizado(aidf.getAidfId(), empresa.getEmpresaId(), estado.getEstadoId()); if (StringUtils.isNotBlank(ultimoRmdUtilizado)) { folioInicial.setValue(ultimoRmdUtilizado); } else { @@ -130,7 +135,7 @@ public class BusquedaImpressaoRMDController extends MyGenericForwardComposer { } @SuppressWarnings({ "rawtypes", "unchecked" }) - private void executarImpressao(boolean isView, boolean isExecutarRmd, boolean isCancelarRmd) throws InterruptedException { + private void executarImpressao(boolean isView, boolean isExecutarRmd, boolean isCancelarRmd, boolean isInativarRmd) throws InterruptedException { Empresa empresa = cmbEmpresa.getSelectedItem() == null ? null : (Empresa) cmbEmpresa.getSelectedItem().getValue(); Estado estado = cmbEstado.getSelectedItem() == null ? null : (Estado) cmbEstado.getSelectedItem().getValue(); @@ -158,17 +163,20 @@ public class BusquedaImpressaoRMDController extends MyGenericForwardComposer { } List list = null; - if (radBPR.isChecked()) { - list = fiscalService.getRegistroImpressaoRMDTipoBPR(datInicial.getValue(), datFinal.getValue(), empresa, estado, rmd, folio); - } else { - list = fiscalService.getRegistroImpressaoRMDTipoECF(datInicial.getValue(), datFinal.getValue(), empresa, estado, rmd, folio); + if (!isCancelarRmd && !isInativarRmd && radBPR.isChecked()) { + list = fiscalService.getRegistroImpressaoRMDTipoBPR(datInicial.getValue(), datFinal.getValue(), + empresa, estado, rmd, folio); + } else if (!isCancelarRmd && !isInativarRmd && radECF.isChecked()) { + list = fiscalService.getRegistroImpressaoRMDTipoECF(datInicial.getValue(), datFinal.getValue(), + empresa, estado, rmd, folio); } if (isExecutarRmd) fiscalService.gravarRMDBoleto(list, aidf, folio); - if (isCancelarRmd) { - fiscalService.cancelarRMDBoleto(datInicial.getValue(), datFinal.getValue(), empresa, estado, aidf, folio); + if (isCancelarRmd || isInativarRmd) { + fiscalService.cancelarRMDBoleto(datInicial.getValue(), datFinal.getValue(), empresa, estado, aidf, folio, + isCancelarRmd, isInativarRmd, radECF.isChecked(), radBPR.isChecked()); Messagebox.show( Labels.getLabel("busquedaImpressaoRMDController.cancel.msg"), @@ -211,16 +219,41 @@ public class BusquedaImpressaoRMDController extends MyGenericForwardComposer { } } + @SuppressWarnings({ "unchecked", "rawtypes" }) + public void onClick$btnReporte(Event ev) throws SQLException, Exception { + + Empresa empresa = cmbEmpresa.getSelectedItem() == null ? null : (Empresa) cmbEmpresa.getSelectedItem().getValue(); + Estado estado = cmbEstado.getSelectedItem() == null ? null : (Estado) cmbEstado.getSelectedItem().getValue(); + Aidf aidf = cmbAidf.getSelectedItem() == null ? null : (Aidf) cmbAidf.getSelectedItem().getValue(); + + Map parametros = new HashMap(); + parametros.put("empresa", empresa); + parametros.put("estado", estado); + parametros.put("aidf", aidf); + + Relatorio relatorio = new RelatorioFolioRmd(parametros, dataSourceRead.getConnection()); + + Map args = new HashMap(); + args.put("relatorio", relatorio); + + openWindow("/component/reportView.zul", + Labels.getLabel("indexController.mnImpressaoRMD.label"), args, MODAL); + } + public void onClick$btnView(Event ev) throws InterruptedException { - executarImpressao(true, false, false); + executarImpressao(true, false, false, false); } public void onClick$btnExecutar(Event ev) throws InterruptedException { - executarImpressao(false, true, false); + executarImpressao(false, true, false, false); } public void onClick$btnCancelar(Event ev) throws InterruptedException { - executarImpressao(false, false, true); + executarImpressao(false, false, true, false); + } + + public void onClick$btnInativar(Event ev) throws InterruptedException { + executarImpressao(false, false, false, true); } public List getLsEmpresa() { diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 3b49739f5..f55a813bf 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -6496,7 +6496,12 @@ busquedaImportacionFiscalController.btnExe.label = Ejecutar Importación #busquedaImportacionFiscalController.btnExeNaoFiscal.label = Importación No Fiscal #busquedaImportacionFiscalController.btnExeImportacionReducaoZ.label = Importación Fiscal Reducción Z -busquedaExportacaoFiscalController.btnExe.label = Executar Exportação +busquedaExportacaoFiscalController.btnView.label = Visualização +busquedaExportacaoFiscalController.btnExe.label = Executar Exportação +busquedaExportacaoFiscalController.btnCancel.label = Cancelar +busquedaExportacaoFiscalController.btnInativar.label = Inativar +busquedaImpressaoRMDController.cancel.msg = O Cancelamento/Inativação do folio foi realizado com sucesso. +busquedaExportacaoFiscalController.btnReporte.label = Relatório de Formulários #corridaServiceImpl corridaServiceImpl.geracaoCorrida.dataMenorQueAtual=El periodo informado es invalido diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 20712c464..9ba55c6ca 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -6758,8 +6758,10 @@ busquedaImportacionFiscalController.btnExe.label = Executar Importação busquedaExportacaoFiscalController.btnView.label = Visualização busquedaExportacaoFiscalController.btnExe.label = Executar Exportação -busquedaExportacaoFiscalController.btnCancel.label = Cancelar/Inativar +busquedaExportacaoFiscalController.btnCancel.label = Cancelar +busquedaExportacaoFiscalController.btnInativar.label = Inativar busquedaImpressaoRMDController.cancel.msg = O Cancelamento/Inativação do folio foi realizado com sucesso. +busquedaExportacaoFiscalController.btnReporte.label = Relatório de Formulários editarRelgerencialEmpresaController.MSG.suscribirOK=Relatorio Gerencial gravado com sucesso! editarRelgerencialEmpresaController.window.title=Impressão Fiscal :: Editar Relatorio Gerencial diff --git a/web/gui/impressaofiscal/busquedaImpressaoRMD.zul b/web/gui/impressaofiscal/busquedaImpressaoRMD.zul index 499ef8308..c419b9864 100644 --- a/web/gui/impressaofiscal/busquedaImpressaoRMD.zul +++ b/web/gui/impressaofiscal/busquedaImpressaoRMD.zul @@ -60,20 +60,24 @@ - - + - @@ -82,12 +86,19 @@