ERP分模块设计思想探讨---库存管理

weichx

现在应用软件的关键不是在用哪一种工具实现,而是实现的思想。从事多年的ERP工作,现在想在这方面与大家一起分享和探讨,希望对ERP有兴趣的同仁都来参与。
      以下只是个人经验之谈,供大家一起探讨,希望从中可以给大家一些提示,最终从大家的讨论中都可以得到进步。
      今后分别还有销售、采购、分销、生产、生产现场管理、人力资源管理、质量管理、设备管理、财务管理、成本核算管理等方面的个人总结,请大家多多参与,呵呵


1、进出的方式是否灵活--有销量方向、产量方向、库存数量方向、库存金额方向;
2、多计量单位的转换,在实施ERP的过程中我们有碰到过三个计量单位的客户有几个;
3、金额管理的计价方式:先进先出、后进先出、移动平均、加权移动平均等,主要是用于成本核算的。
4、支持历史库存,可以查询到历史某一天的库存情况
5、盘点所使用的库存是历史库存,不会因为盘点而车间提前领料或者仓库盘点时所有的仓库业务都停下来。
6、支持货位管理:最科学的做法是三维货位(X-Y-Z),给每一个货位分配一些存货的规则。这些在立体仓库用处很大。
7、支持最高库存、安全库存、呆滞品、降级产品的库存控制管理。这才是仓库管理的核心--降低库存资金的积压。
8、支持多种盘点方式:ABC、滚动盘点等方式。
9、支持批次管理、批号管理、序列号管理
      批次:一批可以存在多种批号,在化工行业用得很多。
      批号:一批里具体的排号,即批次再细分。一个批号可以包括多个产品。
      序列号:对于价值很高的、客户要求很高的,系统要给某一个产品一个终身的号就是序列号,用于售后服务、生产过程、质量跟踪的唯一线索。
10、支持销售和采购的退货流程处理
11、支持红冲管理(采购进库时的单价不能确定,等到财务已经做帐了之后才能确定进出库的单价,此时要做库存单价的调整---适用于仓库管理严格管理库存金额。)

请大家补充,收获将是大家的.

renyubest
关于查询任意一天的库存,您是怎么做的?
从流水帐中查询还是保存库存表?或者从库存表倒推?


weichx
每一个月库存有一个月结库存数,根据任意一天最近的月结数、任意的一天到最近月结日期的所有进出库单,动态计算当时的库存。就是历史库存。
当前库存表的数据不用变。要另外开一个历史库存表,是临时的库存。

当前库存---库存
当时库存---历史库存


主题还有没有漏的?有的话请大家补上

zzzsssyyy
weichx写的库存管理已经很全了,很有启发,谢谢。
提几个问题:
1、我们目前所写的库存管理程序中,要求按照库房的属性逻辑上地(或实际地)分为若干个性质不同的库房,如:原材料库,半成品库,产成品库等等,因为有的库房不管理金额,有的库房管理金额,但计价方式不同。请问你们是如何解决的,是设置库房属性还是具体到物料属性,如果客户只设置一个库房如何处理?
2、"盘点所使用的库存是历史库存" 是一个非常好的解决方案,请问是不是取历史数据加上本期发生额进行盘点?盘点的差异回填当前数据吗,历史数据还需要改动吗?
3、"滚动盘点"是如何实现的?

jlam
3、"滚动盘点"是如何实现的?

每次盘点指定的货品,输入电脑与电脑帐面资料比较得出盘盈盘亏数据,更新库存资料
必须具备的条件:货品摆放的位置相对固定

另一种"滚动盘点"是盘点指定位置的货品,这种情况是与电脑资料的结构和库存管理方式有关,库存资料必须包含货品的位置(location),实施也有一定困难,就是每次进出货也必须输入货品的位置

weichx
答1:
仓库的划分是以业务(提交的报表决定)为参照的而不按地理位置,地理位置分开的情况可以把不同地理位置的地方划分为不同的货位。基本上很少出现同一个仓库有一些管金额、有一些不管金额,如果出现这种情况,也仓库的属性没有冲突。
答2:
在数据库中应该把当前库存和历史库存放在不同的表,历史库存只是暂时的库存结果或者可以使用视图实现。如果盘点出现盈亏,应该是开相应的进出库单然后打平电脑帐和实物帐,此时当前库存表应该改动而不影响历史库存表的结果,因为历史库存是随时计算的。
答3:
滚动盘点都有不同的说法,如8楼的jlam就是一种,可以值得我们学习。也是我们这一个贴子的第一个收获了。还有一种就是在库存管理很贵重的东西(如:金、银、铀、铜、铂等贵金额)的时候,因为库存价值很高,这就要求盘点很严格。一般在这种情况下就要给每一种物料设置一个盘点周期(如:5天盘点一次),计算最后一次盘点的日期与当前日期,如果已经超过5天了,就应该对该物料进行盘点。

seism
请教weichx,对于一个品种多种规格,有什么好管理方法,
weichx
每一种规格都分配一个代码,一个品种就是一种物料类别.

fireball
系統最好能支援多倉儲
倉儲間必須有調撥功能
屬於買賣業的倉儲則必須要有零售金額與採購金額的控制
並且必須有調價功能,產生調價盈虧表
為了系統靈活性,是否啟用庫存批號管理則由使用者自定義

李成友
如果仓库管理到库位。如果两个库位间进行调拨(不同批次,不同价格),如何处理。进出库的类别如何分好一点?对于超大企业(数据量特大)采用什么方式可以提高查询速度问题(数据库设计角度去考虑)。
weichx changxianwei@163.com
又引出了一个好思路,呵呵.应该使用货位之间的转移功能(货位调拨),有一个比较简单的做法是在出库单里出一个正数的(源货位),同时出一个负数的(到目标货位).这样就可以一个单据完成了货位之间的调拨了.因为出负数就是入库的意思,只不过是在出库单里做而已.

