U8根据采购订单制单人匹配存货档案中存在采购员的物料

U8根据采购订单制单人匹配存货档案中存在采购员的物料,查询采购订单中最低价格,显示在采购订单扩展自定义项27和28上

CREATE TRIGGER [dbo].[Tir_Poextra]
ON [dbo].[PO_Podetails_extradefine]
FOR INSERT, UPDATE
AS
DECLARE @ID NVARCHAR(500);
DECLARE @cPurPersonCode NVARCHAR(500);
DECLARE @cVenCode NVARCHAR(500);
DECLARE @cInvCode NVARCHAR(500);


SELECT @ID = Inserted.ID
FROM Inserted;

SELECT @cPurPersonCode =
(
    SELECT cPsn_Num
    FROM UserHrPersonContro
    WHERE cUser_Id =
(
    SELECT cUser_Id FROM UA_User WHERE cUser_Name = PO_Pomain.cMaker
)
),
       @cVenCode = PO_Pomain.cVenCode,
       @cInvCode = PO_Podetails.cInvCode
FROM dbo.PO_Pomain
    JOIN dbo.PO_Podetails
        ON PO_Podetails.POID = PO_Pomain.POID
           AND dbo.PO_Podetails.ID = @ID;


UPDATE PO_Podetails_extradefine ---PO最低单价 自定义字段27
SET cbdefine27 =
    (
        SELECT MIN(iUnitPrice)
        FROM dbo.PO_Pomain
            JOIN dbo.PO_Podetails
                ON PO_Podetails.POID = PO_Pomain.POID
                   AND PO_Pomain.cVenCode = @cVenCode
                   AND PO_Podetails.cInvCode = @cInvCode
                   AND PO_Podetails.cInvCode IN
                       (
                           SELECT cInvCode FROM dbo.Inventory WHERE cPurPersonCode = @cPurPersonCode
                       )
                   AND PO_Podetails.ID != @ID
    )
WHERE PO_Podetails_extradefine.ID = @ID;

---最低单价比率 自定义字段28
UPDATE PO_Podetails_extradefine
SET cbdefine28 = ROUND(   (((ISNULL(po_p.iUnitPrice, 0) - (CASE ISNULL(po_ex.cbdefine27, 0)
                                                               WHEN 0 THEN
                                                                   po_p.iUnitPrice
                                                               ELSE
                                                                   ISNULL(po_ex.cbdefine27, 0)
                                                           END
                                                          )
                            ) / (CASE ISNULL(po_ex.cbdefine27, 0)
                                     WHEN 0 THEN
                                         po_p.iUnitPrice
                                     ELSE
                                         ISNULL(po_ex.cbdefine27, 0)
                                 END
                                )
                           ) * 100
                          ),
                          4
                      )
FROM PO_Podetails_extradefine po_ex,
     dbo.PO_Podetails po_p
WHERE po_ex.ID = @ID
      AND po_p.ID = @ID
      AND ISNULL(po_p.iUnitPrice, 0) <> 0;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值