博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Axapta]Ax3中的Inventory adjustment onhand功能
阅读量:6272 次
发布时间:2019-06-22

本文共 2276 字,大约阅读时间需要 7 分钟。

在Axpata3的Inventory模块下Closing and adjustment中有一项功能叫做Adjustment of on-hand inventory,只知道在标准成本方法下调整物料的成本价后需要使用这个功能重估库存价值,但具体是怎么调整的知之甚少,这里从代码的角度看看这个功能是具体执行的。

选取这个功能后会弹出Adjustment of on-hand inventory窗口(AOT/Form/InventAdjInventOnHand),点击Select会提示选取要调整的物料,内部通过类InventAdjOnhandSelect实现,表面上是从InventSum表中查询未Inventory closing的库存(InventSum.closed=No),实际上在得到这些未关账的库存InventSum记录后,仅仅是使用了结果中的物料代码和相应的InventDim初始化另一个类InventSumOpenTransact来统计物料数量和库存成本:

openTransact= new InventSumOpenTransact(perDate,inventSum.itemId,inventDim,inventDimParm);

InventSumOpenTransact则是查询功能执行日期之前未Closing的物料交易记录( inventTrans.valueOpen==InventTransOpen::Yes),且这些InventTrans的入库状态为Purchased或者出库状态为Sold,换言之就是采购收货且Invoice、销售出货且Invoice、工单领料入库且工单已经End。这些InventTrans记录数量和成本过账金额累加的结果被放到临时表tmpFormLookUp,也就是我们在Adjustment of on-hand inventory窗口中看到的内容,在此之前,还要扣除掉Inventory closing中已经关结的数量和成本(InventTrans.setTransValueDate(TransDate transDate)方法)。

在选取要调整的物料(数量、过账成本金额)后我们选取Adustment->Cost price根据物料的当前成本金额调整,调整的方法是将tmpFormLookUp的数量×物料当前成本单价与tmpFormLookUp的过账成本金额的差值放到tmpFormLookUp的Edit now一栏。

下一个动作是点击“Post”按钮过账调整,具体是通过类InventAdj_SumUp执行,主要的是两个方法,updateInvent()调整InventTrans、updateLedger()过账总账交易。

  • updateInvent()针每条tmpFormLookUp的记录循环,再次使用InventSumOpenTransact查询出tmpFormLookUp下辖的所有的InventTrans记录,一条tmpFormLookUp记录可能对应多条InventTrans记录,tmpFormLookUp的Edit now金额需要在这些InventTrans上平摊,这个动作在InventSumOpenTransact.setAdjustment(tmpFormLookUp.adjustNow)中完成。针对每条InventTrans的实际调整动作是在class\InventTransAdjust.UpdateNow()中完成,将调整的金额加总到InventTrans的costAmountAdjustment字段,生成相应的InventSettlement记录。
  • updateLedger()调用InventAdjustPost.updateNow()过账总账凭证,根据明细设置过账一个总额、或分物料组、或单个物料生成凭证,在选取为单个物料生成凭证的情况下,它将对上面updateInvent()生成的inventSettlement记录按物料及过账科目分组形成最终的财务分录。涉及到科目有两个,一个是物料Posting中设置的Inventory profit/loss科目,另一个则是InventTrans的Balance account科目(InventTrans窗口Ledger->Accounts - finicial->Balance account),而它一般则是物料Posting中设置的Inventroy receipt/issue的科目。

还要说明的一个是调整日期的确定,系统使用最后一次Inventory closing的交易日期,这个日期无法手工修改,系统也使用这个日期作为财务分录的日期,也就是说Adjustment of on-hand inventory是建立在最近一次Inventory closing基础上的。

总的来说,功能涉及到的代码还是很多的,用到不少的form、表和类,单整体完成的动作还是比较好理解的,简单的说,就是采用上一次Inventory closing的日期,针对这一日期前(包含该日期)尚未Inventory closing但是Finicial完成的InventTrans,根据选取的调整方法(上面例子中使用cost price)计算要调整的金额,过账后更新调整金额到InentTras的Adjustment字段并生成相应的InventSettlement记录和财务分录。非财务专业,不深究财务范畴这个操作的意义。

转载地址:http://dlopa.baihongyu.com/

你可能感兴趣的文章
“我意识到”的意义
查看>>
淘宝天猫上新辅助工具-新品填表
查看>>
再学 GDI+[43]: 文本输出 - 获取已安装的字体列表
查看>>
nginx反向代理
查看>>
操作系统真实的虚拟内存是什么样的(一)
查看>>
hadoop、hbase、zookeeper集群搭建
查看>>
python中一切皆对象------类的基础(五)
查看>>
modprobe
查看>>
android中用ExpandableListView实现三级扩展列表
查看>>
%Error opening tftp://255.255.255.255/cisconet.cfg
查看>>
java读取excel、txt 文件内容,传到、显示到另一个页面的文本框里面。
查看>>
《从零开始学Swift》学习笔记(Day 51)——扩展构造函数
查看>>
python多线程队列安全
查看>>
[汇编语言学习笔记][第四章第一个程序的编写]
查看>>
android 打开各种文件(setDataAndType)转:
查看>>
补交:最最原始的第一次作业(当时没有选上课,所以不知道)
查看>>
Vue实例初始化的选项配置对象详解
查看>>
PLM产品技术的发展趋势 来源:e-works 作者:清软英泰 党伟升 罗先海 耿坤瑛
查看>>
vue part3.3 小案例ajax (axios) 及页面异步显示
查看>>
软件测试(二)之 Failure, Error & Fault
查看>>