Estoque e produtos

Modelagem

02/05/2004

olá eu vou tentar me explicar. Eu estou fazendo um sistema de farmácia. Agora eu estou implementando o cadastro de produtos e pensando no estoque. Bom eu já havia feito as tabelas mas pensando bem está logicamente errado. Pq eu havia feito um única tabela q continha os dados de produto e sua qtde no estoque. Porém na hora de cadastrar remessas e lotes diferentes teria um problema com data de Validade e preço(ou seja característica de produtos iguais mas q se diferenciam conforme o lote).
Eu gostaria q alguém me ajudasse a definir os campos das tabelas produtos e Estoque.

E tem outro problema, por exemplo, se no lote 1000 o preço de custo foi 20 reais e no lote 2000 o preço de custo foi 30 reais(de um mesmo produto é claro) como eu faço pra refletir essa diferença na hora da venda pro consumidor.


Brunoluisfa

Brunoluisfa

Curtidas 0

Mais Respostas

Aroldo Zanela

Aroldo Zanela

02/05/2004

Colega,

Eu considero que você deve utilizar entidades diferentes para representar o cadastro de [b:beeb714cd7]produtos [/b:beeb714cd7]e a quantidade e preço em [b:beeb714cd7]estoque[/b:beeb714cd7]. O relacionamento (cardinalidade) ocorre assim:

Produtos +------<- Estoque


Para obter o preço, sempre consulte a tabela estoque.


GOSTEI 0
Doc

Doc

02/05/2004

Boa tarde,
Acho que seria legal pensar no objeto produto separado do seu preço e do seu estoque. Assim, eu faria o seguinte: criaria uma tabela de produtos com a UFK (padrão internacional) do produto, sua especificação (ou nome) e outras característica de produto. Depois eu criaria uma tabela de estoque (ítens de estoque) que conteria a UFK como foreign key da tab. produtos, a quantidade daquele ítem no estoque e o tipo de armazenagem dele (endereço de estoque, se houver, prateleira ou freezer...) e criaria uma tabela de preços com a UFK da tabela de produtos, o valor atual dele, o valor anterior e a data do reajuste daquele preço.
É bom pensar em processos separados, onde a integração vem do sistema e não do banco. Assim, você adquire uma margem maior de flexibilidade para os procedimentos.
[]´s :)


GOSTEI 0
Hard.disk

Hard.disk

02/05/2004

Kra, eh possivel que tenha produtos de dois lotes diferentes a venda..
tipo..
produto 1 do lote 1000 que custa 20 reias
e produto 1 do lote 2000 que custa 30 reais..
e os dois a venda ao mesmo tempo..

c isso for possivel de acontecer.. como o preço eh calculado?


GOSTEI 0
Andretapxure

Andretapxure

02/05/2004

Kra, eh possivel que tenha produtos de dois lotes diferentes a venda.. tipo.. produto 1 do lote 1000 que custa 20 reias e produto 1 do lote 2000 que custa 30 reais.. e os dois a venda ao mesmo tempo.. c isso for possivel de acontecer.. como o preço eh calculado?


Ueh... neste caso o estabelecimento pode causar problemas com o cliente pois se o sistema vender no mesmo dia produtos iguais a preços diferentes pro mesmo cliente ou pra clientes diferentes isso dá bode! Como tratar?


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

02/05/2004

geralmente as vendas são feitas em função de um campo no cadastro de produtos. lá vc tem o custo médio e o preço de venda. é nesse preço que vc deve se basear sempre. quando houver reajuste, este deverá ser aplicado sobre o preço médio ou sobre o preço de venda atual e sobrepor o preço de venda. assim nunca acontecerá o problema exposto.
já o custo médio deve ser refeito a cada entrada no estoque.
desenterrei... mas isso já foi discutido em um outro tópico...


GOSTEI 0
Tsfacchini

Tsfacchini

02/05/2004

Uma situação semelhante que venho enfrentando é a seguinte: como no exemplo do colega, tenho um mesmo produto com lotes diferentes, e na hora de faturar, é necessário determinar o lote certo por questões de vencimento, etc. Assim tenho que controlar não só as entradas e saídas dos produtos, mas também dos lotes de cada um. (Obs.: O lojista define o lote conforme o produto que está em sua mão).
Alguém já teve que fazer algo do tipo? Qual a melhor forma de controlar tanto o estoque normalmente como os lotes? Estou com dificuldades para realizar este relacionamento.


GOSTEI 0
Emerson Nascimento

Emerson Nascimento

02/05/2004

