• Enterprise Solution 已确认数Qty_Commited的计算方法


    ERP的已确认数量逻辑计算,数量之间的关系计算

     /*
     qtyAvailable = item.QtyOnHand - item.QtyReserved - item.QtyCommitted;
     可用数量=在手量 -  预留数量 -  已确认数量 
     gbitem.QtyCommitted 来自于icbaln.QtyCommitted的累计
    
     decimal qtyCommitted = 0;
                            foreach (InventoryBalanceEntity inventoryBalance in inventoryBalanceCollection)
                                qtyCommitted += inventoryBalance.QtyCommitted;
                            item.QtyCommitted = qtyCommitted;
    
    totalQtyCommitted = (inventoryIssueValue + shipmentValue + kitIssueValue + transferValue + assortmentComponetValue);
    
    
      */
      
    DECLARE @loc NVARCHAR(50)
    DECLARE @itemNo NVARCHAR(50)
    SET   @loc='G'
    SET @itemNo='1-014314-501'
    --InventoryBalanceManager.RefreshQtyCommitted
    
    --Pending Inventory Issue and Transfer
    SELECT SUM(D.QTY * d.LOT_SIZE) FROM ICMOVH h,icmovd d WHERE h.REF_NO=d.REF_NO AND h.POSTED='N'
       AND d.ITEM_NO=@itemNo  AND d.LOC_FROM=@loc
    
    
    --Pending Shipment
    
    SELECT sum(d.QTY_SHIPPED * d.LOT_SIZE) FROM SLSHPH h,slshpd d WHERE h.REF_NO=d.REF_NO AND h.POSTED='N' AND
        d.ITEM_NO=@itemNo  AND d.SHIP_FROM=@loc
      
      
    --Pending Shipment Assortment Component
    
    SELECT sum(f.QTY_ISSUED * d.LOT_SIZE) FROM SLSHPH h,slshpd d,slshpf f
        WHERE h.REF_NO=d.REF_NO AND h.POSTED='N' AND d.ENTRY_NO=f.ENTRY_NO AND h.REF_NO=f.REF_NO AND 
          f.PART_ITEM_NO=@itemNo    AND d.SHIP_FROM=@loc
    
    
    --Pending Multiple Kit Issue - Issue
    
    SELECT sum(s.QTY) FROM PRPMMH h ,prpmms s WHERE h.REF_NO=s.REF_NO AND h.POSTED='N' 
     AND s.LOC=@loc  AND s.ITEM_NO=@itemNo
    
    
    --Pending Multiple Kit Issue - Transfer 
    
    SELECT isnull(t.QTY,0)  + isnull(t.QTY_SPARE,0) FROM PRPMMH h,prpmmt t WHERE h.REF_NO=t.REF_NO AND h.POSTED='N'
     AND t.LOC_FROM=@loc  AND t.ITEM_NO=@itemNo
     

    上面展示出来的是我的解答过程,下面我解释一下,如何得到这个结果。先上必须的工具 JetBrains Resharper

    image

    在Windows 7 x86,2G内存的情况下,6.x这个版本跑的不慢,7.x版本太影响VS的响应速度。

    image

    如果想找一个变量在哪些地方被用到过,用到过的含义是指,使用它的值和给它赋值,对应于属性的get和set方法。

    然后在Find Result窗口看到如下所示的界面

    image

    这个图非常直观的解释了变量QtyCommitted在哪些地方被用到过。以此为线索,追踪进去,便可以查到文章开头的公式算法。我依据此方法,可以轻易的分析ERP中的各种公式计算方法。

    几年前,我想找出金碟ERP中的计算公式算法,依据的原理是Database Compare工具。做一个业务运算,比如采购收货进仓,会产生一系列的数据操作,在操作完成后,马上比较操作前和操作后的数据库内容,可以知有哪些数据实体被插入到数据库中,影响了哪些表,对业务的了解以此方式进行。

    顺便提一下Database Comare工具有两个思路,Schema Compare和Data Compare,数据比较和脚本比较。Visual Studio 进化到2010,已经内置此功能

    image

    好的工具被在实践中领会应用,再加上一些基础的ERP业务逻辑知识,分析一下ERP的计算方法,公式,业务逻辑不是很困难的事情。

  • 相关阅读:
    zepto的源代码注释(转)
    关于js的连续赋值
    一道js题
    深入理解setTimeout的作用域
    深入理解setTimeout和setinterval
    webapp之路--apple私有属性apple-touch-icon
    javascript中的原型继承
    webapp之路--百度手机前端经验(转)
    (转)浏览器的渲染原理
    node.js study: cluster
  • 原文地址:https://www.cnblogs.com/JamesLi2015/p/3071598.html
Copyright © 2020-2023  润新知