public static float getCustoTotalSetores(ProdutoViewModel produto) {
   float valor = 0;
   if (produto != null && produto.getProdutoSetores() != null) {
     for (ProdutoSetorViewModel ps : produto.getProdutoSetores()) {
       if (ps != null) {
         valor += ps.getMinutos() * ps.getCustoMinuto();
       }
     }
   }
   return valor;
 }
 public static float getCustoTotalMaquinas(ProdutoViewModel produto) {
   float valor = 0;
   if (produto != null && produto.getProdutoMaquinas() != null) {
     for (ProdutoMaquinaViewModel pm : produto.getProdutoMaquinas()) {
       if (pm != null) {
         Maquina maquina = pm.getMaquina();
         if (maquina != null) {
           valor += pm.getMinutos() * maquina.getCustoMinuto();
         }
       }
     }
   }
   return valor;
 }
 public static float getCustoTotalComponentes(ProdutoViewModel produto) {
   float valor = 0;
   if (produto != null && produto.getProdutoComponentes() != null) {
     for (ProdutoComponenteViewModel pc : produto.getProdutoComponentes()) {
       if (pc != null) {
         Componente c = pc.getComponente();
         if (c != null) {
           valor += c.getValorUnitario() * pc.getQuantidade();
         }
       }
     }
   }
   return valor;
 }
 public void fill(ProdutoViewModel pvm) {
   pvm.setId(id);
   pvm.setReferencia(referencia);
   pvm.setNome(nome);
   pvm.setCategoria(categoria);
   if (categoria != null) {
     pvm.setCategoriaId(categoria.getId());
   }
   if (produtoComponentes != null) {
     List<ProdutoComponenteViewModel> listPcvm = new ArrayList<>();
     for (ProdutoComponente pc : produtoComponentes) {
       if (pc != null) {
         ProdutoComponenteViewModel pcvm = new ProdutoComponenteViewModel();
         pc.fill(pcvm);
         listPcvm.add(pcvm);
       }
     }
     pvm.setProdutoComponentes(listPcvm);
   } else {
     pvm.setProdutoComponentes(null);
   }
   if (produtoMaquinas != null) {
     List<ProdutoMaquinaViewModel> listVm = new ArrayList<>();
     for (ProdutoMaquina pm : produtoMaquinas) {
       if (pm != null) {
         ProdutoMaquinaViewModel pmvm = new ProdutoMaquinaViewModel();
         pm.fill(pmvm);
         listVm.add(pmvm);
       }
     }
     pvm.setProdutoMaquinas(listVm);
   } else {
     pvm.setProdutoMaquinas(null);
   }
   if (produtoSetores != null) {
     List<ProdutoSetorViewModel> listVm = new ArrayList<>();
     for (ProdutoSetor ps : produtoSetores) {
       if (ps != null) {
         ProdutoSetorViewModel pmvm = new ProdutoSetorViewModel();
         ps.fill(pmvm);
         listVm.add(pmvm);
       }
     }
     pvm.setProdutoSetores(listVm);
   } else {
     pvm.setProdutoSetores(null);
   }
   pvm.setCusto(getCustoTotal(pvm));
 }