Atualizando Estoque com vários status
Pessoal, preciso de ajuda, para desenvolver essa lógica. Eu tenho que atualizar um estoque que o produto pode está em 4 estados, mas o pedidos tb pode está em estados. Por exemplo:
Tabela Pedido com uma subtabela dos produtos relacionados, o pedido pode está como aguardanando, assinado, caminhao e entrega, só que dependendo do estado do pedido, a tabela produto tem 4 estados tb, disponivel, teste, rota, sistema. então aí vai a bomba: se eu entrar com um pedido novo, ele vai para sistema a quantidade de produtos do pedido, se eu alterar para rota, os produtos vão para rota... então, como eu faço para chamar uma trigger dentro de outra, porque existem mais validações, esse aqui é apenas um deles mais básico, que praticamente é chamar uma trigger dentro da outra... ou é procedure... alguém tem uma luz??? Delphi seattle e firebird 2.5. valew
Tabela Pedido com uma subtabela dos produtos relacionados, o pedido pode está como aguardanando, assinado, caminhao e entrega, só que dependendo do estado do pedido, a tabela produto tem 4 estados tb, disponivel, teste, rota, sistema. então aí vai a bomba: se eu entrar com um pedido novo, ele vai para sistema a quantidade de produtos do pedido, se eu alterar para rota, os produtos vão para rota... então, como eu faço para chamar uma trigger dentro de outra, porque existem mais validações, esse aqui é apenas um deles mais básico, que praticamente é chamar uma trigger dentro da outra... ou é procedure... alguém tem uma luz??? Delphi seattle e firebird 2.5. valew
Hermeson Gonçalves
Curtidas 0
Melhor post
Osmar Filho
04/12/2016
Bom dia Hermeson.
No seu caso eu construiria uma procedure que seria chamada pela trigger.
Assim, você pode chamar várias procedures dentro de uma mesma trigger.
No seu caso eu construiria uma procedure que seria chamada pela trigger.
Assim, você pode chamar várias procedures dentro de uma mesma trigger.
GOSTEI 1
Mais Respostas
Hermeson Gonçalves
02/12/2016
mas o problema é esse? tem como criar um while dentro da procedure, para ele atualizar todos os itens com o mesmo código? por exemplo, toda vez que alterar o status do pedido de aguardando para rota, ai ele buscar no banco de dados os itens ddaquele pedido, vai tirar do total disponivel para alocado? pq eu vou mexer na tabela pedidos, mas ele vai fazer a alteração na tabela subpedidos. deu para entender?
GOSTEI 0
Osmar Filho
02/12/2016
Bom,
Você pode varrer os itens do pedido com uso de cursor.
No caso do Firebird, use o comando FOR SELECT
for select
<lista de campos>
from <tabela>
where <condicao>
into <lista de variáveis que receberão os campos>
do
begin
// SEU CÓDIGO AQUI
end
As variáveis devem declaradas e qdo usar no código deve ser precedida de dois pontos.
Ex.:
DECLARE VARIABLE dTOTAL DOUBLE;
:dTOTAL = 0;
Você pode varrer os itens do pedido com uso de cursor.
No caso do Firebird, use o comando FOR SELECT
for select
<lista de campos>
from <tabela>
where <condicao>
into <lista de variáveis que receberão os campos>
do
begin
// SEU CÓDIGO AQUI
end
As variáveis devem declaradas e qdo usar no código deve ser precedida de dois pontos.
Ex.:
DECLARE VARIABLE dTOTAL DOUBLE;
:dTOTAL = 0;
GOSTEI 1