dimribeiro:
De principio eu sou novo aqui, queria a ajuda de vcs.
Bem estava pensando como posso modelar minhas classes, é uma duvida simples eu imagino…
Preciso de montar um modelo que eu possa controlar estoque. e preciso controlar esse estoque com os produtos individuais e em caixas…
Ex:
tenho 1000unidades de bala…
se eu vender uma unidade terei 999
entao se eu vender 1 caixa X eu terei 899 (supondo que a caixa X vem com 100)…
e se eu vender a caixa Y terei 849 ( a caixa Y vem com 50…)
E se voce vender a caixa toda ?
O que é o seu produto ? as balas dentro das caixas, ou as caixas em si mesmas, ou os dois ?
Este problema é conhecido. Um produto pode ter diferentes “tipos” conforme ele pode ser vendido ou não.
Para modelar as classes vc precisa ter um modelo na sua cabeça e esse modelo tem que funcionar
O modelo mais simples (não de implementar, mas de usar) é considerar que todo o produto é composto por outros produtos (padrão composite object)
Um produto “caixa de bala de morango” é composto por 900 balas de morango. Então vc tem dois produtos.
O produto mais simples ( aquele que não é composto por nada mais) é a unidade do que vc vende. No sistema de estoque a composição é importante ( não apenas para estoque para control de produção tb).
O modelo é então : Produto A -> X produto B + Y produto C + …
Caixa de balas = 900 balas
bala = 1 bala
O preço é atribuido ao menor produto (que é a unidade) e o preço da caixa é simplesmente a multiplicação com um fator de desconto (ou não).
O exemplo classico 3x2 ou 2x1. Vc compra dois frascos de shamppo e leva 3. A unidade é o fraco, o produto é a embalagem com os 3
Embalagem 3x2 de Shampoo HTC = 3 frasco shampoo HTC
1 rasco shampoo HTC = rasco shampoo HTC
O sistema de preço é variável conforme a forma de embalagem, mas tudo é produto, tudo é vendivel…bom, quase tudo.
Caixa de bala vêm em paletes de caixa de bala. Provavelmente vc não venderá paletes inteiras, mas irá comprá-las. O sistema de produtos é o coração tanto das vendas como das compras, portanto a herarquia de produtos é o cerne do negocio da emrpesa.
Em java
interface Produto {
public String getNome()
public List<ComposicaoProduto> composicao;
public void add(Produto p , Quantidade quantidade){
compiosicao.add(new ComposicaoProduto(p, quantidade);
}
}
public class ComposicaoProduto {
public Quantidade getQuantidade()
public Produto getProduto()
}
Tem que usar Quantidade e não int porque produtos diferentes têm unidades diferentes. (tecido é por metro, bala é por unidade , fruta é por quilo,etc)