iDempiere 使用指南 库存出入库研究
Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/
iDempiere官方中文wiki主页 http://wiki.idempiere.org/zh
iDempiere 中文社区www.idempiere.org.cn
iDempiere 中文社区QQ群 65713012
本文研究iDempiere的库存出入库机制,主要涉及到2张表格m_storageonhand, m_storagereservation以及视图m_storage。
可以先参照花生的wiki,了解一下这3张表的用途,然后再回来看一下本文的实际测试部分。
http://wiki.idempiere.org/zh/库存管理机制
本测试使用的组织为Fertilizer,warehouse为Fertilizer
由于后面account设置问题,最后一个测试切换到HQ组织进行,但是原理是相同的。
仓库设置locator如下
使用Material Receipt进行一笔接收操作
接收单如下,分别接收到两个locator中,RAW1和RAW2,数量分别为100,200
对接收单执行complete操作。
由于account设置问题,Complete出错,新建PO再建立receipt order操作了
更新代码以后好像出现了一个Counter Document的东西,导致了前面直接建立receipt order出错
接收完成以后,查看物料的库存,可以看到,已经显示库存量增加
可以看到,系统的located at 功能,并没有显示现有量的汇总信息,而是直接显示了每个locator的现有量信息
查看数据库,可以看到,M_Storage是一个视图,定义如下
m_storage由两张表组成,分别是m_storageonhand和m_storagereservation
CREATE OR REPLACE VIEW m_storage AS
SELECT s.m_product_id,
s.m_locator_id,
s.ad_client_id,
s.ad_org_id,
s.isactive,
s.created,
s.createdby,
s.updated,
s.updatedby,
s.qtyonhand,
0 AS qtyreserved,
0 AS qtyordered,
s.datelastinventory,
s.m_attributesetinstance_id,
s.m_storageonhand_uu AS m_storage_uu,
s.datematerialpolicy
FROM m_storageonhand s
UNION ALL
SELECT sr.m_product_id,
w.m_reservelocator_id AS m_locator_id,
sr.ad_client_id,
sr.ad_org_id,
sr.isactive,
sr.created,
sr.createdby,
sr.updated,
sr.updatedby,
0 AS qtyonhand,
sr.qty AS qtyreserved,
0 AS qtyordered,
sr.datelastinventory,
sr.m_attributesetinstance_id,
sr.m_storagereservation_uu AS m_storage_uu,
NULL::timestamp without time zone AS datematerialpolicy
FROM m_storagereservation sr
JOIN m_warehouse w ON sr.m_warehouse_id = w.m_warehouse_id
WHERE sr.issotrx = 'Y'::bpchar AND sr.qty <> 0::numeric
UNION ALL
SELECT so.m_product_id,
w.m_reservelocator_id AS m_locator_id,
so.ad_client_id,
so.ad_org_id,
so.isactive,
so.created,
so.createdby,
so.updated,
so.updatedby,
0 AS qtyonhand,
0 AS qtyreserved,
so.qty AS qtyordered,
so.datelastinventory,
so.m_attributesetinstance_id,
so.m_storagereservation_uu AS m_storage_uu,
NULL::timestamp without time zone AS datematerialpolicy
FROM m_storagereservation so
JOIN m_warehouse w ON so.m_warehouse_id = w.m_warehouse_id
WHERE so.issotrx = 'N'::bpchar AND so.qty <> 0::numeric;
从m_storagereservation的表列信息可以看到,除了基本的onhand信息以外没有源单据的信息,所以没有办法从reservation反向查询到订单等信息
执行前面的接收以后,m_storageonhand增加一行,同时m_transaction也增加一行
查看M_transaciton,可以看到多了一行记录。
从M_transaction表格可以看出,movemnettype有3种,V,M,C,测试对比以后,这3个代码应该代表如下意思。
V 表示Vender
M应该表示move order或者类似的组织/仓库内部移动,代表库存内部移转
C表示Customer,销售订单出货时候,movementtype为 C-
对应的3种主类型后面的信息均包括+/-号,表示该locator的数量值增减

