[5系]采购订单数量不能大于(请购数量-已订数量)

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go

/****** Object:  Trigger dbo.p_orderdetail_ai    Script Date: 2013-8-26 10:51:52 ******/

/****** Object:  Trigger dbo.p_orderdetail_ai    Script Date: 2013-2-20 9:02:28 ******/

ALTER trigger [p_orderdetail_ai] on [dbo].[p_orderdetail] for insert 
as
  declare @referbilltype t_integer, 
          @referbillid t_keyid, 
          @referitemno t_keyid, 
          @refergoodsid t_integer,
          @unitid t_integer,
          @unitquantity t_quantity,
          @extqty t_quantity,
          @closed  t_integer,
        @referqty t_quantity, --  referqty被引用数量
        @prunitquantity t_quantity, ---明细自定义1=请购单数量 
        @userdef1 t_userdef,
        @itemno t_keyid, 
        @msg t_remark --增加抛出异常报错参数
begin
  set nocount on
  declare p_orderdetail_ai_cr cursor local forward_only static optimistic for 
  select n.referbilltype, n.referbillid, n.referitemno,n.goodsid, n.unitid,n.unitquantity, n.extqty ,p.closed,p.referqty,p.unitquantity ,n.itemno
  from inserted n --  p_orderdetail n 
  left join p_requestdetail p on n.referbilltype=5 and n.referbillid=p.billid and n.referitemno=p.itemno
  open p_orderdetail_ai_cr 
  fetch next from p_orderdetail_ai_cr 
  into @referbilltype, @referbillid, @referitemno,@refergoodsid, @unitid,@unitquantity, @extqty,@closed,@referqty,@prunitquantity,@itemno
  while (@@fetch_status = 0)
  begin
    if(@closed=1)
    begin
      exec throwexception 'billcloseerror'
      return
    end
    -- lsl modify 2009-06-12 检查引用的单据/记录是否有效
    if(@referbilltype<>12 and @referbilltype<>16) 
    begin
      exec checkbillgoods @referbilltype,@referbillid,@referitemno,@refergoodsid
      --更新引用次数和引用数量
      exec modifybillreferqty 1,@referbilltype,@referbillid,@referitemno,@unitid,@unitquantity,@extqty
    end
  /* else   lsl modify 2009-06-29  采购订单引用销售订单不回填任何引用数量字段
      update s_orderdetail set purrequestqty=isnull(purrequestqty,0)+@unitquantity 
        where billid=@referbillid and itemno=@referitemno  */
    if (@referbilltype = 12) --heyao 20130820 新需要要求采购订单也回填销售订单
    begin
      exec checkbillgoods @referbilltype,@referbillid,@referitemno,@refergoodsid
      update s_orderdetail set purrequestqty=isnull(purrequestqty,0)+dbo.fn_getunitqty(goodsid,@unitquantity,@unitid,unitid) 
      where billid=@referbillid and itemno=@referitemno
    end
---------------------------------------------------------------------
--林13632349867 2020-07-08 采购订单引用请购单,数量不能大于请购单数量
    if(@referbilltype=5 )
    begin
    exec checkbillgoods @referbilltype,@referbillid,@referitemno,@refergoodsid
-- select billid,unitquantity,referqty,greferqty,greferextqty  from p_requestdetail where billid=8
        if(@unitquantity>(@prunitquantity-@referqty))
            begin
                exec checkbillgoods @referbilltype,@referbillid,@referitemno,@refergoodsid      
                --declare @msg2 VARCHAR;
                set @msg = '第 '+cast(@itemno-1 as VARCHAR)+' 行数量超标,请购数量 '+cast(Convert(decimal(20,2),@prunitquantity) as varchar)+' 其中已下订购数量 '+cast(Convert(decimal(20,2),@referqty) as varchar)+' ,不得超过 '+cast(Convert(decimal(20,2),@prunitquantity-@referqty) as varchar)
                exec throwexception @msg
                break
                return
            end
    update p_orderdetail set userdef1=@prunitquantity,userdef2=@referqty+@unitquantity where referbillid=@referbillid and referitemno=@referitemno and goodsid=@refergoodsid
    end    
---------------------------------------------------------------------

fetch next from p_orderdetail_ai_cr 
    into @referbilltype, @referbillid, @referitemno,@refergoodsid, @unitid,@unitquantity, @extqty,@closed,@referqty,@prunitquantity,@itemno
  end

close p_orderdetail_ai_cr
  deallocate p_orderdetail_ai_cr
end

