====================================================================
IMPORTANTE: SEMPRE FAÇA BACKUP ANTES DE RODAR QUALQUER COMANDO! ====================================================================

É possível inserir uma promoção em todos os itens de forma automática, é necessário levar em conta alguns critérios a ser inserido na query, recomendo que para um melhor preenchimento seja feito o cadastro de uma promoção de forma manual para que se identifique certos padrões a serem aplicados em todos os outros produtos:
  • Feito o cadastro da promoção de exemplo em apenas 1 item, rode o comando abaixo para buscar as informações a serem aplicadas na query:
select * from ProdutoPromocao where Produto__Codigo= 'Codigo do Produto'
  • Na tela, após rodar o comando vai ser possível encontrarmos os parâmetros necessários para replicarmos no Select nos demais itens:

    • Tipo da Promoção, IDE da Tabela de Preço, Data Inicial da Promoção, Data Final da Promoção, Hora Inicial da Promoção, Hora Final da Promoção, DiaSemana, Qtde, Perc, Valor, Status ,QtdeMaxima, QtdeaPagar, IDScanntech e Descricao

    • Obs.: Os Parâmetros de Codigo e IDE do produto já são relacionadas pelo Select, e caso tenha a necessidade de aplicar certas condições é possível através do condicional where após o select.

Precisa ir copiando e colocando no Select os respectivos campos relacionados aos do Insert. Após rodar a query do insert é necessário rodar também um update na tabela de produtos relacionando com o tipo de promoção ativada.
update Produto set Ultima_Alteracao=getdate(),Tipo_Promocao='Tipo da Promoção(vista no select do ProdutoPromoção no exemplo acima)'

No Exemplo abaixo, demonstra a aplicação em todos os produtos da promoção de 10% entre os dias 25 a 26:
USE [ETrade]
GO
set dateformat ymd
INSERT INTO [dbo].[ProdutoPromocao]
           ([Ide]
           ,[Produto__Codigo]
           ,[Tipo]
           ,[Tabela__Ide]
           ,[DataIn]
           ,[DataFn]
           ,[HoraIn]
           ,[HoraFn]
           ,[DiaSemana]
           ,[Qtde]
           ,[Perc]
           ,[Valor]
           ,[Status]
           ,[DataAlteracao]
           ,[Produto__Ide]
           ,[QtdeMaxima]
           ,[QtdeAPagar]
           ,[IdScanntech]
           ,[Descricao])
   select newid() , CODIGO,'3','11627049-F321-42DE-A3ED-4101BADDBC32','2020-11-25 00:00:00.000','2020-11-26 00:00:00.000','1900-01-01 00:00:00.000','1900-01-01 00:00:00.000','127','0.00000','10.0000000000','0.0000000000','0',Ultima_Alteracao=GETDATE(),IDE,'0','0.00000','0','' FROM PRODUTO
GO;
update Produto set Ultima_Alteracao=getdate(),Tipo_Promocao=3
Fernandocriado em 25 nov 2020

Base conhecimento Estoque Manual

5986 | 0