jlam
请楼主谈一下:移动平均的算法和要注意的事项
加权平均的算法:

本期单价 = (上期金额+本期金额)/(上期数量+本期数量)

(1)上期数量+本期数量 = 0 ???
(2)上期有负数:(-100+40)/(-2+1) = 60,上期单价50,本期进货单价40,算出的结果是60,可能还会出现更极端的单价
(3)解决(2)的方法是不许出现负数库存或回冲,但在零售行业十分难于实施

zzzsssyyy
我是这样做的:
对于性质为采购类的库房:
(由于采购入库的物料都有价格,即使暂时没有价格的应进行暂估入库,然后回冲暂估)
库存价格 = (上期库存金额 + 本期入库金额 ) / (上期库存数量 + 本期入库数量 )

用计算出来的价格更新本期的出库;

对于性质为销售类或车间中转类的库房,由于此类库房为生产性质的库房,入库、出库价格均无从知道,所以有些麻烦,应在成本计算完毕后,用成本价格更新本期入库,然后再用前述方法计算及更新出库,出库金额可作为本期销售成本生成财务外部结转凭证的依据。

可能上述算法适用于制造业,不适用于商业和零售业。
如果(上期库存数量 + 本期入库数量) = 0  则不按公式计算,直接取当前库存单价;
出现负库存实在令人头疼,现在的解决办法是在设置库房属性是让客户自定义是否允许负库存,记凭证时对库存数量进行检测,或者是不能记帐,或者是出现提示,或者是允许。

stonesoft
我觉得应该取绝对值再加: 本期单价 = (abs(上期金额)+abs(本期金额))/(abs(上期数量)+abs(本期数量))    
即:(abs(-100)+abs(40))/(abs(-2)+abs(1))=46.6666666666666666666666


czjm
1.在价格管理中还有几种计价方法:个别计价法 、计划成本法、毛利率法、售价金额核算法,个别计价法也是用的较多的,它又称为分批计价法,方法是以每次(批)收入存货成本作为计算各该次(批)发出存货的成本的依据。
2.如何确定最优库存呢?以前学运筹学时有个算法,但这里不涉及采购的话,应该是没法确定的。
3.会计期末,为客观、真实、准确的反映企业期末存货的实际价值企业的存货应当在期末时按成本与可变现净植孰低法计量,其中又有三种方法:单项比较法、分类比较法、总额比较法。在程序中如何实现呢?

pengyuehui
关于历史库存--我在系统中加了一个日结表来记录每天库存的进出情况,表中将每个单据的数量、金额作为列,然后做一个计算列将当天的入库数-出库数,在查询历史库存时只要sum这个计算列,在条件中加上>=某个日期就可以了,想请教一下批次和批号在单据中要怎样设计?我现在做一个化妆品的系统

weichx
对,化工行业用到批次的很多.但是批次下面的批号一般情况下都很少用.我们设计时如果设计到批次就可以了.
具体做法是在库存表、进库单、出库单、结存表等与库存相关的表都加入一个批次列。


yangyhp
在有批次、批号的情况下,如何按先进先出,后进先出来处理存货和抵扣成本,最好写一个存储过程,列出表结构,楼主能行吗?

czjm
在这里要么尽量考虑库存管理的共性的东西,在具体实施时再考虑应对需求,要么就把所有可能的情况都考虑全面,以保持兼容性,我想后者可能更好,但较麻烦,这里上传一个软件的库存部分的帮助文档,希望对我们的话题有用.望抛砖引玉,大家有类似的东西可以分享一下

jokfh
去sap论坛看看MM模块的资料,相信对你有所帮助

qcz
先进先出法在采购退货、入库冲销、销售退货、出库冲销时很麻烦,比如销售退货,销售退货相当于入库,这笔入库应算先进的还是后进的,顺序不同会影响退货入库后的第一笔出库金额。再说出库冲销,被冲销的材料算作入库还是直接恢复那笔被出库的材料数量?这两种方法也会影响到下一笔出库材料金额。类似的问题很多,我最近准备升级我原有的进销存系统,想增加与批次相关的先进先出、后进先出、个别计价法。希望共同讨论。

wwwhsh
對于你們所說的貨位.在我們廠叫儲位.
在儲位錄入方面.不知大家是怎么錄入的.如要從庫存在提出一個貨柜.那么這個空儲位要被別的貨柜補上(因為我們廠的倉庫利用率很高.貨架有三層.12排一組.如果我要拿出其中的一個貨柜是中間的.那么所有外面的貨柜都要進行調正.不空中間就有一個空的貨柜了.

wwwhsh
現在有很多人不喜歡流程.但不知流程.怎么去寫代碼.只用于寫模組?寫一些別人作不出的難題.
有一套成熟的模組后.每一個人都要清楚的去了解流程.更好的了解程程.才能寫出好的代碼.不然把每一個功能都孤立得去寫.程序不就是在拼嗎?
我不知道大家在寫系統時,有沒有這樣去作,或知不知道有這樣的方法?
在印度.一個系統在開發時﹐所有的程序員開分析會.如果有一個月的時間去開這個系統.那么最少要有兩周的時間去開這個分析會.程序員先在筆記本上記錄每一個窗口的功能.再細化進行分析.到了最后.筆記本上的記錄就是要在電腦上所要寫的代碼.印度軟件因整體結構清晰.系統穩定.功能細而成功.所以技朮很重要.但流程才是軟件之本呀!請不要本墨倒置!!

原载自www.pdriver.com

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值