Devolução de itens de um venda

04/03/2004

1

Ola todos.

Como deve ser o relacionamento entre as entidades: vendas, itens da venda e devolução?

Obrigado.


Responder

Posts

09/03/2004

Liliamcas

Oi,

Caso alguém tenha resposta pra essa pergunta, eu gostaria de saber tbm!!!!

Liliam


Responder

10/03/2004

Gilson_our

Emanoel: vc já sabe os atributos que vão conter cada uma das 3 entidades que vc citou?
Esse sistema gerencia o que? Qual o objetivo dele?

Um exemplo é que na entidade vendas, pode-se ter atributos como:
nota_fiscal_saida (PK), codcliente, data_saida, data_pagamento, valor_total.
E na entidade itens da venda, que se relaciona com a entidade vendas (1-N), pode-se ter nota_fiscal_saida (FK e PK), codproduto (PK), valor_unitario, quantidade.
Agora a entidade devolução, talvez ela possa se relacionar com a entidade itens da venda, já que na devolução deve-se saber a nota fiscal e o codproduto.
Ah!! Mas acho que seria preciso então uma entidade itens da devolução. Vc pensou nisso?
Lembrando que não sou especialista nessa área, apenas estou dando uma opinião.


Responder

10/03/2004

Emanoel

Obrigado pela resposta.

O sistema que estou desenvolvendo é para controle de vendas. E eu estou fazendo da seguinte forma:

VENDAS (CODVENDA, DATAVENDA, VALORVENDA, VALORFRETE, VALORDESCONTO, CODCLIENTE, CODVENDEDOR)

ITENS_VENDA (CODVENDA (FK), CODPRODUTO (FK), QTDE, VALUNITARIO)

PRODUTO (CODPRODUTO, DESCRICAO, UNIDADE, GRUPO, VALOR)

DEVOLUCAO (CODVENDA (FK), CODPROUTO (FK), DATADEVOLUCAO, QUANTIDADE)

A entidade ITENS_VENDA se relaciona com DEVOLUCAO (1-N).

Não sei se essa é a forma correta de fazer.
O que você acha?
(Obs: não coloquei todos atributos)

Obrigado.


Responder

11/03/2004

Gilson_our

Vc especificou as chaves estrangeiras, mas qual a(s) chave(s) primária(s) da tabela ITENS_VENDA?
E da tabela DEVOLUCAO?
Porque se a tabela ITENS_VENDA tiver como chaves primárias os campos CODVENDA e CODPRODUTO e a tabela DEVOLUCAO tiver como chaves primárias os campos CODVENDA e CODPRODUTO, então nesse caso o relacionamento seria 1-1 entre ITENS_VENDA e DEVOLUCAO.
Agora se a chave primária de DEVOLUÇÃO for CODDEVOLUCAO por exemplo, ai não daria para ocorrer o relacionamento que vc disse.
Se não estiver dando certo com essas tabelas que vc disse, veja se não é o caso de ter uma tabela ITENS_DEVOLUCAO.


Responder

11/03/2004

Emanoel

Então, como ficaria o relacionamento entre ITENS_VENDA e DEVOLUCAO? E quais campos seriam necessários neste caso?

Devo, na entidade DEVOLUCAO, exibir apenas os itens da venda referentes a CODVENDA certo?

(Pq eu deveria colocar uma PK em ITENS_VENDA? As FK não servem como PK?)

Agradeço a ajuda.


Responder

12/03/2004

Gilson_our

Faz um teste em algum banco de dados do jeito que vc está fazendo para ver se há problemas. Na entidade DEVOLUCAO, eu acho que pode-se exibir a data da devolução, sendo o coddev auto incrementável e então na entidade ITENS_DEVOLUCAO, vc colocaria coddev, codvenda e codproduto, os 3 como sendo a chave primária tripla, além do campo qtddev.

Eu relacionei a tabela ITENS_VENDA com ITENS_DEVOLUCAO, e esta com DEVOLUCAO.
Em ITENS_VENDA, eu deixei codvenda e codproduto como sendo a chave primária dupla, sim as FK servem como PK.

Agora eu não sei te dizer se o que eu fiz aqui foi a melhor maneira de implementar a solução em termos de performance, se algum analista de sistemas estiver lendo este tópico, poderia postar aqui, e dizer por exemplo se é recomendável utilizar uma tabela com chave primária tripla.

Bom, fiz um teste aqui do meu jeito, criando as tabelas e os relacionamentos com integridade referencial no Access 2000, a princípio não notei erros.
Se quiser ver como ficou o MER e os relacionamentos que fiz aqui, acesse os links:
http://www.angelfire.com/hero/euourinhos/mer.jpg
http://www.angelfire.com/hero/euourinhos/mer2.jpg


Responder

12/03/2004

Emanoel

Obrigado Gilson_our, vou testar.

Na sua opinião, como devo proceder no caso de devolução de algum produto:

Digamos que o sistema gerou três contas a receber de uma determinada venda. Quando o cliente devolve um produto, o que o sistema deve fazer com as contas a receber? E com a nota de venda?
O sistema deve diminuir o total da devolução do total da venda?

Obrigado.


Responder

13/03/2004

Gilson_our

DEVOLUCAO (CODVENDA (FK), CODPRODUTO (FK), DATADEVOLUCAO, QUANTIDADE)


Se vc deixar assim, por exemplo, em uma Venda que teve mais de 2 ou mais tipos de produtos comprados e o cliente resolve devolver 2 ou mais produtos diferentes, em cada linha da tabela DEVOLUCAO, vc terá que repetir a mesma data da devolução, armazenando bytes desnecessários, não é?
Por isso que acho melhor deixar como fiz, criando uma tabela Devolucao, com a data e relacionando ela com os itens da devolução.

Quando o cliente devolve um produto, o sistema deve registrar a data de devolução, o código da venda relacionado e o código do produto. O contas a receber vai ter que diminuir claro, talvez alterando o registro, assim como a nota da venda.
É o sistema vai ter que diminuir a quantidade de cada produto devolvido relacionado com sua respectiva venda.


Responder