diff --git a/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEVo.java b/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEVo.java index 90d8e6398..6242d20b9 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEVo.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/exportacao/bpe/ExportacaoBPEVo.java @@ -104,9 +104,13 @@ public class ExportacaoBPEVo { String vICMS = null; String cst = null; String pRedBC = null; - String vBP = null; String vDesconto = null; + String vPgto = null; + + String vTxEmbarque = null; + String vPedagio = null; + String vSeguro = null; if (StringUtils.isNotBlank(xml)) { if (tbpe.getInfBPe().getImp().getICMS().getICMS00() != null) { @@ -123,6 +127,31 @@ public class ExportacaoBPEVo { if (tbpe.getInfBPe().getInfValorBPe() != null) { vBP = tbpe.getInfBPe().getInfValorBPe().getVBP(); vDesconto = tbpe.getInfBPe().getInfValorBPe().getVDesconto(); + vPgto = tbpe.getInfBPe().getInfValorBPe().getVPgto(); + + for (TBPe.InfBPe.InfValorBPe.Comp comp : tbpe.getInfBPe().getInfValorBPe().getComp()) { + + if (comp.getTpComp().equals(TipoComp.PEDAGIO)) { + vTxEmbarque = comp.getVComp() == null ? "0.0" : comp.getVComp(); + // isentos = isentos.add(isEstadual && !det.getIndPedagioEstdual() ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO); + // isentos = isentos.add(!isEstadual && !det.getIndPedagioMunicipal() ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO); + // pedagio = isReceitaTerceiros ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO; + } + + if (comp.getTpComp().equals(TipoComp.TAXA_EMBARQUE)) { + vPedagio = comp.getVComp() == null ? "0.0" : comp.getVComp(); + // isentos = isentos.add(isEstadual && !det.getIndTxembarqueEstadual() ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO); + // isentos = isentos.add(!isEstadual && !det.getIndTxembarqueMunicipal() ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO); + // taxaEmbarque = isReceitaTerceiros ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO; + } + + if (comp.getTpComp().equals(TipoComp.SEGURO)) { + vSeguro = comp.getVComp() == null ? "0.0" : comp.getVComp(); + // isentos = isentos.add(isEstadual && !det.getIndSeguroEstadual() ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO); + // isentos = isentos.add(!isEstadual && !det.getIndSeguroMunicipal() ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO); + // seguro = isReceitaTerceiros ? new BigDecimal(comp.getVComp() == null ? "0.0" : comp.getVComp()) : BigDecimal.ZERO; + } + } } // validar cst enviado @@ -138,11 +167,23 @@ public class ExportacaoBPEVo { cst = tbpe.getInfBPe().getImp().getICMS().getICMSOutraUF().getCST(); else if (tbpe.getInfBPe().getImp().getICMS().getICMSSN() != null) cst = tbpe.getInfBPe().getImp().getICMS().getICMSSN().getCST(); + } String cstCofins = "01"; String cstPis = "01"; + + // dependende dos parametros + BigDecimal valorPago = new BigDecimal(vPgto == null ? "0.0" : vPgto); + BigDecimal txEmbarque = new BigDecimal(vTxEmbarque == null ? "0.0" : vTxEmbarque); + BigDecimal pedagio = new BigDecimal(vPedagio == null ? "0.0" : vPedagio); + BigDecimal seguro = new BigDecimal(vSeguro == null ? "0.0" : vSeguro); + BigDecimal receitaTriCofins = new BigDecimal(vBC == null ? "0.0" : vBC); + if (pRedBC != null) { + receitaTriCofins = valorPago.subtract(txEmbarque.add(pedagio).add(pedagio).add(seguro)); + } + BigDecimal valorBruto = StringUtils.isBlank(xml) ? registro.getValortotal() : new BigDecimal(vBP == null ? "0.0" : vBP); BigDecimal desconto = StringUtils.isBlank(xml) ? registro.getvDesconto() : new BigDecimal(vDesconto == null ? "0.0" : vDesconto); @@ -171,9 +212,17 @@ public class ExportacaoBPEVo { BigDecimal baseCalculoICMS = new BigDecimal(vBC == null ? "0.0" : vBC); BigDecimal aliquotaICMS = new BigDecimal(pICMS == null ? "0.0" : pICMS); BigDecimal icms = new BigDecimal(vICMS == null ? "0.0" : vICMS); + BigDecimal isentas = registro.getValortotal().subtract(baseCalculoICMS); + if (pRedBC != null) { + isentas = txEmbarque.add(pedagio).add(pedagio).add(seguro); + } BigDecimal outras = new BigDecimal(pRedBC == null ? "0.0" : pRedBC); + if (pRedBC != null) { + outras = valorPago.subtract(baseCalculoICMS); + outras = outras.subtract(isentas); + } ExportacaoBPETipoDPE tipoDPE = new ExportacaoBPETipoDPE(registro.getValortotal(), cfop, cst, csosnb, baseCalculoICMS, aliquotaICMS, icms, isentas, outras);