isso pode ser feito de várias formas...
uma delas:

no cadastro de produtos você pode informar o tipo de rastreabilidade: lote, serie ou nenhuma
e o critério de avaliação do estoque desse produto:
[i:0a34371848]PEPS[/i:0a34371848] - (primeiro que entra, primeiro que sai - FIFO, na sigla em inglês)
[i:0a34371848]UEPS[/i:0a34371848] - (último que entra, primeiro que sai - LIFO, na sigla em inglês)
Data de validade - óbvio
(pode-se também usar um critério geral, a ser seguido por todos os produtos)

daí, quando você efetuar a venda, o sistema pode escolher o lote automaticamente, em função critério cadastrado ([i:0a34371848]PEPS[/i:0a34371848], [i:0a34371848]UEPS[/i:0a34371848] ou validade [size=8:0a34371848](01)[/size:0a34371848]), ou exibir os lotes que atendem a esse critério [size=8:0a34371848](01)[/size:0a34371848] para que o usuário possa selecionar qual deseja manipular. no caso de série, deve ser informada a série do produto em mãos.
[size=8:0a34371848](01)[/size:0a34371848] [size=9:0a34371848]- desde que haja saldo[/size:0a34371848]

então você deveria ter:

uma tabela de saldos em estoque:
ID
ID_PRODUTO
ID_LOCAL (ALMOXARIFADO/LOJA)
ID_EMPRESA
SALDO

uma tabela de movimentação de estoque:
ID
ID_PRODUTO
ID_LOCAL (ALMOXARIFADO/LOJA)
ID_EMPRESA
QUANTIDADE
DATA_MOVIMENTO
TIPO (ENTRADA/SAIDA)
HISTORICO
DOCUMENTO (INFORMA NOTA FISCAL OU QUALQUER DOCUMENTO QUE DEU ORIGEM À MOVIMENTAÇÃO)
LOTE/SERIE (LOTE/SERIE QUE FOI MOVIMENTADA)
(demais campos que se façam necessários)
* a manipulação dessa tabela movimenta automaticamente a tabela de saldos em estoque (via trigger, por exemplo):

uma tabela de lotes:
ID
ID_PRODUTO
ID_LOCAL (ALMOXARIFADO/LOJA)
ID_EMPRESA
LOTE
DATA (data de entrada do lote)
VENCIMENTO
SALDO
(demais campos que se façam necessários)
* sempre que um lote for criado, deve gerar um movimento na tabela de movimentação de estoque (esse procedimento pode ser automatizado via trigger)

uma tabela de séries (opcional - use se houver controle de série e validade):
ID
ID_PRODUTO
ID_LOCAL (ALMOXARIFADO/LOJA)
ID_EMPRESA
SERIE
DATA (data de entrada do produto)
VENCIMENTO
* sempre que uma série for criada, deve gerar um movimento na tabela de movimentação de estoque (esse procedimento pode ser automatizado via trigger)[size=12:0a34371848][/size:0a34371848]

P.S.: vale ressaltar que um lote abrange um conjunto de produtos iguais, enquanto que a série é um controle individual.

P.S.2: posso ter esquecido algo, pois estou escrevendo de um local público e com um pouco de pressa, mas creio que isso possa te dar uma luz do que fazer.


GOSTEI 0
Bolus

Bolus

02/05/2004

Caro colega,
Conforme informaste o Sistema é para Farmacia, e consequentemente os Preços de Venda (Para Produtos Monitorados) são controlado pelo Governo, ou seja é tabelado, não podendo ser vendido com preço maior que o tabelado.....

Sobre a situação de Ter 2 lotes diferentes com Preço diferente, não vai ocorrer por causa do tabelamento...Ok....

No caso de Produtos Liberados ou Perfumaria, Você deverá calcular o Custo Médio do Estoque e Recalcular o Preço de Venda....
Custo + Margem + Imposto = Preco de Venda..

Espero ter ajudado...


GOSTEI 0
Bolus

Bolus

02/05/2004

Mais uma coisa....
Pela Lei do Consumidor, o mesmo produto não pode ser vendido com preço diferenciado, devendo ser praticado ao Consumidor o de menor valor.

Ou seja: caso na loja tenha um mesmo produto com 2 preços deverá ser cobrado do Cliente, o de menor valor....


Espero ter sido claro....

Pois caso seja praticado vendas em desacordo, poderá dar multa e fechamento da loja....
Não esqueça dos Produtos Psicotrópicos, você precisará de um controle de psicotrópico....


GOSTEI 0
POSTAR