private List<Dados50> getDados50() { List<Dados50> ld50 = new ArrayList<>(); for (EcfNotaEletronica nfe : nfes) { try { Dados50 d50 = new Dados50(); if (nfe.getEcfNotaEletronicaStatus().equals(ENotaStatus.AUTORIZADO.toString()) || nfe.getEcfNotaEletronicaStatus().equals(ENotaStatus.CANCELADO.toString())) { // pega a NFe String xml = nfe.getEcfNotaEletronicaXml(); int I = xml.indexOf("<infNFe"); int F = xml.indexOf("</NFe>") + 6; String texto = "<NFe xmlns=\"http://www.portalfiscal.inf.br/nfe\">" + xml.substring(I, F); TNFe tnfe = NFe.xmlToObj(texto, TNFe.class); TNFe.InfNFe.Total.ICMSTot icms = tnfe.getInfNFe().getTotal().getICMSTot(); d50.setCnpj(nfe.getSisCliente().getSisClienteDoc()); d50.setIe("ISENTO"); d50.setData(nfe.getEcfNotaEletronicaData()); d50.setUf(emp.getSisMunicipio().getSisEstado().getSisEstadoSigla()); d50.setModelo(55); d50.setSerie(Util.getConfig().get("nfe.serie")); d50.setNumero(nfe.getEcfNotaEletronicaNumero()); d50.setCfop(5201); d50.setEmitente("P"); d50.setValor(nfe.getEcfNotaEletronicaValor()); d50.setBase_icms(Double.valueOf(icms.getVBC())); d50.setValor_icms(Double.valueOf(icms.getVICMS())); double aliq = d50.getValor_icms() > 0 ? 17 : 0; double isento = (d50.getBase_icms() * aliq / 100) - d50.getValor_icms(); d50.setValor_isento(isento); d50.setOutras(Double.valueOf(icms.getVOutro())); d50.setAliq_icms(aliq); d50.setSituacao( nfe.getEcfNotaEletronicaStatus().equals(ENotaStatus.AUTORIZADO.toString()) ? "N" : "S"); } else { d50.setData(nfe.getEcfNotaEletronicaData()); d50.setUf(emp.getSisMunicipio().getSisEstado().getSisEstadoSigla()); d50.setModelo(55); d50.setSerie(Util.getConfig().get("nfe.serie")); d50.setNumero(nfe.getEcfNotaEletronicaNumero()); d50.setEmitente("P"); d50.setSituacao("4"); } Util.normaliza(d50); ld50.add(d50); } catch (Exception ex) { continue; } } return ld50; }
private List<Dados54> getDados54() { List<Dados54> ld54 = new ArrayList<>(); for (EcfNotaEletronica nfe : nfes) { try { if (nfe.getEcfNotaEletronicaStatus().equals(ENotaStatus.AUTORIZADO.toString()) || nfe.getEcfNotaEletronicaStatus().equals(ENotaStatus.CANCELADO.toString())) { // pega a NFe String xml = nfe.getEcfNotaEletronicaXml(); int I = xml.indexOf("<infNFe"); int F = xml.indexOf("</NFe>") + 6; String texto = "<NFe xmlns=\"http://www.portalfiscal.inf.br/nfe\">" + xml.substring(I, F); TNFe tnfe = NFe.xmlToObj(texto, TNFe.class); for (TNFe.InfNFe.Det det : tnfe.getInfNFe().getDet()) { // encontro o produto IFiltro filtro; if (det.getProd().getCEAN().equals("")) { filtro = new FiltroNumero("prodProdutoId", ECompara.IGUAL, det.getProd().getCProd()); } else { filtro = new FiltroTexto("prodProdutoBarra", ECompara.IGUAL, det.getProd().getCEAN()); } ProdProduto prod = (ProdProduto) service.selecionar(new ProdProduto(), filtro); Dados54 d54 = new Dados54(); d54.setCnpj(nfe.getSisCliente().getSisClienteDoc()); d54.setModelo(55); d54.setSerie(Util.getConfig().get("nfe.serie")); d54.setNumero(nfe.getEcfNotaEletronicaNumero()); d54.setCfop(Integer.valueOf(det.getProd().getCFOP())); if (prod.getProdProdutoCstCson().length() == 3) { d54.setCst(prod.getProdProdutoCstCson()); } else { d54.setCst(prod.getProdProdutoOrigem() + prod.getProdProdutoCstCson()); } d54.setNumero(Integer.valueOf(det.getNItem())); d54.setCodigo(prod.getId() + ""); d54.setQtd(Double.valueOf(det.getProd().getQCom())); d54.setValor(Double.valueOf(det.getProd().getVProd())); double desc = det.getProd().getVDesc() == null ? 0.00 : Double.valueOf(det.getProd().getVDesc()); d54.setDesconto(desc); d54.setBase_icms(prod.getProdProdutoIcms() > 0 ? d54.getValor() : 0.00); d54.setBase_icmsST(0.00); d54.setValor_ipi(0.00); d54.setAliq_icms(prod.getProdProdutoIcms()); Util.normaliza(d54); ld54.add(d54); } } } catch (Exception ex) { continue; } } return ld54; }