Update IBexpert
19/02/2013
0
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á..
Rau11
Posts
19/02/2013
William
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.
19/02/2013
Perivaldo Martins
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!
19/02/2013
Rau11
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.
20/02/2013
Rau11
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.
20/02/2013
Perivaldo Martins
Boa sorte e bons códigos!
20/02/2013
Rau11
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 ***".
Clique aqui para fazer login e interagir na Comunidade :)