Update IBexpert

19/02/2013

0

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á..
Rau11

Rau11

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

19/02/2013

Perivaldo Martins

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

20/02/2013

Perivaldo Martins

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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar