Visao logica de controle de estoque

Ola amigos fiz este diagrama de classe para uma loja de produtos de informatica.Estou com dificuldade na visao logica do controle de estoque, gostaria de saber qual a melhor forma para o seguinte caso de uso.

  • Gerente Cadastra produto ( nome, marca, preco, descricao, garantia em meses, categoria)
  • Gerente Emite OrdemdeCompra (produtos, quantidade, valor de compra,FORNECEDOR)
  • Aumoxarife da entrada de produto no estoque(produto,quant, numerododocumento(ordem ou nota),valor)
  • Vendedor faz venda e emite nota

Caso produto volta para RMA ():

  • Cliente apresenta produto avariado juntamente com nota fiscal
  • Atendente verifica se a garantia expirou, caso nao, o atendente abre uma OrdemRMA(dataentrada,produtoavariado,problema, FORNECEDOR,ordemdeencaminhamento)
    -O Fornecedor toma as medidas necessarias com produto avariado remetido e devolve um novo, ou o mesmo caso a garantia nao cobrir.
  • Cliente recebe produto

Estou enviando o que eu ja fiz e gostaria de saber de voces se as classes Produto, OrdemdeCompra e itemdecompra esta correto, pois nao estou conseguindo com estes dados, descobrir qual o fornecedor daquele produto no momento em que o cliente o apresenta como avariado, uma vez que para cada produto pode haver varios fornecedores e por isso nao coloquei o atributo quantidade que representaria o estoque na classe produtos. Estou tambem sentindo falta de uma classe estoque, porem nao estou conseguindo inseri-la no sistema. Gostaria de houvir sugestoes sobre isto.

obs: As outras classes (cliente,fornecedor,funcionario e RMA) encontran-se em outro pacote


nenhuma dica???

conseguiu ?