库龄分析的方式: 两种分析方式: 点余额:指以当前日期时的结存为依据进行分析; 最终余额:最终结存为依据进行分析,与过滤条件中录入的当前日期无关(这种情况当前日期只用于计算库龄,与结存量没有关系)。 当前日期>=所有单据的最大单据日期,则点余额和最终余额的查询出的结果应一致; 库龄分析是分析在库货品的,所以负库存是不分析的; 系统的库龄分析算法: 1、非出库跟踪入库的存货按照批次倒挤法计算货龄,即将蓝字入库单和红字出库单按入库日期倒序排序,将结存数量按照先进先出在入库单中分配。 例如:1号#1入库单、入库10个, 3号#2出库单、出库了9个, 4号#3入库单、入库2个, 库龄分析日期为5号时,则结存为3,将入库倒排序, 即4号#3入库单、 1号#1入库单, 然后按先进先出分配,所以4号#3入库单分配了2个,库龄为1天,结存还剩一个,就分配给#3入库单,库龄为4天。 2、出库跟踪入库的存货将结存数不为零的入库单记录的入库日期和当前日期进行比较。 例如: 1号#1入库单,入库10个、 3号#2入库单,入库8个、 4号做出库单,出库2个、 6号做出库单,出库1个; 两个出库单上所选的对应入库单都为#2入库单,则库龄分析的当前日期为2号时: 如使用最终余额法,则库龄分析中显示#1入库单,结存为10,库龄为1天,#2入库单,结存为5,库龄为-1; 如使用点余额法,则只有1号#1入库单,结存10个,库龄为1天; 如当前日期为5号,使用点余额法,则库龄分析中显示#1入库单,结存为10,库龄为4天,#2入库单,结存为(8-2)=6,库龄为2天。 跨年库龄分析—使用方式 跨年库龄分析,是做的专版脚本,可以在ERP资源中心—方案中心—交付解决方案中下载,网址: (http://servicehome.); 跨年库龄分析脚本执行时,只有库存启用的第一年执行第一个年度(01)的脚本,后续所有年度都执行后续年度(02)的脚本。每次年结之后,都需从第一个年度开始再按照上述规则执行一遍; 由于脚本中需要用到tempdb的临时表,而且每个年度用到的表名都一样,而且每年执行脚本后都会重新生成该表中的记录,所以在执行脚本过程中不可以中断,去从界面上查询库龄分析后,再对下面年度执行脚本,也不可以05年执行完,就执行07年的,但可以05年执行完跨年库龄分析脚本后,对tempdb的表无关的数据,用脚本进行调整,然后再对06年执行库龄分析脚本。 跨年库龄分析—原理和注意事项 原理:跨年库龄分析,是将上年(例如08年)的库龄分析结果,根据其入库记录存在本年(例如09年)的表pre_rdrecord(s)中,作为本年库龄分析时的期初,以确认实际的入库日期和结余的数量,而本年视图rdrecord(s)_age,根据本年的pre_rdrecord(s)表和rdrecord(s)表中的本年出入库发生,作为本年库龄分析的取数来源。 跨年库龄分析只支持点余额方式。 由于跨年库龄分析,都是根据上年分析结果作为本年期初,有继承性,所以如果本年期初有变动,会导致库龄分析的结果和收发存不一致。因此有这种变动的,建议不要使用跨年库龄分析的脚本。 例如: 04年启用库存, 05年1月对于某存货做#1号入库单,入库了10个, 06年库存期初修改为8,出库了1个; 则由于05年库龄分析的结果为#1号入库单,结存为10, 则06年根据05年库龄分析的数据插入到pre_rdrecord(s)中,作为期初,所以06年库龄分析结果为#1号入库单,结存为(10-1)=9,入库日期为05年1月,并根据此计算库龄,所以与收发存的(8-1)=7个是不一致的; 07年也是如此,根据06年的库龄分析结果取数,所以07年也是9个,而不是7个; 对于负库存,跨年库龄分析也是不分析的,如果08年库存结存为-10,结转后,09年入库100,则库龄分析时,由于08年的库龄分析结果为0,所以09年库龄分析时,结果为100,而不是90(如果不使用跨年脚本,则取09年的期初,库龄分析结果会是90)。 对于出库跟踪入库存货,要求更严格,这类存货的库存期初是不允许修改的,在库龄分析时,需要根据pre_rdrecords.autoid与rdrecords表中库存期初的autoid关联,以便取得以前年度记录的本年出库情况,如从后台改过,则库龄分析的结果更会不正确。 例如:04年启用库存, 05年1月对于某存货做#1号入库单,入库了10个, 06年从后台将该存货的期初重新插入,数量为10, 则由于05年库龄分析结果为#1号入库单,结存为10, 则06年根据05年库龄分析的数据插入到pre_rdrecord(s)中,作为期初,但是该入库记录的autoid与rdrecords.autoid中期初记录的autoid不一致,导致库龄分析时无法关联上,所以库龄分析也取不到该期初结存,库龄分析结果为0,与收发存的10不一致;07年库龄分析也就是0。 跨年库龄分析—常用调整方法 1、对于本年库存期初和上年结存不一致,或者上年库存结存为负结存的情况:由于库存期初取自本年的pre_rdrecord(s)表,所以可以将不一致的存货从pre_rdrecord(s)表中删除,然后将本年rdrecord(s)中该存货的库存期初插入到pre_rdrecord(s)表中。此方法会使得库龄的日期以本年库存期初的日期来计算,可能出现一定偏差; 2、对于出库跟踪入库存货,本年库存期初和上年结存一致,但是autoid不一样的情况:则需要分别找出每一张入库单,然后再将pre_rdrecords表中的autoid,根据rdrecords表中的autoid值更新。如错误数据较多,则很难调整。 这些操作,都需要在本年的跨年库龄分析脚本执行后,再做,调整完之后,对下一个年度再执行相应的库龄分析的脚本。 |
|