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; }
private List<Dados74> getDados74() { List<Dados74> ld74 = new ArrayList<>(); for (ProdProduto prod : estoque) { Dados74 d74 = new Dados74(); d74.setData(fim); d74.setCodigo(prod.getId() + ""); d74.setQtd(prod.getProdProdutoEstoque()); d74.setValor(prod.getProdProdutoPreco()); d74.setPosse("1"); d74.setCnpj(emp.getSisEmpresaCnpj()); d74.setIe(emp.getSisEmpresaIe()); d74.setUf(emp.getSisMunicipio().getSisEstado().getSisEstadoSigla()); Util.normaliza(d74); ld74.add(d74); } return ld74; }
/** * Costrutor informando os dados do produto e quantidade. * * @param produto referencia para o produto selecionado. * @param quantidade a quantidade total vendida. */ public EcfVendaProduto(ProdProduto produto, Double quantidade, String barra) { this(0); this.prodProduto = produto; this.prodEmbalagem = produto.getProdEmbalagem(); this.ecfVendaProdutoBarra = barra; this.ecfVendaProdutoCstCson = produto.getProdProdutoCstCson(); this.ecfVendaProdutoTributacao = produto.getProdProdutoTributacao(); this.ecfVendaProdutoIcms = produto.getProdProdutoIcms(); this.ecfVendaProdutoIssqn = produto.getProdProdutoIssqn(); this.ecfVendaProdutoQuantidade = quantidade; this.ecfVendaProdutoBruto = produto.getProdProdutoPreco(); this.ecfVendaProdutoDesconto = 0.00; this.ecfVendaProdutoAcrescimo = 0.00; this.ecfVendaProdutoLiquido = produto.getProdProdutoPreco(); this.ecfVendaProdutoTotal = quantidade * produto.getProdProdutoPreco(); }
private List<Dados75> getDados75() { List<Dados75> ld75 = new ArrayList<>(); for (ProdProduto prod : estoque) { Dados75 d75 = new Dados75(); d75.setInicio(inicio); d75.setFim(fim); d75.setCodigo(prod.getId() + ""); d75.setNcm(prod.getProdProdutoNcm()); d75.setDescricao(prod.getProdProdutoDescricao()); d75.setUnd(prod.getProdEmbalagem().getProdEmbalagemNome()); d75.setAliq_ipi(0.00); d75.setAliq_icms(prod.getProdProdutoIcms()); d75.setReducao(0.00); d75.setBase_icmsST(0.00); Util.normaliza(d75); ld75.add(d75); } return ld75; }
public String getEcfVendaProdutoCodigo() { return ecfVendaProdutoBarra == null || ecfVendaProdutoBarra.equals("") ? Util.formataNumero(prodProduto.getProdProdutoId(), 6, 0, false) : ecfVendaProdutoBarra; }
@Override public void executar() throws OpenPdvException { // ajustando a data fim para documento, pois o mesmo usa datetime Calendar cal = Calendar.getInstance(); cal.setTime(fim); cal.add(Calendar.DAY_OF_MONTH, 1); fim = cal.getTime(); // recupera as nfes emitidas no periodo FiltroData fd1 = new FiltroData("ecfNotaEletronicaData", ECompara.MAIOR_IGUAL, inicio); FiltroData fd2 = new FiltroData("ecfNotaEletronicaData", ECompara.MENOR, fim); GrupoFiltro gp1 = new GrupoFiltro(EJuncao.E, new IFiltro[] {fd1, fd2}); EcfNotaEletronica ene = new EcfNotaEletronica(); ene.setOrdemDirecao(EDirecao.ASC); nfes = service.selecionar(ene, 0, 0, gp1); // recupera as notas emitidas no periodo FiltroData fd3 = new FiltroData("ecfNotaData", ECompara.MAIOR_IGUAL, inicio); FiltroData fd4 = new FiltroData("ecfNotaData", ECompara.MENOR, fim); GrupoFiltro gp2 = new GrupoFiltro(EJuncao.E, new IFiltro[] {fd3, fd4}); EcfNota en = new EcfNota(); en.setOrdemDirecao(EDirecao.ASC); notas = service.selecionar(en, 0, 0, gp2); // recupera as leituras Z no periodo FiltroData fd7 = new FiltroData("ecfZMovimento", ECompara.MAIOR_IGUAL, inicio); FiltroData fd8 = new FiltroData("ecfZMovimento", ECompara.MENOR, fim); GrupoFiltro gf4 = new GrupoFiltro(EJuncao.E, new IFiltro[] {fd7, fd8}); EcfZ ez = new EcfZ(); ez.setOrdemDirecao(EDirecao.ASC); zs = service.selecionar(ez, 0, 0, gf4); // recupera os produtos com estoque maior que zero FiltroNumero fn = new FiltroNumero("prodProdutoEstoque", ECompara.DIFERENTE, 0); ProdProduto pp = new ProdProduto(); pp.setCampoOrdem("prodProdutoId"); estoque = service.selecionar(pp, 0, 0, fn); Sintegra sintegra = new Sintegra(); // Dados 10 sintegra.setDados10(getDados10()); // Dados 11 sintegra.setDados11(getDados11()); // Dados 50 sintegra.setDados50(getDados50()); // Dados 54 sintegra.setDados54(getDados54()); // Dados 60M sintegra.setDados60M(getDados60M()); // Dados 60R sintegra.setDados60R(getDados60R()); // Dados 61 sintegra.setDados61(getDados61()); // Dados 61R sintegra.setDados61R(getDados61R()); // Dados 74 sintegra.setDados74(getDados74()); // Dados 75 sintegra.setDados75(getDados75()); // Dados 90 e gerado internamento pelo PAF try { // gerar o arquivo path = PAF.gerarVendasPeriodo(sintegra); } catch (Exception ex) { throw new OpenPdvException(ex); } }