SBO_SP_TransactionNotification这个存储过程主要应用于页面操作(数据库操作)的放行和阻止。当返回0时放行(commit),当返回1时阻止(回滚)。
-- ADD YOUR CODE HERE
if @object_type=‘22‘ and @transaction_type in (‘A‘,‘U‘)
/*开始-判定是否超过价格清单中的价格*/
BEGIN
declare @visorder nvarchar
set @visorder=(select top 1 T1.visorder+1 from --查找行号
OPOR T0 INNER JOIN POR1 T1 ON T0.DocEntry = T1.DocEntry --订单主表和从表关联
where (T1.DocEntry=@list_of_cols_val_tab_del) --条件1,从表主键等于传进来的主键值
AND ISNULL(T0.U_owtm,-1)<>1 --条件2,非审批提交
and (T1.INMPRICE+T1.LineVat/T1.Quantity --条件3,税后价格
>ISNULL((select T2.Price from ITM1 T2 where T2.PriceList=(SELECT TOP 1 T3.ListNum FROM dbo.OCRD T3 WHERE T3.CardCode=T0.CardCode) and T1.ItemCode=T2.ItemCode),0))--价格清单中的价格
)
if @visorder is not null --如果不为空证明存在这种数据,返回行号
begin
select @error=1
select @error_message=N‘第‘+@visorder+N‘行物料的价格超过允许的范围‘
end
end
/*结束-判断是否超过价格清单中的价格*/