private List<Dados60I> getDados60I(EcfZ z) { List<Dados60I> ld60i = new ArrayList<>(); for (EcfVenda venda : z.getEcfVendas()) { for (EcfVendaProduto vp : venda.getEcfVendaProdutos()) { Dados60I d60i = new Dados60I(); d60i.setData(z.getEcfZMovimento()); d60i.setSerie(z.getEcfImpressora().getEcfImpressoraSerie()); d60i.setModelo(z.getEcfImpressora().getEcfImpressoraCodigo()); d60i.setCoo(venda.getEcfVendaCoo()); d60i.setItem(vp.getEcfVendaProdutoOrdem()); d60i.setCodigo(vp.getProdProduto().getId() + ""); d60i.setQtd(vp.getEcfVendaProdutoQuantidade()); d60i.setLiquido(vp.getEcfVendaProdutoLiquido()); if (vp.getProdProduto().getProdProdutoTributacao() == 'T') { d60i.setBase_icms(vp.getEcfVendaProdutoLiquido()); d60i.setTributacao( Util.formataNumero(vp.getProdProduto().getProdProdutoIcms() * 100, 4, 0, false)); d60i.setValor_icms(vp.getEcfVendaProdutoIcms()); } else { d60i.setTributacao(vp.getProdProduto().getProdProdutoTributacao() + ""); } Util.normaliza(d60i); ld60i.add(d60i); } } return ld60i; }
private List<Dados60A> getDados60A(EcfZ z) { List<Dados60A> ld60a = new ArrayList<>(); for (EcfZTotais total : z.getEcfZTotais()) { Dados60A d60a = new Dados60A(); d60a.setData(z.getEcfZMovimento()); d60a.setSerie(z.getEcfImpressora().getEcfImpressoraSerie()); if (total.getEcfZTotaisCodigo().length() == 7 && (total.getEcfZTotaisCodigo().substring(2, 3).equals("T") || total.getEcfZTotaisCodigo().substring(2, 3).equals("S"))) { d60a.setTotalizador(total.getEcfZTotaisCodigo().substring(3)); } else if (total.getEcfZTotaisCodigo().startsWith("C")) { d60a.setTotalizador("CANC"); } else if (total.getEcfZTotaisCodigo().startsWith("D")) { d60a.setTotalizador("DESC"); } else if (total.getEcfZTotaisCodigo().startsWith("S")) { d60a.setTotalizador("ISS"); } else { d60a.setTotalizador(total.getEcfZTotaisCodigo()); } d60a.setValor(total.getEcfZTotaisValor()); Util.normaliza(d60a); ld60a.add(d60a); } return ld60a; }
private List<Dados60M> getDados60M() { List<Dados60M> ld60m = new ArrayList<>(); for (EcfZ z : zs) { Dados60M d60m = new Dados60M(); d60m.setData(z.getEcfZMovimento()); d60m.setSerie(z.getEcfImpressora().getEcfImpressoraSerie()); d60m.setCaixa(z.getEcfImpressora().getEcfImpressoraCaixa()); d60m.setModelo(z.getEcfImpressora().getEcfImpressoraCodigo()); d60m.setCooInicial(z.getEcfZCooIni()); d60m.setCooFinal(z.getEcfZCooFin()); d60m.setCrz(z.getEcfZCrz()); d60m.setCro(z.getEcfZCro()); d60m.setValorBruto(z.getEcfZBruto()); d60m.setValorGeral(z.getEcfZGt()); // Dados 60A d60m.setDados60A(getDados60A(z)); // Dados 60D d60m.setDados60D(getDados60D(z)); // Dados 60I d60m.setDados60I(getDados60I(z)); Util.normaliza(d60m); ld60m.add(d60m); } return ld60m; }
private List<Dados60R> getDados60R() { List<Dados60R> ld60r = new ArrayList<>(); // agrupando os itens vendidos pelo mes+ano+id produto. Map<String, List<EcfVendaProduto>> mensal = new HashMap<>(); for (EcfZ z : zs) { String mesAno = Util.formataData(z.getEcfZMovimento(), "MMyyyy"); for (EcfVenda venda : z.getEcfVendas()) { for (EcfVendaProduto vp : venda.getEcfVendaProdutos()) { String chave = mesAno + "-" + vp.getProdProduto().getId(); List<EcfVendaProduto> lista = mensal.get(chave); if (lista == null) { lista = new ArrayList<>(); lista.add(vp); mensal.put(chave, lista); } else { lista.add(vp); } } } } // gerando os valores do mes/ano por produto for (Entry<String, List<EcfVendaProduto>> entry : mensal.entrySet()) { double qtd = 0.00; double liquido = 0.00; char trib = 0; double aliq = 0.00; // soma os valores for (EcfVendaProduto vp : entry.getValue()) { qtd += vp.getEcfVendaProdutoQuantidade(); liquido += vp.getEcfVendaProdutoLiquido(); trib = vp.getProdProduto().getProdProdutoTributacao(); aliq = vp.getProdProduto().getProdProdutoIcms(); } Dados60R d60r = new Dados60R(); d60r.setMesAno(Integer.valueOf(entry.getKey().substring(0, 6))); d60r.setCodigo(entry.getKey() + ""); d60r.setQtd(qtd); d60r.setLiquido(liquido); if (trib == 'T') { d60r.setBase_icms(liquido); d60r.setTributacao(Util.formataNumero(aliq * 100, 4, 0, false)); } else { d60r.setTributacao(trib + ""); } Util.normaliza(d60r); ld60r.add(d60r); } return ld60r; }
private List<Dados60D> getDados60D(EcfZ z) { List<Dados60D> ld60d = new ArrayList<>(); // agrupando os itens vendidos pelo id produto no dia. Map<Integer, List<EcfVendaProduto>> diario = new HashMap<>(); for (EcfVenda venda : z.getEcfVendas()) { for (EcfVendaProduto vp : venda.getEcfVendaProdutos()) { List<EcfVendaProduto> lista = diario.get(vp.getProdProduto().getId()); if (lista == null) { lista = new ArrayList<>(); lista.add(vp); diario.put(vp.getProdProduto().getId(), lista); } else { lista.add(vp); } } } // gerando os valores do dia por produto for (Entry<Integer, List<EcfVendaProduto>> entry : diario.entrySet()) { double qtd = 0.00; double liquido = 0.00; double icms = 0.00; char trib = 0; double aliq = 0.00; // soma os valores for (EcfVendaProduto vp : entry.getValue()) { qtd += vp.getEcfVendaProdutoQuantidade(); liquido += vp.getEcfVendaProdutoLiquido(); icms += vp.getEcfVendaProdutoIcms(); trib = vp.getProdProduto().getProdProdutoTributacao(); aliq = vp.getProdProduto().getProdProdutoIcms(); } Dados60D d60d = new Dados60D(); d60d.setData(z.getEcfZMovimento()); d60d.setSerie(z.getEcfImpressora().getEcfImpressoraSerie()); d60d.setCodigo(entry.getKey() + ""); d60d.setQtd(qtd); d60d.setLiquido(liquido); if (trib == 'T') { d60d.setBase_icms(liquido); d60d.setTributacao(Util.formataNumero(aliq * 100, 4, 0, false)); d60d.setValor_icms(icms); } else { d60d.setTributacao(trib + ""); } Util.normaliza(d60d); ld60d.add(d60d); } return ld60d; }
@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); } }