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的计算方法,公式,业务逻辑不是很困难的事情。

posted @ 2013-05-10 17:31  信息化建设  阅读(1270)  评论(0编辑  收藏  举报