Primero validamos el precio mostado en la Consulta de Articulos, este es el mismo que esta en BD, POS, BD y los módulos de creación de remisiones para clientes y pro (si la promocion asi lo marca).

Replicamos escenario

Validación de promociones en BD
DECLARE @SKU bigint
SET @SKU= 631708----COLOCAR AQUI EL SKU QUE REPORTAN LA DIFERENCIA DE PRECIO
USE thd_sms_8693 ----DONDE XXXX ES EL NÚMERO DE TIENDA
Select 'Vigentes' 'ITEMDETAIL',ph.PromoID,ph.Description,ph.typeID, pt.[Description],ph.StartDate,ph.EndDate,PH.StatusID,CASE PH.StatusID WHEN 0 THEN 'Vacia' WHEN 1 THEN 'Con Planes' WHEN 2 THEN 'Bines Asignados' WHEN 3 THEN 'Tiendas Activadas' WHEN 4 THEN 'Articulos asignados' WHEN 5 THEN 'Tiendas y Articulos asignados' WHEN 6 THEN 'Finalizada' WHEN 7 THEN 'Peticion por autorizacion' WHEN 8 THEN 'Autorizada' WHEN 9 THEN 'Modificada despues de autorizar' WHEN 10 THEN 'Reautorizada' WHEN 11 THEN 'Cancelada' ELSE 'UNKNOWN - No existe tipo de Estatus' END as 'ESTATUS',CASE PH.CustomerTypeID WHEN 0 THEN 'No aplica tienda' WHEN 1 THEN 'PISO' WHEN 2 THEN 'PRO' WHEN 3 THEN 'PISO Y PRO' ELSE '? - No existe tipo - ' + CAST(PH.CustomerTypeID AS CHAR) END AS 'TIPO CTE' ,ph.Description, ph.Created,ph.Modified,id.SKU,Case When pdp.promoid is null then d.[description] else d2.[description] end 'Tipo',Case When id.DiscountTypeID = 2 then id.quantity else pd.TriggerQuantity end 'Compra',Case When id.DiscountTypeID = 2 then '-' else pd.TargetQuantity end 'Regalo', pt.[Description], ph.PromoID, Case When pdp.promoid is null then id.Discount else pdp.Amount end 'Monto',Case When pdp.promoid is null then id.IsActive else pdp.IsActive end 'ID/PDP Active',Ph.IsActive 'PH Active',pd.triggergroupid,Pd.IsActive 'PD Active',IGH.IsActive 'IGH Active' from ItemDetail id (NoLock) LEFT JOIN ItemGroupHeader igh (NoLock) on id.groupid = igh.GroupID LEFT JOIN PromotionHeader ph (Nolock) on ph.promoid = igh.promoid LEFT JOIN PromotionDetail pd (Nolock) on pd.promoid = igh.promoid and pd.TriggerGroupID = igh.GroupID LEFT JOIN PromotionDetailPrice pdp (Nolock) ON pdp.promoid = pd.promoid and pd.sequence = pdp.sequence LEFT JOIN DiscountType d (NoLock) on d.DiscountTypeID = id.DiscountTypeID LEFT JOIN DiscountType d2 (NoLock) on d2.DiscountTypeID = pdp.DiscountTypeID LEFT JOIN PromoType pt (Nolock) on ph.typeid = pt.PromoType where sku = @sku and CONVERT(DATE, GETDATE()) BETWEEN convert(date,ph.startdate) AND convert(date,ph.enddate )
select 'Itemplu',sku, taxcode, warranty, retailprice,Case When Taxcode = 1 then retailprice * 1.16 when Taxcode = 2 then retailprice * 1.08 else retailprice end as retailiva,UOM, ProPrice, Pronivel1, Pronivel2, promoprc, Case When Taxcode = 1 then promoprc * 1.16 when Taxcode = 2 then promoprc * 1.08 else promoprc end as promoiva,PromoStart,PromoEnd,promonumb,Type, RestrictCode,family1,family2,family3,family4,family5,ExceptType12,* from itemplu (NoLock) where sku in (@SKU)
If ((Select [type] From Itemplu (NoLock) where sku = @sku)='G')
Begin
select 'Itemplu - Hijos',sku,retailprice, Case When Taxcode = 1 then retailprice * 1.16 when Taxcode = 2 then retailprice * 1.08 else retailprice end as retailiva ,promoprc, Case When Taxcode = 1 then promoprc * 1.16 when Taxcode = 2 then promoprc * 1.08 else promoprc end as promoiva,PromoStart,PromoEnd,promonumb,RestrictCode,family1,family2,family3,family4,family5,ExceptType12,* from itemplu (NoLock) where sku in (SELECT sku FROM ItemKitDtl WHERE KitNum = @sku)
End

- Azul: Promociones que se encuentran cargadas, pueden estar activas o no (banderas ACTIVE).
- Negro: Precio master sobre el que se aplican las promociones
- Roja: Precio que arroja la vista.
- Amarillos: Promociones de vista order Up, se deberán sincronizar todas excepto MSI.
Proceso para forzar sincronización
/*
DELETE IP
FROM thd_sms_XXXX.dbo.PromotionHeader AS PH
INNER JOIN thd_sms_read.dbo.ItemPromo AS IP ON IP.PromoID = PH.PromoID
WHERE PH.EndDate < GETDATE() OR PH.IsActive = 0
*/
----Después de eso sincronizamos todas las promociones que se vean en vista de ORDER (excepto MSI)
---exec thd_sms_read.dbo.SyncPromosByPromo 42340 ---Campo promo ID
---por ultimo forzamos con el sigueinte exec sin modificar:
---EXEC thd_sms_read..Index_Skus
Con esto el precio debe verse igual en SMS vs ORDER UP y en BD de manera inmediata.
Al final resolvemos el incidente en SMS-Creación de ordenes ligado con el PRB: PRB0041338 y con la siguiente etiqueta OUSyncPromo
