public static Result persistirNotaFiscal() {
    Form<FormularioCompra> formulario = Form.form(FormularioCompra.class).bindFromRequest();
    FormularioCompra dto = criarOuObterDTOCompraSessao();
    Fornecedor cliente = Fornecedor.query().where().eq("cnpj", dto.cnpj).findUnique();
    NotaFiscal notaFiscal = new NotaFiscal();
    notaFiscal.setPessoa(cliente);
    notaFiscal.setTipo(ETipoOperacao.COMPRA);
    notaFiscal.setData(new Date());
    for (FormularioCompra item : dto.itens) {
      ItemNotaFiscal itemNotaFiscal = new ItemNotaFiscal();
      Produto produto = GerenciamentoEstoque.incluirNoEstoque(item.produto, item.quantidade);
      itemNotaFiscal.setProduto(produto);
      itemNotaFiscal.setQuantidade(item.quantidade);
      itemNotaFiscal.setValor(item.precoTotal);
      notaFiscal.addItem(itemNotaFiscal);
    }

    notaFiscal.save();

    flash("sucesso", "Compra efetuada com Sucesso! Número da Compra: " + notaFiscal.getNumero());
    return ok(formularioCompra.render(formulario, dto));
  }
 public static Result index() {
   List<NotaFiscal> notasCompra =
       NotaFiscal.query().where().eq("tipo", ETipoOperacao.VENDA).findList();
   return ok(index.render(notasCompra));
 }