예제 #1
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;
  }
예제 #2
0
파일: Cheque.java 프로젝트: Wennder/OpenPDV
  /**
   * Metodo que retorna a instancia unica de Gerente.
   *
   * @param async objeto assincrono para resposta da acao.
   * @return o objeto de Gerente.
   */
  public static Cheque getInstancia(AsyncCallback<EcfPagamento> async, double total) {
    if (cheque == null) {
      cheque = new Cheque();
    }

    cheque.txtBarra.setText("");
    cheque.txtBarra.setDocument(new TextFieldLimit(32));
    cheque.txtValor.setValue(total);
    cheque.txtVencimento.setText(Util.formataData(new Date(), "dd/MM/yyyy"));
    cheque.async = async;
    cheque.total = total;
    return cheque;
  }
예제 #3
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;
  }
예제 #4
0
파일: Cheque.java 프로젝트: Wennder/OpenPDV
  /** Metodo com a acaoo do botao OK. */
  private void ok() {
    boolean valido = true;
    EcfPagamento pag = new EcfPagamento();

    try {
      // recupera a barra
      String barra;
      if (txtBarra.getText().equals("") || txtBarra.getText().length() < 30) {
        throw new Exception();
      } else {
        barra = txtBarra.getText();
      }
      pag.setEcfPagamentoNsu(barra);
      // recupera o valor
      Double valor = Double.valueOf(txtValor.getValue().toString());
      if (valor == 0.00 || valor.compareTo(total) > 0) {
        throw new Exception();
      }
      pag.setEcfPagamentoValor(valor);
      // recupera o vencimento
      Date vencimento = Util.formataData(txtVencimento.getText(), "dd/MM/yyyy");
      if (vencimento == null) {
        throw new Exception();
      }
      pag.setEcfPagamentoData(vencimento);
      // seta os demais valores do pagamento
      pag.setEcfPagamentoGnf(0);
      pag.setEcfPagamentoValor(valor);
      pag.setEcfPagamentoNsu(barra);
      pag.setEcfPagamentoEstorno('N');
      pag.setEcfVenda(Caixa.getInstancia().getVenda());
    } catch (Exception ex) {
      valido = false;
    }

    // se valido procegue o processo
    if (valido) {
      setVisible(false);
      async.sucesso(pag);
    } else {
      JOptionPane.showMessageDialog(
          null,
          "Deve-se informar todos os dados, ou dados errados!",
          "Cheque",
          JOptionPane.INFORMATION_MESSAGE);
    }
  }
예제 #5
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;
  }