【速达软件】【速达5000】需求采购订单数量不能大于(请购数量-已订数量)相关推荐

  1. 计算机速录方法,速录软件速录方法细说

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 使用的设备及输入法: 除速录机以外,基本上都是安装软件后使用计算机键盘来进行输入,但是在打法上会有所区别.当然还有的,是不需要任何软件,直接输入,除使用搜 ...

  2. 采购订单管理流程:定义、好处和步骤

    采购订单流程在使你的业务取得成功方面发挥着关键作用.如果没有高效准确的采购订单 管理流程,时间和资源就会被浪费,不必要的错误也会变得司空见惯.   什么是采购订单流程?   采购订单帮助企业了解和核算 ...

  3. 采购订单管理的四种常见类型

    采购管理对于任何成功的企业都至关重要.如果你的企业没有统一的采购管理流程,那么你可能无法对你的采购进行解释,并可能犯下代价高昂的采购错误.采购订单或许是有效采购管理流程中最重要的部分.让我们来看看采购 ...

  4. 为什么采购订单管理非常重要?

    采购管理中一个重要的工作就是将采购需求转换成采购订单.采购订单让你对已经提供的产品或服务有个全面的了解.乍一看,这也许似乎不太重要,但是订单历史可以确定公司的绩效,暗示应做出哪些改变,进而优化当前的业 ...

  5. oracle 批量下单,3.12批量创建采购订单

    3.12.1   业务方案描述 在生成采购订单前,由采购员审核计划结果,根据供应商的供货状况调整供应商供货数量.供货日期. 所有合格供应商都能够通过下单平台批量下达采购订单,尽管供应商没有供货比例,或 ...

  6. sap mm采购订单交货已完成标识详解

    1.交货已完成标识:这个字段作用是用于控制采购订单中的项目是否还有未清项的,它可以由系统在达成交货完成条件后自动设定,也可以在未达成交货完成条件时,通过手动设定,它的主要作用体现在MRP计算逻辑中 举 ...

  7. 未清采购订单关闭最全的方法

    1.如采购订单未产生过交货,ME22N,行项目删除或采购订单删除: 2. 如已产生过交货,ME22N ,采购订单项目-交货,勾选"交货已完成": 3. 如启用了采购订单审核,先ME ...

  8. 中采购订单批导的bapi_五:认识SAP SD销售模式之第三方销售和单独采购

    一:第三方销售:公司接到客户的订单后,针对客户所需要的产品直接像供应商采购,而后直接由该供应商负责进行送货到客户处二:单独采购:公司接客户的订单后,针对客户所需要的产品直接像供应商采购,而后该供应商负 ...

  9. sap采购申请自动转采购订单_SAP idoc功能够强大: 采购订单修改自动触发销售订单修改...

    笔者在上一篇文章 SAP idoc功能够强大: 采购订单下达自动触发销售订单创建 中详细说明了如何通过IDOC来实现当公司A下达向公司B的采购订单自动在公司B中创建对公司A的销售订单,且传回订单确认信 ...

  10. 费用型采购订单(科目分配类别=K)向成本中心计入费用

    文章目录 一.概述 二.费用型采购订单创建收货发票校验 2.1 创建费用型采购订单-ME21N 2.2 收货-MIGO 2.3 发票校验-MIRO 三.成本中心费用查询-S_ALR_8701361 3 ...

最新文章

  1. 多传感器融合:自动驾驶(下)
  2. PostgreSQL_row_number() over()
  3. 关于Tomcat上请求的编解码问题
  4. java如何画出表格_Java利用iText7画个性化表格
  5. git中的gitgnore是什么? 码云gitee
  6. JDK 监控和故障处理工具总结
  7. 操作系统 课堂练习题01【15道 经典题目】
  8. SAP Kyma的environmment和SAP 云平台的Global Account
  9. java发送c语言结构体_C语言中结构体直接赋值?
  10. Xcode 7 App Transport Security has blocked a cleartext HTTP 报错解决办法
  11. std::map的使用
  12. html文字阴影php,HTML_html5文字阴影效果text-shadow使用示例,复制代码代码如下: !DOCTYPE h - phpStudy...
  13. Java虚拟机(一)——内存管理
  14. Tomcat access log配置
  15. 兔子--R.java丢失原因及解决的方法
  16. 漫谈基础工业软件开发
  17. 软件企业变更管理流程
  18. AD原理图设计中如何添加NET CLASS和差分线
  19. double cbrt(double x)
  20. c++ Numeric limits

热门文章

  1. linux超出频率限制黑屏,linux suse 超出频率限制 问题
  2. LaTex 常用语法
  3. 四阶龙格库塔法 matlab ode45,微分方程的数值解法matlab(四阶龙格—库塔法)
  4. dcs world f15c教学_陕西【精细化工dcs控制】施工
  5. 经典字符串匹配算法——KMP算法
  6. [leetcode]187. Repeated DNA Sequences寻找DNA中重复出现的子串
  7. BP神经网络 MATLAB源程序
  8. 学习笔记:12864液晶模块的详细使用
  9. [zigbee][z-Stack]协议栈简介及工作流程
  10. 计算机页面的工具,网页智能填写工具