示例#1
0
  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;
  }
示例#2
0
  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;
  }
示例#3
0
  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;
  }
示例#4
0
  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;
  }
示例#5
0
  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;
  }
示例#6
0
  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;
  }
示例#7
0
  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;
  }
示例#8
0
  private List<Dados61R> getDados61R() {
    List<Dados61R> ld61r = new ArrayList<>();

    // agrupando as notas por mes+ano+id do produto
    Map<String, List<EcfNotaProduto>> mensal = new HashMap<>();
    for (EcfNota nota : notas) {
      String mesAno = Util.formataData(nota.getEcfNotaData(), "MMyyyy");
      for (EcfNotaProduto np : nota.getEcfNotaProdutos()) {
        String chave = mesAno + "-" + np.getProdProduto().getId();
        List<EcfNotaProduto> lista = mensal.get(chave);
        if (lista == null) {
          lista = new ArrayList<>();
          lista.add(np);
          mensal.put(chave, lista);
        } else {
          lista.add(np);
        }
      }
    }

    // gerando os valores do mes/ano por produto
    for (Entry<String, List<EcfNotaProduto>> entry : mensal.entrySet()) {
      double qtd = 0.00;
      double bruto = 0.00;
      char trib = 0;
      double aliq = 0.00;

      // soma os valores
      for (EcfNotaProduto np : entry.getValue()) {
        qtd += np.getEcfNotaProdutoQuantidade();
        bruto += np.getEcfNotaProdutoBruto();
        trib = np.getProdProduto().getProdProdutoTributacao();
        aliq = np.getProdProduto().getProdProdutoIcms();
      }

      Dados61R d61r = new Dados61R();
      d61r.setMesAno(Integer.valueOf(entry.getKey().substring(0, 6)));
      d61r.setCodigo(entry.getKey() + "");
      d61r.setQtd(qtd);
      d61r.setBruto(bruto);
      if (trib == 'T') {
        d61r.setBase_icms(bruto);
        d61r.setAliq_icms(aliq);
      }

      Util.normaliza(d61r);
      ld61r.add(d61r);
    }

    return ld61r;
  }
示例#9
0
  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;
  }
示例#10
0
  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;
  }
示例#11
0
  private List<Dados61> getDados61() {
    List<Dados61> ld61 = new ArrayList<>();

    // agrupando as notas por dia+serie+subserie
    Map<String, List<EcfNota>> grupo = new HashMap<>();
    for (EcfNota nota : notas) {
      String chave =
          Util.formataData(nota.getEcfNotaData(), "ddMMyyyy")
              + nota.getEcfNotaSerie()
              + nota.getEcfNotaSubserie();
      List<EcfNota> lista = grupo.get(chave);
      if (lista == null) {
        lista = new ArrayList<>();
        lista.add(nota);
        grupo.put(chave, lista);
      } else {
        lista.add(nota);
      }
    }

    // soma os valores agrupados
    for (Entry<String, List<EcfNota>> entry : grupo.entrySet()) {
      Dados61 d61 = new Dados61();

      for (EcfNota nota : entry.getValue()) {
        d61.setData(nota.getEcfNotaData());
        d61.setModelo(2);
        d61.setSerie(nota.getEcfNotaSerie());
        d61.setSubserie(nota.getEcfNotaSubserie());
        if (nota.getEcfNotaNumero() < d61.getNumInicial()) {
          d61.setNumInicial(nota.getEcfNotaNumero());
        }
        if (nota.getEcfNotaNumero() > d61.getNumFinal()) {
          d61.setNumFinal(nota.getEcfNotaNumero());
        }
        if (!nota.isEcfNotaCancelada()) {
          d61.setValorTotal(d61.getValorTotal() + nota.getEcfNotaLiquido());
          double base_icms = 0.00;
          double valor_icms = 0.00;
          double isento = 0.00;
          double aliq = 0.00;
          for (EcfNotaProduto np : nota.getEcfNotaProdutos()) {
            if (np.getProdProduto().getProdProdutoTributacao() == 'T') {
              base_icms += np.getEcfNotaProdutoLiquido();
              valor_icms +=
                  (np.getEcfNotaProdutoLiquido() * np.getProdProduto().getProdProdutoIcms() / 100);
              aliq = np.getProdProduto().getProdProdutoIcms();
            } else if (np.getProdProduto().getProdProdutoTributacao() == 'I'
                || np.getProdProduto().getProdProdutoTributacao() == 'N') {
              isento += np.getEcfNotaProdutoLiquido();
            }
          }
          d61.setBase_icms(base_icms);
          d61.setValor_icms(valor_icms);
          d61.setValor_isento(isento);
          d61.setOutras(0.00);
          d61.setAliq_icms(aliq);
        }
      }

      Util.normaliza(d61);
      ld61.add(d61);
    }

    return ld61;
  }