Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 407
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

Utilizar Trigger ? ou não ?

21-05-2013 21:17

Tenho uma tabela onde os produtos são cadastrados conforme sua data de vencimento, acontece que, posso ter o mesmo produto cadastrado 1, 2 ou mais vezes, o que vai separar é a data, até ai tudo ok, sem problemas, só que, ao efetuar uma venda, utilizando o trigger para dar baixa no estoque, este esta dando baixa repetida, isto é, se eu tenho 2 produtos iguais com datas diferentes, da baixa igual nos 2.

Tipo:

idj | cod_loj | quan_loj | venc_loj
1 | 146126 | 5 | 2013-05-25
2 | 546126 | 10 | 2014-02-01
3 | 546126 | 5 | 2013-05-31
4 | 146126 | 33 | 2013-05-30

Onde venc_loj é a data de vencimento do produto, quando efetuo uma venda, dispara o trigger , exemplo , se eu vender 3 produtos 546126 , ele ta dando baixa nos dois itens , pois tenho o mesmo produto cadastrado 1, 2 ou mais vezes, ficando assim:

idj | cod_loj | quan_loj | venc_loj
1 | 146126 | 5 | 2013-05-25
2 | 546126 | 7 | 2014-02-01
3 | 546126 | 2 | 2013-05-31
4 | 146126 | 33 | 2013-05-30

segue um exemplo da trigger :
DELIMITER $ CREATE TRIGGER 'Tgr_ItensVenda_Insert' AFTER INSERT ON 'novodia' FOR EACH ROW BEGIN UPDATE loja SET quan_loj = quan_loj - NEW.sa_ndia WHERE sap_loj = NEW.prod_ndia ORDER BY venc_loj ASC; END$ DELIMITER ;

Não sei se este seria o método correto , pois , mesmo separando , como controlar pela data ?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Utilizar Trigger ? ou não ?

21-05-2013 21:32

Porque mesmo se baseando na data do produto, não se baseia no idj também que é único? Assim a referência será o idj.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 407
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

Utilizar Trigger ? ou não ?

22-05-2013 08:24

Fiz diferente, não tem como nem identificar pelo idj , pois se eu tiver o valor de estoque igual a 3 neste idj e vender 6 , vai me dar valor = -3 , o fato da necessidade de mostrar por data de vencimento dificulta , logo , fiz uma nova tabela onde controlo só o estoque , tirei o estoque por data , assim mostro que tenho material com aquela data , porém não mostro a quantidade daquela data, e outra mostro o estoque total daquele material , assim , fico com dois itens destintos , sendo o controle por data manual na hora de deletar, sabendo que aquele ja acabou , apenas clico no icone e deleto.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Utilizar Trigger ? ou não ?

22-05-2013 08:50

Eu imagino uma estrutura de estoque feito assim:

Quando você cadastra um produto no sistema, supostamente baseado por uma ref, vai para duas tabelas: estoque e produtos

estoque
id - cod_produto - quantidade

1 - 100 - camisa
2 - 200 - calça

Vamos supor que você venda 2 produtos da tabela produtos, no qual você vai pegar a quantidade da tabela estoque.

O que você faz, na tabela produtos também tem o cod_produto, que é único para aquele produto com aquelas características.

Quando você vender, você usa aquele cod_produto e faz o UPDATE em estoque

UPDATE estoque SET quantidade=quantidade-$produtos_vendidos WHERE cod_produto='$cod_produto'

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 407
Sexo: Masculino
Localização: VOLTA REDONDA RJ
Contato:

Utilizar Trigger ? ou não ?

22-05-2013 10:22

no final ficou assim mesmo, só que .... em 2 tabelas sendo uma para data e outra para estoque:

id - cod - prod - data
1 - 100 - arroz - 21/03/2015 - faz de conta que esta entrega veio 7 itens
2 - 200 - feijao - 21/03/2015 - faz de conta que esta entrega veio 10 itens
3 - 100 - arroz - 20/05/2015 - faz de conta que esta entrega veio 5 itens

quantidade
id - cod - quant
1 - 100 - 12
2 - 200 - 10

Conforme nova noma brasileira que esta sendo implantada , as empresas deverão postar no codigo de barra as datas de validades , onde estas deverão ser informadas ao passar no caixa .

da uma pesquisada caso vc não tenha conhecimento desta nova norma, vamos ter que rever nosso conceito de controle de estoque.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17666
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Utilizar Trigger ? ou não ?

22-05-2013 11:02

Felizmente não trabalho com script desse tipo. Mas realmente é uma coisa a se analisar.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado