diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java index c6126de96..23a50687f 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -1396,8 +1396,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sb.append(" (case when r2.numserie20 is null then 'X' else '' end) || imp.numserie as numserie,"); sb.append(" (case when r2.numserie20 is null then '000001' else r2.cooinicial end) as cooinicial,"); sb.append(" (case when r2.numserie20 is null then '000001' else r2.coofinal end) as coofinal,"); - sb.append(" (case when r2.numserie20 is null then '0000' else r2.crz end) as crz,"); - sb.append(" (case when r2.numserie20 is null then '0000' else r2.cro end) as cro,"); + sb.append(" (case when r2.numserie20 is null then '000001' else r2.crz end) as crz,"); + sb.append(" (case when r2.numserie20 is null then '000001' else r2.cro end) as cro,"); sb.append(" (case when r2.numserie20 is null then '000001' else r2.coo end) as r2_coo,"); sb.append(" to_char(c.feccreacion, 'yyyymmdd') as datamov,"); sb.append(" (case when r4.caja_id is null then '000001' else r4.coo end) as r4_coo,"); @@ -3505,7 +3505,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO aliquota = imp.getAliquota(); isentos = isentos.add(imp.getIsentos()); outros = outros.add(imp.getOutros()); - icms = imp.getIcms(); + icms = icms.add(imp.getIcms()); } if (boletos.isEmpty()) { @@ -4105,7 +4105,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO cp = det.getPorcRedMunicipal() == null ? BigDecimal.ZERO : det.getPorcRedMunicipal(); } - rbc = det.getRedBaseCalcIcms() == null ? BigDecimal.ZERO : det.getRedBaseCalcIcms().divide(UtiliteriasFiscal.CEM); + rbc = det.getRedBaseCalcIcms() == null ? cp : det.getRedBaseCalcIcms().divide(UtiliteriasFiscal.CEM); BigDecimal redutor = passagem.multiply(rbc); baseCalculo = passagem.subtract(redutor); icms = baseCalculo.multiply(aliquota.divide(BigDecimal.TEN.multiply(BigDecimal.TEN))); @@ -4225,28 +4225,29 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" 'REC' as tipoReceita, "); sql.append(" c.numoperacion as numoperacion, "); sql.append(" trunc(c.feccreacion) as fechorVenta, "); - sql.append(" coalesce(eos.estado_id, eo.estado_id) as estadoId, "); - sql.append(" coalesce(eis.icms, ei.icms) as icmsInterestadual, "); - sql.append(" coalesce(eis.icmsim, ei.icmsim) as icmsIntermunicipal, "); - sql.append(" coalesce(eos.cveestado, eo.cveestado) as estadoOrigem, "); - sql.append(" coalesce(eds.cveestado, ed.cveestado) as estadoDestino, "); - sql.append(" coalesce(cos.codibge, co.codibge) as municipioOrigem, "); - sql.append(" case when((coalesce(eos.cveestado, eo.cveestado)) = "); - sql.append(" (coalesce(eds.cveestado, ed.cveestado))) then 0 else 1 end as isInterEstadual, "); - sql.append(" coalesce(eis.porcredbaseicms, ei.porcredbaseicms) as redBaseCalcIcms, "); - sql.append(" coalesce(eis.porcredmunicipal, ei.porcredmunicipal) as porcRedMunicipal, "); - sql.append(" coalesce(eis.porcredestadual, ei.porcredestadual) as porcRedEstadual, "); - sql.append(" coalesce(eis.indtarifamunicipal, ei.indtarifamunicipal, 0) as indtarifamunicipal, "); - sql.append(" coalesce(eis.indseguromunicipal, ei.indseguromunicipal, 0) as indseguromunicipal, "); - sql.append(" coalesce(eis.indtxembarquemunicipal, ei.indtxembarquemunicipal, 0) as indtxembarquemunicipal, "); - sql.append(" coalesce(eis.indpedagiomunicipal, ei.indpedagiomunicipal, 0) as indpedagiomunicipal, "); - sql.append(" coalesce(eis.indtarifaestadual, ei.indtarifaestadual, 0) as indtarifaestadual, "); - sql.append(" coalesce(eis.indseguroestadual, ei.indseguroestadual, 0) as indseguroestadual, "); - sql.append(" coalesce(eis.indtxembarqueestadual,ei.indtxembarqueestadual, 0) as indtxembarqueestadual, "); - sql.append(" coalesce(eis.indpedagioestdual,ei.indpedagioestdual, 0) as indpedagioestdual, "); - sql.append(" coalesce(eis.tributacaoimportacao, ei.tributacaoimportacao) as tributacaoImportacao, "); - sql.append(" case when (coalesce(pos.regionmetropolitana_id, po.regionmetropolitana_id, -1) = "); - sql.append(" coalesce(pds.regionmetropolitana_id, pd.regionmetropolitana_id, -2)) then 1 else 0 end as isenta, "); + sql.append(" (case when s.aliasorigen_id is null then eo.estado_id else eos.estado_id end) as estadoId,"); + sql.append(" (case when s.aliasorigen_id is null then ei.icms else eis.icms end) as icmsInterestadual,"); + sql.append(" (case when s.aliasorigen_id is null then ei.icmsim else eis.icmsim end) as icmsIntermunicipal,"); + sql.append(" (case when s.aliasorigen_id is null then eo.cveestado else eos.cveestado end) as estadoOrigem,"); + sql.append(" (case when s.aliasdestino_id is null then ed.cveestado else eds.cveestado end) as estadoDestino,"); + sql.append(" (case when s.aliasorigen_id is null then co.codibge else cos.codibge end) as municipioOrigem,"); + sql.append(" case when ( (case when s.aliasorigen_id is null then eo.cveestado else eos.cveestado end) = "); + sql.append(" (case when s.aliasdestino_id is null then ed.cveestado else eds.cveestado end) ) then 0 else 1 end as isInterEstadual, "); + sql.append(" (case when s.aliasorigen_id is null then ei.porcredbaseicms else eis.porcredbaseicms end) as redBaseCalcIcms,"); + sql.append(" (case when s.aliasorigen_id is null then ei.porcredmunicipal else eis.porcredmunicipal end) as porcRedMunicipal,"); + sql.append(" (case when s.aliasorigen_id is null then ei.porcredestadual else eis.porcredestadual end) as porcRedEstadual,"); + sql.append(" (case when s.aliasorigen_id is null then ei.indtarifamunicipal else eis.indtarifamunicipal end) as indtarifamunicipal,"); + sql.append(" (case when s.aliasorigen_id is null then ei.indseguromunicipal else eis.indseguromunicipal end) as indseguromunicipal,"); + sql.append(" (case when s.aliasorigen_id is null then ei.indtxembarquemunicipal else eis.indtxembarquemunicipal end) as indtxembarquemunicipal,"); + sql.append(" (case when s.aliasorigen_id is null then ei.indpedagiomunicipal else eis.indpedagiomunicipal end) as indpedagiomunicipal,"); + sql.append(" (case when s.aliasorigen_id is null then ei.indtarifaestadual else eis.indtarifaestadual end) as indtarifaestadual,"); + sql.append(" (case when s.aliasorigen_id is null then ei.indseguroestadual else eis.indseguroestadual end) as indseguroestadual,"); + sql.append(" (case when s.aliasorigen_id is null then ei.indtxembarqueestadual else eis.indtxembarqueestadual end) as indtxembarqueestadual,"); + sql.append(" (case when s.aliasorigen_id is null then ei.indpedagioestdual else eis.indpedagioestdual end) as indpedagioestdual,"); + sql.append(" (case when s.aliasorigen_id is null then ei.tributacaoImportacao else eis.tributacaoImportacao end) as tributacaoImportacao,"); + sql.append(" (case when (coalesce(case when s.aliasorigen_id is null then po.regionmetropolitana_id "); + sql.append(" else pos.regionmetropolitana_id end, -1) = coalesce(case when s.aliasorigen_id is null "); + sql.append(" then pd.regionmetropolitana_id else pds.regionmetropolitana_id end, -2)) then 1 else 0 end) as isenta, "); sql.append(" coalesce(c.preciopagado, 0) as tarifa, "); sql.append(" coalesce(c.importetaxaembarque, 0) as taxaEmbarque, "); sql.append(" coalesce(c.importepedagio, 0) as pedagio, "); @@ -4301,13 +4302,14 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" 'REC' as tipoReceita, "); sql.append(" c.numoperacion as numoperacion, "); sql.append(" trunc(c.feccreacion) as fechorVenta, "); - sql.append(" coalesce(ae.estado_id, eos.estado_id) as estadoId, "); + sql.append(" coalesce(ae.estado_id, (case when s.aliasorigen_id is null then eo.estado_id else eos.estado_id end)) as estadoId,"); sql.append(" coalesce(ei.icms, eos.icms) as icmsInterestadual, "); - sql.append(" ei.icmsim as icmsIntermunicipal, "); - sql.append(" coalesce(ae.cveestado, eos.cveestado) as estadoOrigem, "); - sql.append(" ed.cveestado as estadoDestino, "); - sql.append(" 0 as municipioOrigem, "); - sql.append(" case when((coalesce(ae.cveestado, eos.cveestado)) = ed.cveestado) then 0 else 1 end as isInterEstadual, "); + sql.append(" ei.icmsim as icmsIntermunicipal, "); + sql.append(" coalesce(ae.cveestado,(case when s.aliasorigen_id is null then eo.cveestado else eos.cveestado end)) as estadoOrigem,"); + sql.append(" (case when s.aliasdestino_id is null then ed.cveestado else eds.cveestado end) as estadoDestino,"); + sql.append(" (case when s.aliasorigen_id is null then co.codibge else cos.codibge end) as municipioOrigem,"); + sql.append(" case when(coalesce(ae.cveestado,(case when s.aliasorigen_id is null then eo.cveestado else eos.cveestado end)) = "); + sql.append(" (case when s.aliasdestino_id is null then ed.cveestado else eds.cveestado end) ) then 0 else 1 end as isInterEstadual, "); sql.append(" ei.porcredbaseicms as redBaseCalcIcms, "); sql.append(" ei.porcredmunicipal as porcRedMunicipal, "); sql.append(" ei.porcredestadual as porcRedEstadual, "); @@ -4319,10 +4321,10 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" coalesce(ei.indseguroestadual, 0) as indseguroestadual, "); sql.append(" coalesce(ei.indtxembarqueestadual, 0) as indtxembarqueestadual, "); sql.append(" coalesce(ei.indpedagioestdual, 0) as indpedagioestdual, "); - sql.append(" ei.tributacaoimportacao as tributacaoImportacao, "); - sql.append(" case when (coalesce(pos.regionmetropolitana_id, po.regionmetropolitana_id, -1) = "); - sql.append(" coalesce(pds.regionmetropolitana_id, pd.regionmetropolitana_id, -2)) "); - sql.append(" then 1 else 0 end as isenta, "); + sql.append(" ei.tributacaoimportacao as tributacaoImportacao, "); + sql.append(" (case when (coalesce(case when s.aliasorigen_id is null then po.regionmetropolitana_id "); + sql.append(" else pos.regionmetropolitana_id end, -1) = coalesce(case when s.aliasorigen_id is null "); + sql.append(" then pd.regionmetropolitana_id else pds.regionmetropolitana_id end, -2)) then 1 else 0 end) as isenta, "); sql.append(" coalesce(c.preciopagado, 0) as tarifa, "); sql.append(" coalesce(c.importetaxaembarque, 0) as taxaEmbarque, "); sql.append(" coalesce(c.importepedagio, 0) as pedagio, "); @@ -4359,6 +4361,9 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" join empresa_imposto ei on ei.empresa_id = c.empresacorrida_id "); sql.append(" and ei.estado_id = coalesce(ae.estado_id, eos.estado_id) and ei.activo = 1 "); sql.append("where c.tipoventa_id = 3 "); + sql.append(" and (c.motivocancelacion_id is null or c.motivocancelacion_id <> 35) "); + sql.append(" and c.indcancelacion = 0 "); + sql.append(" and c.preciopagado > 0 "); sql.append(" and c.indstatusboleto = 'V' and c.indreimpresion = 0 "); sql.append(" and c.empresacorrida_id = :EMPRESA_ID "); sql.append(" and c.feccreacion between :DATE_INICIO and :DATE_FIM "); @@ -4421,12 +4426,12 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append("left join parada pds on pds.parada_id = s.aliasdestino_id "); sql.append("left join ciudad cds on cds.ciudad_id = pds.ciudad_id "); sql.append("left join estado eds on eds.estado_id = cds.estado_id "); - sql.append("join inscricao_estadual ie on e.empresa_id = ie.empresa_id "); - sql.append(" and ie.estado_id = coalesce(eos.estado_id, est.estado_id) and ie.activo = 1 "); - sql.append("join empresa_imposto ei on ei.empresa_id = e.empresa_id "); - sql.append(" and ei.estado_id = coalesce(eos.estado_id, est.estado_id) and ei.activo = 1 "); sql.append("left join aidf aidf on aidf.aidf_id = b.aidf_id and b.tipoventa_id = 3 "); sql.append("left join estado esaidf on esaidf.estado_id = aidf.estado_id "); + sql.append("join inscricao_estadual ie on e.empresa_id = ie.empresa_id "); + sql.append(" and ie.estado_id = coalesce(aidf.estado_id, eos.estado_id, est.estado_id) and ie.activo = 1 "); + sql.append("join empresa_imposto ei on ei.empresa_id = e.empresa_id "); + sql.append(" and ei.estado_id = coalesce(aidf.estado_id, eos.estado_id, est.estado_id) and ei.activo = 1 "); sql.append("where b.motivocancelacion_id in (31,32,10,37,99,36) "); sql.append(" and b.indstatusboleto = 'C' and b.indcancelacion = 1 "); sql.append(" and b.numfoliopreimpreso is not null "); diff --git a/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/ExportacaoFiscal.java b/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/ExportacaoFiscal.java index 56c5836c0..615e2245f 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/ExportacaoFiscal.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/ExportacaoFiscal.java @@ -556,12 +556,12 @@ public class ExportacaoFiscal { Long numeroFormularioAIDF = registro.getNumeroFormularioAIDF(); String dataEmissao = registro.getDataEmissao(); Boolean cancelado = registro.getCancelado(); - Integer codigoParticipante = registro.getCodigoEstabelecimento(); // registro.getCodigoParticipante(); Allan/Flávio pediram esta modificação + Integer codigoParticipante = registro.getCodigoParticipante(); String codigoContabil = registro.getCodigoContabil(); StringBuilder sb = new StringBuilder(); sb.append("RMD").append(SEPARADOR); - sb.append(String.format("%04d", codigoEstabelecimento)).append(SEPARADOR); + sb.append(String.format("%04d", cancelado ? codigoParticipante : codigoEstabelecimento)).append(SEPARADOR); sb.append(formataNumerico(numeroAIDF, true, 25)).append(SEPARADOR); sb.append(formataCaracter(serieAIDF, false, 3)).append(SEPARADOR); sb.append(formataCaracter(subSerieAIDF, false, 3)).append(SEPARADOR); @@ -577,7 +577,7 @@ public class ExportacaoFiscal { sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 15 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 16 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 17 - sb.append(formataNumerico(codigoParticipante, true, 9)).append(SEPARADOR); + sb.append(cancelado ? "" : formataNumerico(codigoEstabelecimento, true, 9)).append(SEPARADOR); sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 19 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 20 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 21 @@ -586,8 +586,8 @@ public class ExportacaoFiscal { sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 24 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 25 sb.append(formataCaracter(VAZIO, false, 15)).append(SEPARADOR); // Posição 26 - sb.append("01").append(SEPARADOR); - sb.append("01").append(SEPARADOR); + sb.append(cancelado ? "" : "01").append(SEPARADOR); + sb.append(cancelado ? "" : "01").append(SEPARADOR); sb.append(formataCaracter(codigoContabil, false, 15)).append(SEPARADOR); sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 30 sb.append(formataCaracter(VAZIO, false, 9)).append(SEPARADOR); // Posição 31 diff --git a/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/vo/ExportacaoBPR.java b/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/vo/ExportacaoBPR.java index 9a1ba3505..1032fb691 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/vo/ExportacaoBPR.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/exportacaofiscal/vo/ExportacaoBPR.java @@ -128,7 +128,7 @@ public class ExportacaoBPR { registro = new ExportacaoRMDTipoRMD(); registro.setDataEmissao(base.getDataEmissaoRMD()); - registro.setCodigoParticipante(base.getCodigoParticipante()); + registro.setCodigoParticipante(base.getDocumentoCancelado() ? base.getCodigoParticipantePar() : base.getCodigoParticipante()); registro.setCodigoEstabelecimento(base.getCodigoEstabelecimento()); registro.setNumeroAIDF(base.getNumeroAIDFRMD()); registro.setSerieAIDF(base.getSerieAIDFRMD());