一些通用的控制

----------------------------------采购收货数量不能超出采购订单数量------------------------------------------------------

SELECT TOP 1 @ERROR = 1, 

             @ERROR_MESSAGE = N'物料:' + t1.ItemCode + N' 收货数量已超出订单数量!

                        订单未清数量为:' + CAST (t3.OpenCreQty AS NVARCHAR) 

                        + N', 本次总计收货数量为:' 

                        + CAST (t1.Quantity AS NVARCHAR) 

                              FROM 

                                  (SELECT ItemCode, BaseEntry, BaseLine, SUM (Quantity) AS Quantity 

                                           FROM PDN1 AS t0 

                                            WHERE (DocEntry = @list_of_cols_val_tab_del) GROUP BY ItemCode, BaseEntry, BaseLine) 

                                            

                                    AS t1 

                                       LEFT OUTER JOIN 

                                          (SELECT t2.LineNum, t2.OpenCreQty, t2.DocEntry 

                                                   FROM 

                                                         (SELECT ROW_NUMBER () OVER (PARTITION BY T.DOCENTRY ORDER BY t.LogInstanc DESC) indx,

                                                                   t.LogInstanc, t.LineNum, t.OpenCreQty,t.DocEntry 

                                                                   FROM ADO1 t WHERE ObjType = 22 ) t2 

                                                                                        WHERE t2.indx = 1) t3 

                                                                        

                                                                            ON t1.BaseLine = t3.LineNum and t1.BaseEntry =t3.DocEntry 

                                                                                 WHERE t3.OpenCreQty < t1.Quantity

--------------------------------------------------------------------------------------------------------------------------

SELECT TOP 1 @error = 1, 

        @message = N'子物料:' + CAST (t1.ItemCode AS VARCHAR) + N' 未发过货,订单不能关闭!如果确实不需要,请从工单中删除该物料!' 

       FROM OWOR T0 INNER JOIN WOR1 T1 ON T0.DocEntry = T1.DocEntry 

       WHERE T0.DocEntry = #1 AND T1.IssuedQty = 0 AND T0.RjctQty +T0.CmpltQty >0

---------------------------------------------------------------------------------------------

采购订单数量不能超出采购申请

SELECT TOP 1 @error = 1,

            @message = N'第' + CAST (t.VisOrder + 1 AS VARCHAR) + N'行' 

                       + CASE WHEN t.BaseType <> 1470000113 THEN N'没有基于采购申请单!' 

                              WHEN t.Quantity < t.PoQty THEN N'累计下达订单已超出了申请单数量!' END

            

             FROM 

                     (SELECT T0.VisOrder + 1 VisOrder, t0.BaseType, T1.Quantity, 

                             SUM (T2.Quantity) OVER (PARTITION BY T2.BASEENTRY, T2.BASELINE) PoQty 

                             

                             FROM POR1 T0 

                                   LEFT OUTER JOIN PRQ1 T1 ON T0.BaseType = T1.ObjType AND T0.BaseEntry = T1.DocEntry AND T0.BaseLine = T1.LineNum 

                                   LEFT OUTER JOIN (POR1 T2 INNER JOIN OPOR T3 ON T2.DocEntry = T3.DocEntry AND T3.CANCELED = 'N') 

                                   

                                   ON T2.BaseType = T1.ObjType AND T2.BaseEntry = T1.DocEntry AND T2.BaseLine = T1.LineNum

                                    WHERE T0.DocEntry = #1) T 

                                       WHERE (t.BaseType <> 1470000113 OR t.Quantity < t.PoQty)


---------------------------------------------------------------------------------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值