销售订单审核检查是否有BOM的触发器ERP论坛|用友|金蝶|速达|神州数码 ...
级别: 论坛董事

 
  1. create                  TRIGGER [ryan_PO] ON [dbo].[SEOrder]
  2. FOR update
  3. AS
  4. if not update (fmultichecklevel1)
  5. return
  6. declare @n int   --统计本订单中成品种类
  7. declare @m varchar(50) --提示出错信息
  8. --判断是否有BOM
  9. IF EXISTS (
  10. select i.finterid from inserted i
  11. inner join SEOrderEntry n on n.finterid=i.finterid
  12. inner join t_icitembase a on n.fitemid=a.fitemid and a.ferpclsid='2'
  13.  )
  14. Begin
  15.   if EXISTS (
  16.   select  m.finterid from inserted i
  17.   inner join SEOrder m on m.finterid=i.finterid
  18.   inner join SEOrderEntry n on n.finterid=i.finterid
  19.   left join ICBOM b on b.fitemid=n.fitemid and b.fusestatus='1072'
  20.   where b.fbomnumber is null
  21.    )
  22.      BEGIN
  23.       --统计无BOM成品的个数
  24.         select @n=count(m.finterid)  from inserted i
  25.         inner join SEOrder m on m.finterid=i.finterid
  26.         inner join SEOrderEntry n on n.finterid=i.finterid
  27.         inner join t_icitembase a on n.fitemid=a.fitemid
  28.         left join ICBOM b on b.fitemid=n.fitemid and b.fusestatus='1072'
  29.         where b.fbomnumber is null
  30.      
  31. --显示无BOM物料个数
  32.         select @m='有'+cast(@n AS char(2))+'个自制产品没有BOM或BOM未使用'
  33.         ROLLBACK TRAN
  34.         RAISERROR(@m,18,18)
  35.     END
  36.  
  37. --将用表头中的出货日期,更新子表中的出货日期
  38.    update n set  n.fdate=m.fheadselfs0146,n.fadviceconsigndate=m.fheadselfs0155-7 from inserted i
  39.    inner join SEOrder m on m.finterid=i.finterid
  40.    inner join SEOrderEntry n on m.finterid=n.finterid
  41. --更新表头中的客户名称字段,该名称字段将代入生产任务管理单中
  42.    update m set m.fheadselfs0150=s.fname from inserted i
  43.    inner join SEOrder m on m.finterid=i.finterid
  44.    inner join t_Organization s on i.fcustid=s.fitemid
  45. END
  46. else
  47. --将用表头中的出货日期,更新子表中的出货日期
  48.    update n set  n.fdate=m.fheadselfs0146,n.fadviceconsigndate=m.fheadselfs0155-7 from inserted i
  49.    inner join SEOrder m on m.finterid=i.finterid
  50.    inner join SEOrderEntry n on n.finterid=m.finterid
  51.  
  52. --更新表头中的客户名称字段,该名称字段将代入生产任务管理单中
  53.    update m set m.fheadselfs0150=s.fname from inserted i
  54.    inner join SEOrder m on m.finterid=i.finterid
  55.    inner join t_Organization s on i.fcustid=s.fitemid
( #-=y~%  
郑重声明:资讯 【销售订单审核检查是否有BOM的触发器ERP论坛|用友|金蝶|速达|神州数码 ...】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——