Update IBexpert

19/02/2013

5

bom dia
preciso fazer um update em 03 tabelas (NF_SAIDA, lanctos_estoque, estoque)
situação:
foram feitas X vendas, com uma operação que não baixou estoque.
necessidade:
somar a quantidade de produtos vendidos nesse periodo, contendo a quantidade na tabela lanctos_estoque
para atualizar o estoque, na tabela produtos.

obrigado desde já..
Responder

Posts

19/02/2013

William

Colega vc mencionou que necessita executar update em 3 tabelas, mas não ficou bem claro como e em quais tabelas.

Vamos dividir sua dúvida:
1 - Quais CAMPOS deverão ser atualizados nas respectivas tabelas?
- NF_SAIDA
- lanctos_estoque
- estoque

2 - Sobre quais condições deverá ser disparado esse UPDATE?

Respondendo essas questões já podemos escrever uma instrução SQL que atenda sua necessidade.
Responder
bom dia
preciso fazer um update em 03 tabelas (NF_SAIDA, lanctos_estoque, estoque)
situação:
foram feitas X vendas, com uma operação que não baixou estoque.
necessidade:
somar a quantidade de produtos vendidos nesse periodo, contendo a quantidade na tabela lanctos_estoque
para atualizar o estoque, na tabela produtos.

obrigado desde já..


Deixa ver se eu entendi...

[TABELAS]
- NF_SAIDA
Você vai somar a quantidade de produtos vendidos em determinado período, estas vendas então nessa tabela acima.

- LANCTOS_ESTOQUE
Vai checar se houve lançamentos nessa tabela aqui para essas vendas.

- ESTOQUE
E vai debitar da sua tabela de estoque.

É mais ou menos isso?


Boa sorte e bons códigos!
Responder

19/02/2013

Rau11

NF_SAIDA = lançaram 100 notas, com operação que não da BAIXA no estoque.
lancto_estoque = aonde são lançados os produtos referente a tabela NF_SAIDA
nesse casso, vai ser necessário um insert na tabela lancto_estoque, referente as notas da nf_saida que estava com a operação de 'N' não dar baixa no estoque.
tabela produtos = para atualizar o estoque.
Responder

20/02/2013

Rau11

o insert necessario

INSERT into lanctos_estoque (empresa, lancto, data, pro_codigo, quantidade, preco_custo, operacao, usu_codigo, clifor_codigo, tipo, documento, custo_medio, total_liquido, clifor_nome, nf, serie, data_servidor, hora_servidor, maquina)
select NF.empresa, (select gen_id (E001_LANCTOESTOQUE, 1) from rdb$database), NF.dt_emissao, NI.pro_codigo,
NI.quantidade, NI.preco_custo, 'S',
NF.usu_codigo, NF.cli_codigo, 'NFS',
NI.nfs, NI.preco_custo, NI.total_liquido, NF.cli_nome,
NF.nota_fiscal, NF.serie, NF.dt_emissao, NF.hora_saida, 'teacher'--NF.maquina
from NF_SAIDA NF
inner join NFS_ITENS NI
on (NF.empresa = NI.empresa and NF.nfs = NI.nfs)
where NF.empresa = 1 and NF.dt_emissao between '01.01.2013' and '31.01.2013' and
NF.dt_cancelamento is null and
NF.opf_codigo = '4' and
NF.concluida = 'S'

agora falta o update, para somar a quantidade existente de produtos na lanctos_estoque
e, dar baixa "diminuir" a quantidade de estoque, na tabela produtos, conforme os novos lançamentos que foram introduzidos a partir do insert.

Responder
Já pensou em fazer essa atualização via TRIGGER?

Boa sorte e bons códigos!
Responder

20/02/2013

Rau11

falta só um passo.
o update está 'pronto'

update produtos p
set p.estoque = p.estoque -
(select sum(quantidade) from lanctos_estoque le
where lancto between 74032 and 7500 and
le.pro_codigo = p.pro_codigo and empresa = 1)

erro:
The insert failed because a column definition includes validation constraints.
validation error for column ESTOQUE, value "*** null ***".
Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira