bug#11600

dev: julio
qua:

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@85402 d1611594-4594-4d17-8e1d-87c2c4800839
master
julio 2018-09-14 15:07:15 +00:00
parent 921eb5398a
commit d489fe9a88
5 changed files with 110 additions and 47 deletions

View File

@ -69,4 +69,7 @@ public interface FiscalDAO {
public void cancelarRMDBoleto(Connection connection, Date inicio, Date fim, Integer empresaId, Estado estado, Aidf aidf, String folioInicial, String folioFinal, boolean isCancela, boolean isInativa, boolean isECF, boolean isBPR); public void cancelarRMDBoleto(Connection connection, Date inicio, Date fim, Integer empresaId, Estado estado, Aidf aidf, String folioInicial, String folioFinal, boolean isCancela, boolean isInativa, boolean isECF, boolean isBPR);
public List<FiscalRdi> buscarRelatorioRDI(Connection connection, Date inicio, Date fim, Integer empresaId, List<Estado> estados, boolean isReceitaTerceiros); public List<FiscalRdi> buscarRelatorioRDI(Connection connection, Date inicio, Date fim, Integer empresaId, List<Estado> estados, boolean isReceitaTerceiros);
public void limparCache(Connection connection);
} }

View File

@ -396,7 +396,6 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
String vBC = null; String vBC = null;
String pICMS = null; String pICMS = null;
String vICMS = null; String vICMS = null;
String pRedBC = null;
if (StringUtils.isNotBlank(xml)) { if (StringUtils.isNotBlank(xml)) {
if (tbpe.getInfBPe().getImp().getICMS().getICMS00() != null) { if (tbpe.getInfBPe().getImp().getICMS().getICMS00() != null) {
@ -407,7 +406,6 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
vBC = tbpe.getInfBPe().getImp().getICMS().getICMS20().getVBC(); vBC = tbpe.getInfBPe().getImp().getICMS().getICMS20().getVBC();
pICMS = tbpe.getInfBPe().getImp().getICMS().getICMS20().getPICMS(); pICMS = tbpe.getInfBPe().getImp().getICMS().getICMS20().getPICMS();
vICMS = tbpe.getInfBPe().getImp().getICMS().getICMS20().getVICMS(); vICMS = tbpe.getInfBPe().getImp().getICMS().getICMS20().getVICMS();
pRedBC = tbpe.getInfBPe().getImp().getICMS().getICMS20().getPRedBC();
} }
if (tbpe.getInfBPe().getInfValorBPe() != null) { if (tbpe.getInfBPe().getInfValorBPe() != null) {
@ -454,7 +452,6 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
aliquotaAnt = aliquota; aliquotaAnt = aliquota;
BigDecimal icms = new BigDecimal(vICMS == null ? "0.0" : vICMS); BigDecimal icms = new BigDecimal(vICMS == null ? "0.0" : vICMS);
BigDecimal outros = new BigDecimal(pRedBC == null ? "0.0" : pRedBC);
BigDecimal cp = null; BigDecimal cp = null;
if (isEstadual) { if (isEstadual) {
@ -465,8 +462,8 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
BigDecimal credPres = icms.multiply(cp.divide(BigDecimal.TEN.multiply(BigDecimal.TEN))); BigDecimal credPres = icms.multiply(cp.divide(BigDecimal.TEN.multiply(BigDecimal.TEN)));
BigDecimal icmsRec = icms.subtract(credPres); BigDecimal icmsRec = icms.subtract(credPres);
BigDecimal vRedBC = det.getRedBaseCalcIcms();
BigDecimal vRedBC = new BigDecimal(pRedBC == null ? "0.0" : pRedBC); BigDecimal outros = isentos.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : passagem.subtract(isentos).subtract(baseCalculo);
rdis.add(new FiscalRdi(det.getEstadoOrigem(), tipoViagem, det.getTipoReceita(), tarifa, rdis.add(new FiscalRdi(det.getEstadoOrigem(), tipoViagem, det.getTipoReceita(), tarifa,
seguro, taxaEmbarque, pedagio, passagem, isentos, outros, vRedBC, seguro, taxaEmbarque, pedagio, passagem, isentos, outros, vRedBC,

View File

@ -29,8 +29,10 @@ import org.springframework.stereotype.Repository;
import com.rjconsultores.ventaboletos.dao.FiscalDAO; import com.rjconsultores.ventaboletos.dao.FiscalDAO;
import com.rjconsultores.ventaboletos.entidad.Aidf; import com.rjconsultores.ventaboletos.entidad.Aidf;
import com.rjconsultores.ventaboletos.entidad.Constante;
import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida; import com.rjconsultores.ventaboletos.entidad.EsquemaCorrida;
import com.rjconsultores.ventaboletos.entidad.Estado; import com.rjconsultores.ventaboletos.entidad.Estado;
import com.rjconsultores.ventaboletos.service.ConstanteService;
import com.rjconsultores.ventaboletos.utilerias.DateUtil; import com.rjconsultores.ventaboletos.utilerias.DateUtil;
import com.rjconsultores.ventaboletos.utilerias.MoneyHelper; import com.rjconsultores.ventaboletos.utilerias.MoneyHelper;
import com.rjconsultores.ventaboletos.utilerias.StringHelper; import com.rjconsultores.ventaboletos.utilerias.StringHelper;
@ -62,12 +64,12 @@ import com.rjconsultores.ventaboletos.vo.impressaofiscal.ImportacionNaoFiscalVO;
import com.rjconsultores.ventaboletos.vo.impressaofiscal.ItemFiscalVO; import com.rjconsultores.ventaboletos.vo.impressaofiscal.ItemFiscalVO;
import com.rjconsultores.ventaboletos.vo.impressaofiscal.SituacaoTributaria; import com.rjconsultores.ventaboletos.vo.impressaofiscal.SituacaoTributaria;
import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement;
import com.rjconsultores.ventaboletos.web.utilerias.spring.AppContext;
@Repository("fiscalDAO") @Repository("fiscalDAO")
public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO { public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO {
private static final String DATE_FORMAT_FISCAL = "yyyyMMdd"; private static final String DATE_FORMAT_FISCAL = "yyyyMMdd";
private static final String DATE_FORMAT_DMY = "dd/MM/yyyy"; private static final String DATE_FORMAT_DMY = "dd/MM/yyyy";
private static final BigDecimal ZERO = BigDecimal.ZERO;
private static final String CODIGO_INDICADOR_CONTR_PREVIDENCIARIA = "00000060"; private static final String CODIGO_INDICADOR_CONTR_PREVIDENCIARIA = "00000060";
@ -1419,6 +1421,32 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
return exportacaoECF; return exportacaoECF;
} }
public void limparCache(Connection connection) {
ConstanteService constanteService = (ConstanteService) AppContext.getApplicationContext().getBean("constanteService");
Constante contante = constanteService.buscarPorNomeConstante("LIMPA_CACHE_RELATORIOS");
String command = null;
if ((contante != null && (StringUtils.isNotBlank(contante.getValorconstante())))) {
command = contante.getValorconstante();
PreparedStatement pstmt = null;
try {
pstmt = connection.prepareStatement(command);
pstmt.executeBatch();
} catch (Exception e) {
log.error("", e);
} finally {
try {
if (pstmt != null && !pstmt.isClosed()) {
pstmt.close();
}
} catch (Exception e) {
log.error("", e);
}
}
}
}
@Deprecated @Deprecated
@Override @Override
public List<ExportacaoECFTipoCFC> buscarRegistroECFTipoCFC(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) { public List<ExportacaoECFTipoCFC> buscarRegistroECFTipoCFC(Connection connection, Date inicio, Date fim, Integer empresaId, String cveestado) {
@ -4034,8 +4062,8 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
for (DetalhadoFiscal det : list) { for (DetalhadoFiscal det : list) {
BigDecimal passagem = BigDecimal.ZERO; BigDecimal passagem = valorPassagem(det, isReceitaTerceiros);
BigDecimal isentos = BigDecimal.ZERO; BigDecimal isentos = valorIsenta(det, isReceitaTerceiros);
BigDecimal outros = BigDecimal.ZERO; BigDecimal outros = BigDecimal.ZERO;
BigDecimal rbc = BigDecimal.ZERO; BigDecimal rbc = BigDecimal.ZERO;
BigDecimal baseCalculo = BigDecimal.ZERO; BigDecimal baseCalculo = BigDecimal.ZERO;
@ -4045,55 +4073,44 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
BigDecimal credPres = BigDecimal.ZERO; BigDecimal credPres = BigDecimal.ZERO;
BigDecimal icmsRec = BigDecimal.ZERO; BigDecimal icmsRec = BigDecimal.ZERO;
if (det.getIsenta()) { if (det.isInterEstadual()) {
isentos = somarTotalBilhete(det, isReceitaTerceiros); aliquota = det.getTributacaoImportacao() != null ? det.getTributacaoImportacao() : det.getIcmsInterestadual();
} else { } else {
passagem = somarTotalBilhete(det, isReceitaTerceiros); aliquota = det.getTributacaoImportacao() != null ? det.getTributacaoImportacao() : det.getIcmsIntermunicipal();
if (det.isInterEstadual()) {
aliquota = det.getTributacaoImportacao() != null ? det.getTributacaoImportacao() : det.getIcmsInterestadual();
} else {
aliquota = det.getTributacaoImportacao() != null ? det.getTributacaoImportacao() : det.getIcmsIntermunicipal();
}
if (det.isInterEstadual()) {
cp = det.getPorcRedEstadual() == null ? BigDecimal.ZERO : det.getPorcRedEstadual();
} else {
cp = det.getPorcRedMunicipal() == null ? BigDecimal.ZERO : det.getPorcRedMunicipal();
}
rbc = det.getRedBaseCalcIcms() == null ? BigDecimal.ZERO : det.getRedBaseCalcIcms().divide(UtiliteriasFiscal.CEM);
BigDecimal redutor = passagem.multiply(rbc);
baseCalculo = passagem.subtract(redutor);
icms = baseCalculo.multiply(aliquota.divide(BigDecimal.TEN.multiply(BigDecimal.TEN)));
credPres = icms.multiply(cp.divide(BigDecimal.TEN.multiply(BigDecimal.TEN)));
icmsRec = icms.subtract(credPres);
} }
if (det.isInterEstadual()) {
cp = det.getPorcRedEstadual() == null ? BigDecimal.ZERO : det.getPorcRedEstadual();
} else {
cp = det.getPorcRedMunicipal() == null ? BigDecimal.ZERO : det.getPorcRedMunicipal();
}
rbc = det.getRedBaseCalcIcms() == null ? BigDecimal.ZERO : det.getRedBaseCalcIcms().divide(UtiliteriasFiscal.CEM);
BigDecimal tarifa = valorBaseCalculo(det, isReceitaTerceiros);
BigDecimal redutor = tarifa.multiply(rbc);
baseCalculo = tarifa.subtract(redutor);
icms = baseCalculo.multiply(aliquota.divide(BigDecimal.TEN.multiply(BigDecimal.TEN)));
credPres = icms.multiply(cp.divide(BigDecimal.TEN.multiply(BigDecimal.TEN)));
icmsRec = icms.subtract(credPres);
outros = isentos.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : passagem.subtract(isentos).subtract(baseCalculo); outros = isentos.equals(BigDecimal.ZERO) ? BigDecimal.ZERO : passagem.subtract(isentos).subtract(baseCalculo);
String tipoViagem = null; String tipoViagem = det.isInterEstadual() ? "IE" : "IM";
if (det.isInterEstadual()) { BigDecimal taxaEmbarque = isReceitaTerceiros && det.getTaxaEmbarque() == null ? BigDecimal.ZERO : det.getTaxaEmbarque();
tipoViagem = "IE"; BigDecimal pedagio = isReceitaTerceiros && det.getPedagio() == null ? BigDecimal.ZERO : det.getPedagio();
} else { BigDecimal seguro = isReceitaTerceiros && det.getSeguro() == null ? BigDecimal.ZERO : det.getSeguro();
tipoViagem = "IM";
}
if (isReceitaTerceiros) { rdis.add(new FiscalRdi(det.getEstadoOrigem(), tipoViagem, det.getTipoReceita(), det.getTarifa(),
rdis.add(new FiscalRdi(det.getEstadoOrigem(), tipoViagem, det.getTipoReceita(), det.getTarifa(), seguro, taxaEmbarque, pedagio, passagem, isentos, outros, det.getRedBaseCalcIcms(),
det.getSeguro(), det.getTaxaEmbarque(), det.getPedagio(), passagem, isentos, outros, det.getRedBaseCalcIcms(), baseCalculo, aliquota, icms, cp, credPres, icmsRec));
baseCalculo, aliquota, icms, cp, credPres, icmsRec));
} else {
rdis.add(new FiscalRdi(det.getEstadoOrigem(), tipoViagem, det.getTipoReceita(), det.getTarifa(),
ZERO, ZERO, ZERO, passagem, isentos, outros, det.getRedBaseCalcIcms(),
baseCalculo, aliquota, icms, cp, credPres, icmsRec));
}
} }
return rdis; return rdis;
} }
private BigDecimal somarTotalBilhete(DetalhadoFiscal det, boolean isReceitaTerceiros) { private BigDecimal valorBaseCalculo(DetalhadoFiscal det, boolean isReceitaTerceiros) {
BigDecimal total = BigDecimal.ZERO; BigDecimal total = BigDecimal.ZERO;
total = total.add(det.getTarifa() == null ? BigDecimal.ZERO : det.getTarifa()); total = total.add(det.getTarifa() == null ? BigDecimal.ZERO : det.getTarifa());
@ -4109,6 +4126,30 @@ public class FiscalHibernateDAO extends HibernateDaoSupport implements FiscalDAO
return total; return total;
} }
private BigDecimal valorIsenta(DetalhadoFiscal det, boolean isReceitaTerceiros) {
BigDecimal total = BigDecimal.ZERO;
if (isReceitaTerceiros && (det.isInterEstadual() && !det.getIndTxembarqueEstadual() || !det.isInterEstadual() && !det.getIndTxembarqueMunicipal()))
total = total.add(det.getTaxaEmbarque() == null ? BigDecimal.ZERO : det.getTaxaEmbarque());
if (isReceitaTerceiros && (det.isInterEstadual() && !det.getIndPedagioEstdual() || !det.isInterEstadual() && !det.getIndPedagioMunicipal()))
total = total.add(det.getPedagio() == null ? BigDecimal.ZERO : det.getPedagio());
if (isReceitaTerceiros && (det.isInterEstadual() && !det.getIndSeguroEstadual() || !det.isInterEstadual() && !det.getIndSeguroMunicipal()))
total = total.add(det.getSeguro() == null ? BigDecimal.ZERO : det.getSeguro());
return total;
}
private BigDecimal valorPassagem(DetalhadoFiscal det, boolean isReceitaTerceiros) {
BigDecimal total = BigDecimal.ZERO;
total = total.add(det.getTarifa() == null ? BigDecimal.ZERO : det.getTarifa());
total = total.add(det.getTaxaEmbarque() == null ? BigDecimal.ZERO : det.getTaxaEmbarque());
total = total.add(det.getPedagio() == null ? BigDecimal.ZERO : det.getPedagio());
total = total.add(det.getSeguro() == null ? BigDecimal.ZERO : det.getSeguro());
return total;
}
private List<DetalhadoFiscal> montaRelatorioRDI(Connection connection, Date inicio, Date fim, Integer empresaId, String ufs) { private List<DetalhadoFiscal> montaRelatorioRDI(Connection connection, Date inicio, Date fim, Integer empresaId, String ufs) {
List<DetalhadoFiscal> list = new ArrayList<DetalhadoFiscal>(); List<DetalhadoFiscal> list = new ArrayList<DetalhadoFiscal>();

View File

@ -963,6 +963,8 @@ public class FiscalServiceImpl implements FiscalService {
log.info("Tempo na busca dos registros " + tempo); log.info("Tempo na busca dos registros " + tempo);
tempos.add(tempo); tempos.add(tempo);
fiscalDAO.limparCache(connection);
return exportacaoFiscal.gerarArquivoECF(tempos, nomeArquivo, inicio, fim, estado.getCveestado(), empresa.getNombempresa(), listaRegistroECFTipoCFC, listaRegistroECFTipoCCF, listaRegistroECFTipoICF, return exportacaoFiscal.gerarArquivoECF(tempos, nomeArquivo, inicio, fim, estado.getCveestado(), empresa.getNombempresa(), listaRegistroECFTipoCFC, listaRegistroECFTipoCCF, listaRegistroECFTipoICF,
listaRegistroECFTipoPRC); listaRegistroECFTipoPRC);
@ -1048,6 +1050,8 @@ public class FiscalServiceImpl implements FiscalService {
tempo = infoTempo("BPS", begin); tempo = infoTempo("BPS", begin);
log.info("Tempo na busca dos registros " + tempo); log.info("Tempo na busca dos registros " + tempo);
fiscalDAO.limparCache(connection);
return exportacaoFiscal.gerarArquivoRMD(inicio, fim, nomeArquivo, empresa.getNombempresa(), listaRegistroRMDTipoPAR, listaRegistroRMDTipoRMD, listaRegistroRMDTipoBPS, return exportacaoFiscal.gerarArquivoRMD(inicio, fim, nomeArquivo, empresa.getNombempresa(), listaRegistroRMDTipoPAR, listaRegistroRMDTipoRMD, listaRegistroRMDTipoBPS,
listaRegistroRMDTipoDBP, listaRegistroRMDTipoSeqBPS); listaRegistroRMDTipoDBP, listaRegistroRMDTipoSeqBPS);

View File

@ -16,12 +16,14 @@ public class FinanceiroSintetico implements Comparable<FinanceiroSintetico> {
private BigDecimal difTarifaMaior; private BigDecimal difTarifaMaior;
private BigDecimal totalOutrasReceitas; private BigDecimal totalOutrasReceitas;
private BigDecimal txEmb; private BigDecimal txEmb;
private BigDecimal txConveniencia;
private BigDecimal pedagio; private BigDecimal pedagio;
private BigDecimal segFacult; private BigDecimal segFacult;
private BigDecimal totalTerceiros; private BigDecimal totalTerceiros;
private BigDecimal receitaBruta; private BigDecimal receitaBruta;
private BigDecimal devolBPR; private BigDecimal devolBPR;
private BigDecimal devolGAP; private BigDecimal devolGAP;
private BigDecimal devolOCD;
private BigDecimal receitaLiquida; private BigDecimal receitaLiquida;
private BigDecimal despesas; private BigDecimal despesas;
private BigDecimal pgOCD; private BigDecimal pgOCD;
@ -266,4 +268,20 @@ public class FinanceiroSintetico implements Comparable<FinanceiroSintetico> {
this.receitaEb = receitaEb; this.receitaEb = receitaEb;
} }
public BigDecimal getTxConveniencia() {
return txConveniencia;
}
public void setTxConveniencia(BigDecimal txConveniencia) {
this.txConveniencia = txConveniencia;
}
public BigDecimal getDevolOCD() {
return devolOCD;
}
public void setDevolOCD(BigDecimal devolOCD) {
this.devolOCD = devolOCD;
}
} }