bug#11600

dev: julio
qua:

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@83896 d1611594-4594-4d17-8e1d-87c2c4800839
master
julio 2018-08-02 21:17:00 +00:00
parent 8b30be4374
commit acc7d4c87b
3 changed files with 99 additions and 30 deletions

View File

@ -60,8 +60,6 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
sql.append(" bpe.desconto as v_desconto, ");
sql.append(" bpe.chbpe, ");
sql.append(" coalesce(chbpe_substituicao, ' ') as chbpe_sub, ");
sql.append(" c.fechorventa, ");
sql.append(" c.feccreacion, ");
sql.append(" to_char(c.feccreacion, 'yyyymmdd') as dhrecbto, ");
sql.append(" coalesce(to_char(c.fechorviaje, 'yyyymmdd'), ' ') as dh_emisao, ");
sql.append(" coalesce(bpe.tiposubstituicao, '0') as tp_bpe, ");
@ -72,6 +70,10 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
sql.append(" c.categoria_id, ");
sql.append(" e.codestabelecimento as cod_estabelecimento, ");
sql.append(" ep.crtbpe as crt, ");
sql.append(" co.codibge as municipio_origem, ");
sql.append(" eo.cveestado as estado_origem, ");
sql.append(" cd.codibge as municipio_destino, ");
sql.append(" ed.cveestado as estado_destino, ");
sql.append(" ((case when coalesce(r.indtribtarifa,0) = 1 then c.preciopagado else 0 end) + (case when coalesce(r.indtribtaxaembarque,0) = 1 then c.importetaxaembarque else 0 end) + (case when coalesce(r.indtribpedagio,0) = 1 then c.importepedagio else 0 end)) as valortributado, ");
sql.append(" ei.porcredbaseicms as red_base_calc_estadual, ");
sql.append(" ei.porcredbaseicmsim as red_base_calc_municipal, ");
@ -85,9 +87,19 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
sql.append(" join estado e on e.codibge = bpe.uf ");
sql.append(" join empresa ep on c.empresacorrida_id = ep.empresa_id ");
sql.append(" join ruta r on r.ruta_id = c.ruta_id ");
sql.append(" left join alias_servico ase on ase.origen_id = c.origen_id ");
sql.append(" and ase.destino_id = c.destino_id and ase.ruta_id = c.ruta_id and ase.activo = 1 and ase.corrida_id is null ");
sql.append(" inner join parada o on coalesce(ase.aliasorigen_id, c.origen_id) = o.parada_id ");
sql.append(" inner join ciudad co on o.ciudad_id = co.ciudad_id ");
sql.append(" inner join estado eo on eo.estado_id = co.estado_id ");
sql.append(" inner join parada d on coalesce(ase.aliasdestino_id, c.destino_id) = d.parada_id ");
sql.append(" inner join ciudad cd on d.ciudad_id = cd.ciudad_id ");
sql.append(" inner join estado ed on ed.estado_id = cd.estado_id ");
sql.append(" left join empresa_imposto ei on ei.empresa_id = c.empresacorrida_id and ei.estado_id = e.estado_id ");
sql.append("where c.activo = 1 and e.activo = 1 and ei.activo = 1 ");
sql.append(" and bpe.tipoamb = 1 ");
sql.append(" and bpe.codstat <> 150 "); // não deve ser enviados os registros de contigencia
sql.append(" and (case when ei.indtribviagem = 1 then c.fechorviaje else c.feccreacion end) >= to_date(?,'DD/MM/YYYY HH24:MI:SS') ");
sql.append(" and (case when ei.indtribviagem = 1 then c.fechorviaje else c.feccreacion end) <= to_date(?,'DD/MM/YYYY HH24:MI:SS')");
sql.append(" and c.empresacorrida_id = ? ");
@ -138,6 +150,10 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
registro.setTipoevento(rs.getString("tipoevento"));
registro.setCodigoContabilEstadual(rs.getString("codigocontabil_estadual"));
registro.setCodigocontabilMunicipal(rs.getString("codigocontabil_municipal"));
registro.setMunicipioOrigem(rs.getString("municipio_origem"));
registro.setEstadoOrigem(rs.getString("estado_origem"));
registro.setMunicipioDestino(rs.getString("municipio_destino"));
registro.setEstadoDestino(rs.getString("estado_destino"));
registro.setCrt(rs.getInt("crt"));
registro.setValortributado(valortributado);
registro.setValortotal(valortotal);
@ -152,10 +168,10 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
String xmlBpe = StringUtils.join(array);
registro.setXml(xmlBpe);
boolean isCancelamento = exportacaoBPEVo.isItemCancelado(registro);
if (isCancelamento) {
if (exportacaoBPEVo.buscaXml(registro)) {
String xmlAnterior = buscarXmlBPE(connection, (StringUtils.isBlank(registro.getChbpeSub()) ? registro.getChbpe() : registro.getChbpeSub()));
registro.setXmlAnterior(xmlAnterior);
registro.setXml(null);
}
registros.add(registro);
@ -171,9 +187,9 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
List<ExportacaoBPEBase> aux = new ArrayList<ExportacaoBPEBase>();
for (ExportacaoBPEBase e1 : registros) {
if (exportacaoBPEVo.isItemCancelado(e1)) {
if (exportacaoBPEVo.isBpeCancelado(e1)) {
for (ExportacaoBPEBase e2 : registros) {
if (e1.getChbpe().equals(e2.getChbpe()) && !exportacaoBPEVo.isItemCancelado(e2)) {
if (e1.getChbpe().equals(e2.getChbpe()) && !exportacaoBPEVo.isBpeCancelado(e2)) {
aux.add(e1);
break;
}
@ -183,7 +199,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
boolean temItemCancelado = false;
for (ExportacaoBPEBase e2 : registros) {
if (e1.getChbpe().equals(e2.getChbpe()) && exportacaoBPEVo.isItemCancelado(e2)) {
if (e1.getChbpe().equals(e2.getChbpe()) && exportacaoBPEVo.isBpeCancelado(e2)) {
temItemCancelado = true;
break;
}
@ -218,7 +234,7 @@ public class BpeHibernateDAO extends HibernateDaoSupport implements BpeDAO {
sql.append(" from bpe bpe ");
sql.append(" where bpe.activo = 1 ");
sql.append(" and bpe.tipoamb = 1 ");
sql.append(" and bpe.codstat in ('100', '150') ");
sql.append(" and bpe.codstat in ('100') ");
sql.append(" and bpe.chbpe = ? ");
try {

View File

@ -20,6 +20,10 @@ public class ExportacaoBPEBase {
private String numBpe;
private String numSerieBpe;
private String codEstabelecimento;
private String municipioOrigem;
private String estadoOrigem;
private String municipioDestino;
private String estadoDestino;
private BigDecimal valortributado;
private BigDecimal redBaseCalcEstadual;
private BigDecimal redBaseCalcMunicipal;
@ -159,6 +163,38 @@ public class ExportacaoBPEBase {
this.codEstabelecimento = codEstabelecimento;
}
public String getMunicipioOrigem() {
return municipioOrigem;
}
public void setMunicipioOrigem(String municipioOrigem) {
this.municipioOrigem = municipioOrigem;
}
public String getEstadoOrigem() {
return estadoOrigem;
}
public void setEstadoOrigem(String estadoOrigem) {
this.estadoOrigem = estadoOrigem;
}
public String getMunicipioDestino() {
return municipioDestino;
}
public void setMunicipioDestino(String municipioDestino) {
this.municipioDestino = municipioDestino;
}
public String getEstadoDestino() {
return estadoDestino;
}
public void setEstadoDestino(String estadoDestino) {
this.estadoDestino = estadoDestino;
}
public BigDecimal getValortributado() {
return valortributado;
}

View File

@ -50,26 +50,35 @@ public class ExportacaoBPEVo {
return listaRegistroBaseBPE;
}
public boolean isItemCancelado(ExportacaoBPEBase registro) {
public boolean buscaXml(ExportacaoBPEBase registro) {
return (registro.getCodstatus() == null ? false : (registro.getCodstatus().equals(StatusBpe.EVENTOS)));
}
public boolean isBpeCancelado(ExportacaoBPEBase registro) {
return (registro.getCodstatus() == null ? false : (registro.getCodstatus().equals(StatusBpe.EVENTOS))) &&
(registro.getTipoevento() == null ? false : (registro.getTipoevento().equals(EventosBpe.CANCELAMENTO)));
}
public void gerarListas(ExportacaoBPEBase registro) {
String indContribuicaoPrevidenciaria = "00000060";
boolean isCancelamento = (registro.getCodstatus() == null ? false : (registro.getCodstatus().equals(StatusBpe.EVENTOS)));
boolean isCancelamento = isBpeCancelado(registro);
TBPe tbpe = null;
String xml = isCancelamento ? registro.getXmlAnterior() : registro.getXml();
if (xml != null)
if (StringUtils.isNotBlank(xml))
tbpe = convertXmlToBpe(xml);
String municipioOrigem = StringUtils.substring(tbpe.getInfBPe().getIde().getCMunIni(), 2);
String municipioDestino = StringUtils.substring(tbpe.getInfBPe().getIde().getCMunFim(), 2);
String estadoOrigem = tbpe.getInfBPe().getIde().getUFIni().value();
String estadoDestino = tbpe.getInfBPe().getIde().getUFFim().value();
try {
String municipioOrigem = StringUtils.substring((StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getCMunIni() : registro.getMunicipioOrigem()), 2);
} catch (Exception e) {
System.out.println(xml);
}
String municipioOrigem = StringUtils.substring((StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getCMunIni() : registro.getMunicipioOrigem()), 2);
String municipioDestino = StringUtils.substring((StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getCMunFim() : registro.getMunicipioDestino()), 2);
String estadoOrigem = (StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getUFIni().value() : registro.getEstadoOrigem());
String estadoDestino = (StringUtils.isNotBlank(xml) ? tbpe.getInfBPe().getIde().getUFFim().value() : registro.getEstadoDestino());
boolean isInterMunicipal = estadoOrigem.equals(estadoDestino);
String codigoContabil = isInterMunicipal ? registro.getCodigocontabilMunicipal() : registro.getCodigoContabilEstadual();
@ -89,27 +98,37 @@ public class ExportacaoBPEVo {
String vBC = null;
String pICMS = null;
String vICMS = null;
String vBP = null;
String cst = null;
String vBP = null;
String vDesconto = null;
if (StringUtils.isNotBlank(xml)) {
if (tbpe.getInfBPe().getImp().getICMS().getICMS00() != null) {
vBC = tbpe.getInfBPe().getImp().getICMS().getICMS00().getVBC();
pICMS = tbpe.getInfBPe().getImp().getICMS().getICMS00().getPICMS();
vICMS = tbpe.getInfBPe().getImp().getICMS().getICMS00().getVICMS();
cst = tbpe.getInfBPe().getImp().getICMS().getICMS00().getCST();
}
if (tbpe.getInfBPe().getInfValorBPe() != null) {
vBP = tbpe.getInfBPe().getInfValorBPe().getVBP();
vDesconto = tbpe.getInfBPe().getInfValorBPe().getVDesconto();
}
}
String cstCofins = "01";
String cstPis = "01";
BigDecimal receitaTriCofins = new BigDecimal(vBC == null ? "0.0" : vBC);
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);
BigDecimal valorBruto = new BigDecimal(vBP == null ? "0.0" : vBP);
String chbpeSub = tbpe.getInfBPe().getInfBPeSub() == null ? "" : tbpe.getInfBPe().getInfBPeSub().getChBPe();
String tpBpe = (StringUtils.isBlank(tbpe.getInfBPe().getInfBPeSub() == null ? "" : tbpe.getInfBPe().getInfBPeSub().getChBPe()) ? "1" : "2");
String chbpeSub = StringUtils.isBlank(xml) ? "" : (tbpe.getInfBPe().getInfBPeSub() == null ? "" : tbpe.getInfBPe().getInfBPeSub().getChBPe());
String tpBpe = StringUtils.isBlank(xml) ? "" : (StringUtils.isBlank(tbpe.getInfBPe().getInfBPeSub() == null ? "" : tbpe.getInfBPe().getInfBPeSub().getChBPe()) ? "1" : "2");
ExportacaoBPETipoBPE tipoBPE = new ExportacaoBPETipoBPE(registro.getCodEstabelecimento(), registro.getChbpe(), registro.getNumSerieBpe(),
registro.getNumBpe(), registro.getDhrecbto(), tpDoc, registro.getDhEmisao(), valorBruto,
registro.getvDesconto(), estadoOrigem, municipioOrigem, estadoDestino, municipioDestino,
desconto, estadoOrigem, municipioOrigem, estadoDestino, municipioDestino,
cstCofins, receitaTriCofins, tpBpe, chbpeSub, codigoContabil,
indContribuicaoPrevidenciaria, registro.getRetorno(), cstPis);
@ -131,10 +150,8 @@ 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);
BigDecimal outras = ZERO;
BigDecimal outras = new BigDecimal(cst == null ? "0.0" : cst);
ExportacaoBPETipoDPE tipoDPE = new ExportacaoBPETipoDPE(registro.getValortotal(), cfop, cstb, csosnb,
baseCalculoICMS, aliquotaICMS, icms, isentas, outras);