在当前的库存状态下,尝试建立一张standard SO并且进行complete操作,看系统是否会自动进行reservation操作
建立的SO数量为20
SO complete以后,可以看到界面上面reservation qty=20
刷新product界面,查看onhand信息,发现其中一行onhand qty=0的行中,on order qty 变为了38,刚好比刚才多了20个数量,说明reservation记录已经创建。
查看db中的m_reservation表的信息,发现系统更新了reservation行,onhand显示为0,SOTRX=Y,表示这个是一个SO transaction。数量更改为38
对比onhand,发现onhand的信息没有变,仍然是原来的行记录,数量为100
以上界面也说明了我们的m_storage是m_storageonhand和m_reservation两个表的union all。而product info上面的located at信息直接抓取了m_storage视图。
我们再新建一张订单,这时候选择订单类型为POS,同时创建好订单以后执行complete操作,由于是POS订单,所以系统会自动执行出货操作。我们把订单数量设置为17
由于fertilizer的库存组织没有设置account信息,所以SO没有办法complete,直接切换到HQ组织做一次。重新对HQ采购100数量到HQ Warehouse。建立SO,数量17,并尝试complete操作。
Complete了以后,可以看到SO行中的数量信息更改了,deliver qty 为17,表示该数量已经发货。
查看DB,可以看到多了一行m_transaction信息,moveordertype=C-,表示库存减少,类型为Customer。
查看onhand信息,可以看到,系统并没有扣减我们最新的一行记录,而是把我们旧的数据中的一笔记录的数量进行了扣减,说明默认情况下,iDempiere的库存扣减是通过先进后出(FIFO)的方式扣减onhand数量的。
iDempiere 使用指南 库存出入库研究的更多相关文章
- iDempiere 使用指南 绿色版一键启动测试环境
Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...
- PDA手持终端在ERP系统仓库管理出入库盘点环节的应用
PDA手持终端在ERP系统仓库管理出入库盘点环节的应用 传统库存管理的数据录入过程,常采用PC机录入数据,或在电脑上结合条码枪扫描条码进行管理(非实时),造成管理上的不便.因而,采用无线(WIFI)手 ...
- PDA应用在WMS仓储管理系统 实现无线扫描出入库作业
WMS系统是根据仓储物流管理的建设实施经验而推出的一款专业化仓储管理软件.与传统进销存软件相比优势在于,其不但包含了正常的出入库.盘点等库存管理基本功能,重点在于可以实现仓库作业过程的管理,通过条码及 ...
- ERP出入库进阶操作与子流程--开源软件诞生28
赤龙ERP出入库进阶讲解--第28篇 用日志记录"开源软件"的诞生 [进入地址 点亮星星]----祈盼着一个鼓励 博主开源地址: 码云:https://gitee.com/redr ...
- 安卓智能POS终端手持机PDA应用仓库出入库,移库,盘点,销售开单系统
随着移动互联网的兴起,目前仓储管理所面临的的问题可以迎刃而解,WMS仓库系统解决方案通过智能终端扫描条码技术应用解决了工作量大导致工作效率不高,以及数据实时传输等问题,该方案主要提供仓库出入库,移库, ...
- iDempiere 使用指南 采购入库流程
Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...
- iDempiere 使用指南 BOM及工单流程
Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...
- iDempiere 使用指南 使用MRP进行生产及采购排程
Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...
- iDempiere 开发指南 Process(iDem后台进程)及插件的开发及部署
Created by 蓝色布鲁斯,QQ32876341,blog http://www.cnblogs.com/zzyan/ iDempiere官方中文wiki主页 http://wiki.idemp ...
随机推荐
- COCO2018 stuff分割
stuff何许人也,相对于目标而言的环境信息,一般是图像中的草地,墙面或者天空,因为往往在一张图像中这些背景占据着大部分像素,对于场景理解必不可少,所以引入了这一任务. 不过目前这个任务还没有发布te ...
- Android LayerDrawable资源应用
1.介绍 (1)常识 (2)特点 2.实例演示 <1>新建drawable文件 app--->src---->main---->res---->drawable , ...
- 011 Android TabLayout+ViewPager实现顶部滑动效果(多个页面)
1.TabLayout介绍 TabLayout提供了一个水平的布局用来展示Tabs,很多应用都有这样的设计,典型的有网易新闻,简书,知乎等.TabLayout就可以很好的完成这一职责,首先TabLay ...
- CentOS7 下使用 Nginx
update: 2019-03-25 --新增新装 Nginx 的启动.重启.关闭和查看 2019-02-19 --新增 yum 方式快速简单安装 Nginx 2018-09-29 --新增配置文件对 ...
- 江西理工大学南昌校区排名赛 D: 单身狗的物理游戏
题目描述 萌樱花是一只单身狗. 萌樱花今天决定做一道理综物理题: 如图,两固定的绝缘斜面倾角均为θ,上沿相连.两细金属棒ab(仅标出a端)和cd(仅标出c端)长度均为L,质量分别为2m和m:用两根不可 ...
- Codeforces - 527C 平衡树维护几何
题意:给定一个矩形\(W*H\),一共\(n\)次切割操作(水平/垂直),求每次操作后得出的最大面积 随机按tag扫CF题目找到的题,可以分别用平衡树维护割边的位置和长度(\(x/y\)各两个) 具体 ...
- HDU - 3033 滚动数组有坑
每层至少一个,滚动时要判上一层非法与否,所以每次都要memset #include<bits/stdc++.h> #define rep(i,j,k) for(int i=j;i<= ...
- 微信小程序实现图片上传功能
前端: 微信开发者工具 后端:.Net 服务器:阿里云 这里介绍微信小程序如何实现上传图片到自己的服务器上 前端代码 data: { productInfo: {} }, //添加Banner bin ...
- linux 重新定义命令alias——重定义查看日志命令
背景:很多时候,需要输入一大串命令来查看日志,例如: cd /home/weblogic/prodmain/log/ftlog;tail -f tps-mv-ft-rolling.log 每次打开终端 ...
- oracle 集群RAC搭建(四)--grid部署
安装教程: