From a2e906022076b068b39a22ea41588817f8dd5224 Mon Sep 17 00:00:00 2001 From: julio Date: Wed, 20 Sep 2017 02:41:24 +0000 Subject: [PATCH] bug #9608 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@74012 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../dao/hibernate/FiscalHibernateDAO.java | 408 +++++++++++------- 1 file changed, 250 insertions(+), 158 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java index 6f06d23e0..20a7fa735 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/FiscalHibernateDAO.java @@ -3670,22 +3670,24 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO List list = new ArrayList(); try { String sql = null; - if (isECF && !isCancelamento) { - sql = getSqlImpressaoRMDTipoECF(); - - } else if (isManual && !isCancelamento) { - sql = getSqlImpressaoRMDTipoBPR(); - - } else if (isCancelamento) { - sql = getSqlCancelarRMDTipoECF(isManual, isECF); + if (isECF) { + sql = getSqlImpressaoRMDTipoECF(isCancelamento); + } else if (isManual) { + sql = getSqlImpressaoRMDTipoBPR(isManual); } NamedParameterStatement ps = new NamedParameterStatement(connection, sql); ps.getStatement().setFetchSize(100); ps.setInt("EMPRESA_ID", empresaId); + ps.setString("CVEESTADO", cveestado); + + if (isECF) { + ps.setString("DATE_INICIO_STR", DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)); + ps.setString("DATE_FIM_STR", DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); + } + ps.setTimestamp("DATE_INICIO", new java.sql.Timestamp(DateUtil.inicioFecha(inicio).getTime())); ps.setTimestamp("DATE_FIM", new java.sql.Timestamp(DateUtil.fimFecha(fim).getTime())); - ps.setString("CVEESTADO", cveestado); if (isCancelamento) { ps.setLong("RMD_ID", rmdId); @@ -3754,9 +3756,9 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO return list; } - private String getSqlImpressaoRMDTipoBPR() { + private String getSqlImpressaoRMDTipoBPR(boolean isCancelamento) { StringBuilder sql = new StringBuilder(); - sql.append("select "); + sql.append("select distinct "); sql.append(" b.caja_id as cajaId, "); sql.append(" b.numoperacion as numoperacion, "); sql.append(" b.numseriepreimpresa as serieCompl, "); @@ -3828,7 +3830,7 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" b.tipoventa_id = 3 "); sql.append(" and b.rmd_id is null "); sql.append(" and b.indstatusboleto = 'V' "); - sql.append(" and e.empresa_id = :EMPRESA_ID "); + sql.append(" and b.empresacorrida_id = :EMPRESA_ID "); sql.append(" and b.feccreacion between :DATE_INICIO and :DATE_FIM "); sql.append(" and coalesce(ae.cveestado, eos.cveestado) = :CVEESTADO "); sql.append("order by estadoId, fechorVenta, nombPuntoVenta, numPuntoVenta "); @@ -3836,17 +3838,17 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO return sql.toString(); } - private String getSqlImpressaoRMDTipoECF() { + private String getSqlImpressaoRMDTipoECF(boolean isCancelamento) { StringBuilder sql = new StringBuilder(); - sql.append("select "); - sql.append(" b.caja_id as cajaId, "); + sql.append("select distinct "); + sql.append(" r4.caja_id as cajaId, "); sql.append(" b.numoperacion as numoperacion, "); sql.append(" b.numseriepreimpresa as serieCompl, "); sql.append(" b.numfoliopreimpreso as folio, "); sql.append(" a.acfiscal as numAidf, "); - sql.append(" a.serie as serieAidf, "); - sql.append(" a.subserie as subSerieAidf, "); + sql.append(" a.serie as serieAidf, "); + sql.append(" a.subserie as subSerieAidf, "); sql.append(" trunc(b.feccreacion) as fechorVenta, "); sql.append(" e.nombempresa as empresa, "); sql.append(" coalesce(ie.cnpj, e.cnpj) as cnpjEmpresa, "); @@ -3859,22 +3861,18 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" pv.numpuntoventa as numPuntoVenta, "); sql.append(" ie.numinscricaoestadual as ieEmpresa, "); sql.append(" coalesce(eos.estado_id, eo.estado_id) as estadoId, "); - sql.append(" coalesce(ei.icms, eo.icms) as icmsInterestadual, "); - sql.append(" ei.icmsim as icmsIntermunicipal, "); + 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))) "); - sql.append(" then 0 else 1 "); - sql.append(" end as isInterEstadual, "); - sql.append(" ei.porcredbaseicms as redBaseCalcIcms, "); - sql.append(" ei.porcredmunicipal as porcRedMunicipal, "); - sql.append(" ei.porcredestadual as porcRedEstadual, "); - sql.append(" ei.tributacaoimportacao as tributacaoImportacao, "); + sql.append(" case when((coalesce(eos.cveestado, eo.cveestado)) = (coalesce(eds.cveestado, ed.cveestado))) then 0 else 1 end as isInterEstadual, "); + sql.append(" eis.porcredbaseicms as redBaseCalcIcms, "); + sql.append(" eis.porcredmunicipal as porcRedMunicipal, "); + sql.append(" eis.porcredestadual as porcRedEstadual, "); + sql.append(" eis.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(" coalesce(pds.regionmetropolitana_id, pd.regionmetropolitana_id, -2)) then 1 else 0 end as isenta, "); sql.append(" coalesce(b.preciopagado, 0) as tarifa, "); sql.append(" coalesce(b.importetaxaembarque, 0) as taxaEmbarque, "); sql.append(" coalesce(b.importepedagio, 0) as pedagio, "); @@ -3886,10 +3884,13 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" r4.contador as ccf, "); sql.append(" r4.impsubtotal as totalFiscal, "); sql.append(" r2.coo as cooredz, "); - sql.append(" epv.cveestado as estadoImpressora "); + sql.append(" epv.cveestado as estadoImpressora ").append(isCancelamento ? ", " : " "); + sql.append(isCancelamento ? " b.rmd_id as rmd_id, " : " "); + sql.append(isCancelamento ? " b.foliormd as foliormd " : " "); sql.append("from fiscal_r4 r4 "); - sql.append(" join fiscal_r2 r2 on r4.numserie20 = r2.numserie20 and r4.datamov = r2.datamov "); - sql.append(" join caja b on b.caja_id = r4.caja_id "); + sql.append(" join fiscal_r2 r2 on r2.numserie20 = r4.numserie20 and r2.datamov = r4.datamov "); + sql.append(" join fiscal_impressora imp on imp.numserie20 = r4.numserie20 "); + sql.append(" join boleto b on b.boleto_id = r4.boleto_id "); sql.append(" join marca m on b.marca_id = m.marca_id "); sql.append(" join empresa e on e.empresa_id = m.empresa_id "); sql.append(" join ciudad ce on ce.ciudad_id = e.ciudad_id "); @@ -3898,37 +3899,41 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" left join parada ppv on ppv.parada_id = pv.parada_id "); sql.append(" left join ciudad cpv on cpv.ciudad_id = ppv.ciudad_id "); sql.append(" left join estado epv on epv.estado_id = cpv.estado_id "); + sql.append(" join boleto b on b.boleto_id = r4.boleto_id "); sql.append(" join parada po on po.parada_id = b.origen_id "); sql.append(" join ciudad co on co.ciudad_id = po.ciudad_id "); sql.append(" join estado eo on eo.estado_id = co.estado_id "); sql.append(" join parada pd on pd.parada_id = b.destino_id "); sql.append(" join ciudad cd on cd.ciudad_id = pd.ciudad_id "); sql.append(" join estado ed on ed.estado_id = cd.estado_id "); - sql.append(" left join alias_servico s on s.origen_id = b.origen_id "); - sql.append(" and s.destino_id = b.destino_id and (s.corrida_id = b.corrida_id or s.corrida_id is null) "); - sql.append(" and s.ruta_id = b.ruta_id "); + sql.append(" join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id and ei.estado_id = co.estado_id "); + sql.append(" left join alias_servico s on s.origen_id = b.origen_id and s.destino_id = b.destino_id and (s.corrida_id = b.corrida_id or s.corrida_id is null) and s.ruta_id = b.ruta_id "); sql.append(" left join parada pos on pos.parada_id = s.aliasorigen_id "); sql.append(" left join ciudad cos on cos.ciudad_id = pos.ciudad_id "); sql.append(" left join estado eos on eos.estado_id = cos.estado_id "); 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(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = cos.estado_id and eis.activo = 1 "); + sql.append(" left join estado e on e.estado_id = imp.estadolocal_id "); sql.append(" join inscricao_estadual ie on e.empresa_id = ie.empresa_id "); sql.append(" and ie.estado_id = coalesce(eos.estado_id, eo.estado_id) and ie.activo = 1 "); sql.append(" join ciudad cie on cie.ciudad_id = ie.ciudad_id "); sql.append(" join estado eie on eie.estado_id = cie.estado_id "); - sql.append(" join empresa_imposto ei on ei.empresa_id = e.empresa_id "); - sql.append(" and ei.estado_id = coalesce(eos.estado_id, eo.estado_id) and ei.activo = 1 "); sql.append(" left join aidf a on a.aidf_id = b.aidf_id "); - sql.append("where b.tipoventa_id <> 3 "); - sql.append(" and b.rmd_id is null "); - sql.append(" and e.empresa_id = :EMPRESA_ID "); - sql.append(" and b.feccreacion between :DATE_INICIO and :DATE_FIM "); - sql.append(" and coalesce(eos.cveestado, eo.cveestado) = :CVEESTADO "); + sql.append("where b.activo = 1 "); + sql.append(isCancelamento ? "" : " and b.rmd_id is null "); + sql.append(" and nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 "); + sql.append(" and coalesce(r4.indcancelamento, 'N') <> 'S' "); + sql.append(" and r4.datamov >= :DATE_INICIO_STR and r4.datamov <= :DATE_FIM_STR "); + sql.append(" and b.empresacorrida_id = :EMPRESA_ID "); + sql.append(" and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = :CVEESTADO ) "); + sql.append(isCancelamento ? " and b.rmd_id = :RMD_ID " : " "); + sql.append(isCancelamento ? " and b.foliormd between :FOLIO_INICIAL and :FOLIO_FINAL " : " "); sql.append(" "); sql.append(" union "); sql.append(" "); - sql.append("select "); + sql.append("select distinct "); sql.append(" b.caja_id as cajaId, "); sql.append(" b.numoperacion as numoperacion, "); sql.append(" b.numseriepreimpresa as serieCompl, "); @@ -4011,105 +4016,21 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" and ei.estado_id = coalesce(eos.estado_id, eo.estado_id) and ei.activo = 1 "); sql.append(" left join aidf a on a.aidf_id = b.aidf_id "); sql.append("where b.tipoventa_id <> 3 "); - sql.append(" and b.rmd_id is null "); + sql.append(isCancelamento ? "" : " and b.rmd_id is null "); sql.append(" and b.preciopagado > 0 "); sql.append(" and b.serieimpfiscal is not null and r4.caja_id is null "); - sql.append(" and ((b.indreimpresion = 0 and b.motivocancelacion_id is null and b.numfoliosistema is not null) "); - sql.append(" or (b.indstatusboleto = 'E' and b.indreimpresion = 1)) "); - sql.append(" and e.empresa_id = :EMPRESA_ID "); + sql.append(" and ((b.indreimpresion = 0 and b.motivocancelacion_id is null and b.numfoliosistema is not null) or (b.indstatusboleto = 'E' and b.indreimpresion = 1)) "); + sql.append(" and b.empresacorrida_id = :EMPRESA_ID "); sql.append(" and b.feccreacion between :DATE_INICIO and :DATE_FIM "); - sql.append(" and coalesce(eos.cveestado, eo.cveestado) = :CVEESTADO "); + sql.append(" and ((CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) = :CVEESTADO ) "); + sql.append(isCancelamento ? " and b.rmd_id = :RMD_ID " : " "); + sql.append(isCancelamento ? " and b.foliormd between :FOLIO_INICIAL and :FOLIO_FINAL " : " "); sql.append(" "); sql.append("order by estadoId, datamov, ecf, coo "); return sql.toString(); } - private String getSqlCancelarRMDTipoECF(boolean isManual, boolean isECF) { - - StringBuilder sql = new StringBuilder(); - sql.append("select "); - sql.append(" b.caja_id as cajaId, "); - sql.append(" b.numoperacion as numoperacion, "); - sql.append(" b.numseriepreimpresa as serieCompl, "); - sql.append(" b.numfoliopreimpreso as folio, "); - sql.append(" a.acfiscal as numAidf, "); - sql.append(" a.serie as serieAidf, "); - sql.append(" a.subserie as subSerieAidf, "); - sql.append(" trunc(b.feccreacion) as fechorVenta, "); - sql.append(" e.nombempresa as empresa, "); - sql.append(" e.cnpj as cnpjEmpresa, "); - sql.append(" case when ie.logradouro is null "); - sql.append(" then (e.logradouro || ', ' || e.numero || ' - ' || e.bairro || ', ' || ce.nombciudad "); - sql.append(" || ' - ' || ee.cveestado || ', ' || e.cep ) "); - sql.append(" else (ie.logradouro || ', ' || ie.numero || ' - ' || ie.bairro || ', ' || cie.nombciudad "); - sql.append(" || ' - ' || eie.cveestado || ', ' || ie.cep ) end as enderecoEmpresa, "); - sql.append(" pv.nombpuntoventa as nombPuntoVenta, "); - sql.append(" pv.numpuntoventa as numPuntoVenta, "); - sql.append(" ie.numinscricaoestadual as ieEmpresa, "); - sql.append(isManual ? "coalesce(ae.estado_id, eos.estado_id)" : "coalesce(eos.estado_id, eo.estado_id)").append(" as estadoId, "); - sql.append(" coalesce(ei.icms, eo.icms) as icmsInterestadual, "); - sql.append(" ei.icmsim as icmsIntermunicipal, "); - sql.append(isManual ? "coalesce(ae.cveestado, eos.cveestado)" : "coalesce(eos.cveestado, eo.cveestado)").append(" as estadoOrigem, "); - sql.append(" coalesce(eds.cveestado, ed.cveestado) as estadoDestino, "); - sql.append(" coalesce(cos.codibge, co.codibge) as municipioOrigem, "); - sql.append(isManual ? "case when(coalesce(ae.cveestado, eos.cveestado)) = ed.cveestado" : ""); - sql.append(isECF ? "case when((coalesce(eos.cveestado, eo.cveestado)) = (coalesce(eds.cveestado, ed.cveestado)))" : ""); - sql.append(" 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, "); - 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(" coalesce(b.preciopagado, 0) as tarifa, "); - sql.append(" coalesce(b.importetaxaembarque, 0) as taxaEmbarque, "); - sql.append(" coalesce(b.importepedagio, 0) as pedagio, "); - sql.append(" coalesce(b.importeseguro, 0) as seguro, "); - sql.append(" coalesce(b.importeoutros, 0) as outros, "); - sql.append(" b.rmd_id as rmd_id, "); - sql.append(" b.foliormd as foliormd "); - sql.append("from caja b "); - sql.append(isECF ? " inner " : " left ").append(" join fiscal_r4 r4 on b.caja_id = r4.caja_id "); - sql.append(isECF ? " inner " : " left ").append(" join fiscal_r2 r2 on r4.numserie20 = r2.numserie20 and r4.datamov = r2.datamov "); - sql.append(" inner join marca m on b.marca_id = m.marca_id "); - sql.append(" inner join empresa e on e.empresa_id = m.empresa_id "); - sql.append(" join punto_venta pv on pv.puntoventa_id = b.puntoventa_id "); - sql.append(" join ciudad ce on ce.ciudad_id = e.ciudad_id "); - sql.append(" join estado ee on ee.estado_id = ce.estado_id "); - sql.append(" join parada po on po.parada_id = b.origen_id "); - sql.append(" join ciudad co on co.ciudad_id = po.ciudad_id "); - sql.append(" join estado eo on eo.estado_id = co.estado_id "); - sql.append(" join parada pd on pd.parada_id = b.destino_id "); - sql.append(" join ciudad cd on cd.ciudad_id = pd.ciudad_id "); - sql.append(" join estado ed on ed.estado_id = cd.estado_id "); - sql.append(" left join alias_servico s on s.origen_id = b.origen_id "); - sql.append(" and s.destino_id = b.destino_id and (s.corrida_id = b.corrida_id or s.corrida_id is null) "); - sql.append(" and s.ruta_id = b.ruta_id "); - sql.append(" left join parada pos on pos.parada_id = s.aliasorigen_id "); - sql.append(" left join ciudad cos on cos.ciudad_id = pos.ciudad_id "); - sql.append(" left join estado eos on eos.estado_id = cos.estado_id "); - 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(isManual ? " inner " : " left ").append(" join aidf a on a.aidf_id = b.aidf_id "); - sql.append(isManual ? " left join estado ae on ae.estado_id = a.estado_id " : " "); - sql.append(" join inscricao_estadual ie on e.empresa_id = ie.empresa_id and ie.activo = 1 and ie.estado_id = "); - sql.append(isManual ? "coalesce(ae.estado_id, eos.estado_id)" : "coalesce(eos.estado_id, eo.estado_id)"); - sql.append(" join ciudad cie on cie.ciudad_id = ie.ciudad_id "); - sql.append(" join estado eie on eie.estado_id = cie.estado_id "); - sql.append(" left join empresa_imposto ei on ei.empresa_id = b.empresacorrida_id and ei.activo = 1 and ei.estado_id = "); - sql.append(isManual ? "coalesce(ae.estado_id, eos.estado_id)" : "coalesce(eos.estado_id, eo.estado_id)"); - sql.append("where e.empresa_id = :EMPRESA_ID "); - sql.append(" and b.feccreacion between :DATE_INICIO and :DATE_FIM "); - sql.append(" and coalesce ").append(isManual ? "(ae.cveestado, eos.cveestado)" : "(eos.cveestado, eo.cveestado)").append(" = :CVEESTADO "); - sql.append(" and b.rmd_id = :RMD_ID "); - sql.append(" and b.foliormd between :FOLIO_INICIAL and :FOLIO_FINAL "); - - return sql.toString(); - } - @Override public List buscarRelatorioRDI(Connection connection, Date inicio, Date fim, Integer empresaId, List estados, boolean isReceitaTerceiros) { @@ -4314,6 +4235,9 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO ps.setTimestamp("DATE_INICIO", new java.sql.Timestamp(DateUtil.inicioFecha(inicio).getTime())); ps.setTimestamp("DATE_FIM", new java.sql.Timestamp(DateUtil.fimFecha(fim).getTime())); + ps.setString("DATE_INICIO_STR", DateUtil.getStringDate(inicio, DATE_FORMAT_FISCAL)); + ps.setString("DATE_FIM_STR", DateUtil.getStringDate(fim, DATE_FORMAT_FISCAL)); + ResultSet rs = ps.executeQuery(); while (rs.next()) { @@ -4363,33 +4287,33 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO } private String sqlRelatorioRDIVendidos(String ufs) { - - StringBuilder sql = new StringBuilder(); - sql.append("select "); + + StringBuffer sql = new StringBuffer(); + sql.append("select distinct "); sql.append(" b.caja_id as cajaId, "); sql.append(" 'REC' as tipoReceita, "); sql.append(" b.numoperacion as numoperacion, "); sql.append(" trunc(b.feccreacion) as fechorVenta, "); sql.append(" coalesce(eos.estado_id, eo.estado_id) as estadoId, "); - sql.append(" coalesce(ei.icms, eo.icms) as icmsInterestadual, "); - sql.append(" ei.icmsim as icmsIntermunicipal, "); + 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(" ei.porcredbaseicms as redBaseCalcIcms, "); - sql.append(" ei.porcredmunicipal as porcRedMunicipal, "); - sql.append(" ei.porcredestadual as porcRedEstadual, "); - sql.append(" coalesce(ei.indtarifamunicipal, 0) as indtarifamunicipal, "); - sql.append(" coalesce(ei.indseguromunicipal, 0) as indseguromunicipal, "); - sql.append(" coalesce(ei.indtxembarquemunicipal, 0) as indtxembarquemunicipal, "); - sql.append(" coalesce(ei.indpedagiomunicipal, 0) as indpedagiomunicipal, "); - sql.append(" coalesce(ei.indtarifaestadual, 0) as indtarifaestadual, "); - 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(" 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(" coalesce(b.preciopagado, 0) as tarifa, "); @@ -4397,10 +4321,17 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO sql.append(" coalesce(b.importepedagio, 0) as pedagio, "); sql.append(" coalesce(b.importeseguro, 0) as seguro, "); sql.append(" coalesce(b.importeoutros, 0) as outros, "); - sql.append(" to_char(trunc(b.feccreacion), 'yyyymmdd') as datamov "); + sql.append(" coalesce(r4.datamov, to_char(trunc(b.feccreacion), 'yyyymmdd')) as datamov "); sql.append("from caja b "); + sql.append(" left join fiscal_r4 r4 on b.caja_id = r4.caja_id "); sql.append(" join marca m on b.marca_id = m.marca_id "); sql.append(" join empresa e on e.empresa_id = m.empresa_id "); + sql.append(" join ciudad ce on ce.ciudad_id = e.ciudad_id "); + sql.append(" join estado ee on ee.estado_id = ce.estado_id "); + sql.append(" join punto_venta pv on pv.puntoventa_id = b.puntoventa_id "); + sql.append(" left join parada ppv on ppv.parada_id = pv.parada_id "); + sql.append(" left join ciudad cpv on cpv.ciudad_id = ppv.ciudad_id "); + sql.append(" left join estado epv on epv.estado_id = cpv.estado_id "); sql.append(" join parada po on po.parada_id = b.origen_id "); sql.append(" join ciudad co on co.ciudad_id = po.ciudad_id "); sql.append(" join estado eo on eo.estado_id = co.estado_id "); @@ -4418,16 +4349,177 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO 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, eo.estado_id) and ie.activo = 1 "); + sql.append(" join ciudad cie on cie.ciudad_id = ie.ciudad_id "); + sql.append(" join estado eie on eie.estado_id = cie.estado_id "); + sql.append(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = cos.estado_id and eis.activo = 1 "); + sql.append(" "); sql.append(" join empresa_imposto ei on ei.empresa_id = e.empresa_id "); sql.append(" and ei.estado_id = coalesce(eos.estado_id, eo.estado_id) and ei.activo = 1 "); - sql.append("where ((b.serieimpfiscal is not null and b.tipoventa_id <> 3) or b.tipoventa_id = 3 ) "); - sql.append(" and b.indcancelacion = 0 "); - sql.append(" and b.motivocancelacion_id is null "); - sql.append(" and b.numseriepreimpresa is not null "); - sql.append(" and e.empresa_id = :EMPRESA_ID "); + sql.append(" "); + sql.append("where b.activo = 1 "); + sql.append(" "); + sql.append(" and b.serieimpfiscal is not null and r4.caja_id is null "); + sql.append(" and ((b.indreimpresion = 0 and b.motivocancelacion_id is null and b.numfoliosistema is not null) or (b.indstatusboleto = 'E' and b.indreimpresion = 1)) "); + sql.append(" and b.empresacorrida_id = :EMPRESA_ID "); sql.append(" and b.feccreacion between :DATE_INICIO and :DATE_FIM "); - sql.append(" and coalesce(eos.cveestado, eo.cveestado) in ( ").append(ufs).append(" ) "); - + sql.append(" and nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 "); + sql.append(" and (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) in ( ").append(ufs).append(" ) "); + sql.append(" "); + sql.append(" "); + sql.append("union "); + sql.append(" "); + sql.append("select distinct "); + sql.append(" b.caja_id as cajaId, "); + sql.append(" 'REC' as tipoReceita, "); + sql.append(" b.numoperacion as numoperacion, "); + sql.append(" trunc(b.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(" coalesce(b.preciopagado, 0) as tarifa, "); + sql.append(" coalesce(b.importetaxaembarque, 0) as taxaEmbarque, "); + sql.append(" coalesce(b.importepedagio, 0) as pedagio, "); + sql.append(" coalesce(b.importeseguro, 0) as seguro, "); + sql.append(" coalesce(b.importeoutros, 0) as outros, "); + sql.append(" coalesce(r4.datamov, to_char(trunc(b.feccreacion), 'yyyymmdd')) as datamov "); + sql.append("from caja b "); + sql.append(" left join fiscal_r4 r4 on b.caja_id = r4.caja_id "); + sql.append(" join marca m on b.marca_id = m.marca_id "); + sql.append(" join empresa e on e.empresa_id = m.empresa_id "); + sql.append(" join ciudad ce on ce.ciudad_id = e.ciudad_id "); + sql.append(" join estado ee on ee.estado_id = ce.estado_id "); + sql.append(" join punto_venta pv on pv.puntoventa_id = b.puntoventa_id "); + sql.append(" left join parada ppv on ppv.parada_id = pv.parada_id "); + sql.append(" left join ciudad cpv on cpv.ciudad_id = ppv.ciudad_id "); + sql.append(" left join estado epv on epv.estado_id = cpv.estado_id "); + sql.append(" join parada po on po.parada_id = b.origen_id "); + sql.append(" join ciudad co on co.ciudad_id = po.ciudad_id "); + sql.append(" join estado eo on eo.estado_id = co.estado_id "); + sql.append(" join parada pd on pd.parada_id = b.destino_id "); + sql.append(" join ciudad cd on cd.ciudad_id = pd.ciudad_id "); + sql.append(" join estado ed on ed.estado_id = cd.estado_id "); + sql.append(" left join alias_servico s on s.origen_id = b.origen_id "); + sql.append(" and s.destino_id = b.destino_id and (s.corrida_id = b.corrida_id or s.corrida_id is null) "); + sql.append(" and s.ruta_id = b.ruta_id "); + sql.append(" left join parada pos on pos.parada_id = s.aliasorigen_id "); + sql.append(" left join ciudad cos on cos.ciudad_id = pos.ciudad_id "); + sql.append(" left join estado eos on eos.estado_id = cos.estado_id "); + 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, eo.estado_id) and ie.activo = 1 "); + sql.append(" join ciudad cie on cie.ciudad_id = ie.ciudad_id "); + sql.append(" join estado eie on eie.estado_id = cie.estado_id "); + sql.append(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = cos.estado_id and eis.activo = 1 "); + sql.append(" "); + sql.append(" join empresa_imposto ei on ei.empresa_id = e.empresa_id "); + sql.append(" and ei.estado_id = coalesce(eos.estado_id, eo.estado_id) and ei.activo = 1 "); + sql.append(" "); + sql.append("where b.activo = 1 "); + sql.append(" and b.preciopagado > 0 "); + sql.append(" and b.empresacorrida_id = :EMPRESA_ID "); + sql.append(" and r4.datamov >= :DATE_INICIO_STR and r4.datamov <= :DATE_FIM_STR "); + sql.append(" and (r4.caja_id is not null and coalesce(r4.indcancelamento, 'N') <> 'S') "); + sql.append(" and nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 "); + sql.append(" and (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) in ( ").append(ufs).append(" ) "); + sql.append(" "); + sql.append("union "); + sql.append(" "); + sql.append("select distinct "); + sql.append(" b.caja_id as cajaId, "); + sql.append(" 'REC' as tipoReceita, "); + sql.append(" b.numoperacion as numoperacion, "); + sql.append(" trunc(b.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(" coalesce(b.preciopagado, 0) as tarifa, "); + sql.append(" coalesce(b.importetaxaembarque, 0) as taxaEmbarque, "); + sql.append(" coalesce(b.importepedagio, 0) as pedagio, "); + sql.append(" coalesce(b.importeseguro, 0) as seguro, "); + sql.append(" coalesce(b.importeoutros, 0) as outros, "); + sql.append(" coalesce(r4.datamov, to_char(trunc(b.feccreacion), 'yyyymmdd')) as datamov "); + sql.append("from caja b "); + sql.append(" left join fiscal_r4 r4 on b.caja_id = r4.caja_id "); + sql.append(" join marca m on b.marca_id = m.marca_id "); + sql.append(" join empresa e on e.empresa_id = m.empresa_id "); + sql.append(" join ciudad ce on ce.ciudad_id = e.ciudad_id "); + sql.append(" join estado ee on ee.estado_id = ce.estado_id "); + sql.append(" join punto_venta pv on pv.puntoventa_id = b.puntoventa_id "); + sql.append(" left join parada ppv on ppv.parada_id = pv.parada_id "); + sql.append(" left join ciudad cpv on cpv.ciudad_id = ppv.ciudad_id "); + sql.append(" left join estado epv on epv.estado_id = cpv.estado_id "); + sql.append(" join parada po on po.parada_id = b.origen_id "); + sql.append(" join ciudad co on co.ciudad_id = po.ciudad_id "); + sql.append(" join estado eo on eo.estado_id = co.estado_id "); + sql.append(" join parada pd on pd.parada_id = b.destino_id "); + sql.append(" join ciudad cd on cd.ciudad_id = pd.ciudad_id "); + sql.append(" join estado ed on ed.estado_id = cd.estado_id "); + sql.append(" left join alias_servico s on s.origen_id = b.origen_id "); + sql.append(" and s.destino_id = b.destino_id and (s.corrida_id = b.corrida_id or s.corrida_id is null) "); + sql.append(" and s.ruta_id = b.ruta_id "); + sql.append(" left join parada pos on pos.parada_id = s.aliasorigen_id "); + sql.append(" left join ciudad cos on cos.ciudad_id = pos.ciudad_id "); + sql.append(" left join estado eos on eos.estado_id = cos.estado_id "); + 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, eo.estado_id) and ie.activo = 1 "); + sql.append(" join ciudad cie on cie.ciudad_id = ie.ciudad_id "); + sql.append(" join estado eie on eie.estado_id = cie.estado_id "); + sql.append(" left join empresa_imposto eis on eis.empresa_id = b.empresacorrida_id and eis.estado_id = cos.estado_id and eis.activo = 1 "); + sql.append(" "); + sql.append(" join empresa_imposto ei on ei.empresa_id = e.empresa_id "); + sql.append(" and ei.estado_id = coalesce(eos.estado_id, eo.estado_id) and ei.activo = 1 "); + sql.append(" "); + sql.append("where b.activo = 1 "); + sql.append(" and r4.caja_id is null and b.tipoventa_id = 3 "); + sql.append(" and ((b.indreimpresion = 0 and b.motivocancelacion_id is null and b.numfoliosistema is not null) or (b.indstatusboleto = 'E' and b.indreimpresion = 1)) "); + sql.append(" and b.empresacorrida_id = :EMPRESA_ID "); + sql.append(" and b.feccreacion between :DATE_INICIO and :DATE_FIM "); + sql.append(" and nvl(CASE WHEN s.aliasorigen_id IS NULL THEN ei.activo ELSE eis.activo END, 0) = 1 "); + sql.append(" and (CASE WHEN s.aliasorigen_id IS NULL THEN eo.cveestado ELSE eos.cveestado END) in ( ").append(ufs).append(" ) "); + return sql.toString(); }