Solucionado (ver solução)
Solucionado
(ver solução)
8
respostas

Compra de produto

Estou com uma duvida meio complexa aqui, no meu sistema de teste tenho a minha classe de produto, com codigo preco preco de venda fornecedor quantidade, essas coisas, mais para mim cadastrar o produto eu não estou fazendo nenhuma compra, só estou cadastrando os produtos e pronto, o correto seria eu fazer uma Classe de compra e quando eu fazer a compra do produto ai eu ter o produto correto?

8 respostas

Não há erro na definição da classe.

Veja a modelagem abaixo.

Na classe produto você tem: - código - preço (de custo) - preço de venda (referencia) - fornecedor - quantidade (que está em estoque)

Em uma classe compra você teria - valor da compra - data da compra - etc.

Além disto, ainda teria outra classe com os ItensDaCompra - código do produto - quantidade do produto - preço de venda (real) - desconto - etc.

Gabriel sim sobre a modelagem eu sei, a minha duvida é outra irmãozinho, tenho a minha classe de protudo correto? e no meu sistema eu só estou cadastrando o produto sem fazer nenhuma compra do produto, não existe a minha classe compra correto? Não está errado assim? O certo não seria eu fazer a compra pra ter um produto? Deu pra entender?

solução!

Entendi.

O produto deve ser cadastrado antes da compra. Mas, as informações sobre quantidade estocada, preço de compra e outras relativas às compras devem ser atualizadas no momento da compra.

Mas, também é possível no momento da compra, cadastrar um produto que não existe. Tudo depende da abordagem que será utilizada para resolver o problema.

Por exemplo, alunos são cadastrados e só depois são colocados em uma turma. Não crio os alunos no momento que estou criando a turma.

A mesma coisa pode ser aplicada a compra e ao produto. Não devo criar o produto junto com a compra. Primeiro cadastro o produto para que ele possua um código único e só depois realizo uma compra e indico quais produtos (previamente cadastrados) farão parte da compra.

Muito boa a explicação, agora sim! Então eu estou no caminho certo, deixa ver se eu entendi, irei cadastrar um produto, na classe produto terei preço unitario o nome e o fornecedor correto? É necessario na classe produto ter a quantidade de produto que irei tar cadastrando? por exemplo.

Produto: Código:255, nome:celular, preço unitario:500.0, preçoVenda:700.0, quantidade:10;

Um exemplo de cadastro de produto, ok cadastrei um ai, é necessario ter essa quantidade? Porque dai na hora da compra irei ter um campo quantidade desse produto que eu quero, e se for maior que a quantidade que tenho cadastrada não deixar realizar a compra entendeu? Ai quando eu finalizar a minha compra, essa quantidade de compra que eu fiz eu atualizo o meu estoque? só quando eu faço minha compra? e não só quando eu apenas cadastro um produto? Seria isso?

Teu raciocínio está correto. Tudo depende das regras de negócio.

Por exemplo, um produto é fornecido somente por um fornecedor. Se for, então posso no produto colocar o código do fornecedor. Se não for, então é melhor indicar o fornecedor no momento da compra.

Se o produto já existe no estoque, você pode informar a quantidade já existente. Se não existe, então no momento da compra esta quantidade poderá ser atualizada. Inclusive o preço de compra e preço de venda também podem ser atualizados no momento da compra, se a regra for esta.

Para validar uma quantidade comprada, você teria que ter outro campo indicando a quantidade máxima. Não sei se isto é interessante. Normalmente, o que se faz é verificar quantidade mínima para disparar um aviso de necessidade de uma nova compra.

Ficou claro? Tudo depende das regras do negócio. Não há uma receita pronta.

Certo ficou claro aqui sim, então nada me impede se eu fazer a minha classe ControleEstoque com a fk ligada no meus itenscompra correto?

Nada impede. Tudo depende do escopo do problema.

Poderia ser assim. - classe Produto (para representar cada produto) - classe Compra (representar as compras) - classe ItemCompra (representar cada produto da compra) - classe Venda - classe ItemVenda

Penso que não é necessário uma classe ControleEstoque porque o próprio Produto pode devolver esta informação.

É bem interessante avaliar o que cada classe deve SABER e deve FAZER para realizar uma modelagem correta.

Exemplo: A classe Produto SABE sua quantidade, e sabe FAZER o aumento e diminuição do estoque.

Perfeito agora fico tudo claro aqui, obrigado de verdade!