public List listaEstoquePorProduto(Produto p) {
   try {
     Query q =
         getEntityManager()
             .createQuery(
                 "SELECT E FROM Estoque AS E WHERE E.produto.id = :p1 ORDER BY E.filial.filial.pessoa.nome ASC, E.estoqueTipo.descricao ASC");
     q.setParameter("p1", p.getId());
     List list = q.getResultList();
     if (!list.isEmpty()) {
       return list;
     }
   } catch (Exception e) {
   }
   return new ArrayList();
 }
 public Estoque listaEstoquePorProdutoFilial(Produto p, Filial l) {
   try {
     Query q =
         getEntityManager()
             .createQuery(
                 "SELECT E FROM Estoque AS E WHERE E.produto.id = :p1 AND E.filial.id = :p2 ORDER BY E.filial.filial.pessoa.nome");
     q.setParameter("p1", p.getId());
     q.setParameter("p2", l.getId());
     List list = q.getResultList();
     if (!list.isEmpty()) {
       return (Estoque) q.getSingleResult();
     }
   } catch (Exception e) {
   }
   return null;
 }