zoukankan      html  css  js  c++  java
  • 会计期间在ERP开发中的设计思路

    期间虽然说是财务模块需要用到的概念,但是在ERP系统中则是贯穿到所有的ERP模块中。如销售、采购、仓库等等都受到期限制。可见,从系统开发的角度看,期间在ERP系统中也是一个全局化的变量。具体的来说,在设计期间的管理思路时,笔者认为需要从如下几个角度出发。

    1. 期间并不是以月为单位

        从理论上来说,会计期间是以月为单位的。即相关的单据,如收货单或者发料单,必须在每个月月底都要结帐。不过在实际工作中,可能会与这个有差异。如有可能 企业并不是以自然月作为期间。笔者以前在给多家企业实施项目的时候,都遇到过类似的问题。他们可能认为,等到每个月月末再结账的话,开发票或者发票验证会 来不及。因为这国家都有比较严格的时间限制。为此这些企业会人为的定义期间,如定义每个月结帐的时间为25日等等。

        虽然这不怎么合法,但是这却在情理之中。而且在现实工作中,会计事务所等审查机构,对此也是睁一只眼、闭一只眼。特别是对于非上市公司来说,这么做是允许 的。为此我们在进行ERP系统设计与开发的时候,也需要考虑到企业这方面的需求。简单的说,就是在期间管理的时候,不但要能够实现按自然月来划分期间,而 且还允许按非自然月来进行划分。如每个月的26日到下月的25日作为一个期间。当7月26日的收货单,系统就会当作是8月份的单据。

        不过在开发的过程中,需要注意的是,这个期间不光光是财务上面的控制。其还涉及到其他报表的内容。如现在需要通过8月份的销售订单出货情况,那么其统计的口径就必须使7月26日到8月25日的出货明晰。不然的话,就会与财务部门的帐因为统计口径的不同而出现误差。

        可见,会计期间的管理是一个统筹全局的问题。为了能够适应大部分企业的应用,需要根据用户的需求来实现自定义。这对系统的开发提出了比较高的要求。

    2. 期间关闭后仍然要允许进行一些管理性工作

        一般来说,如果期间关闭,那么对于关闭期内的单据是不能够进行更改或者操作的。如7月份的期间已经关闭,则不能够将出货单的日期改在7月份,同时也不能够 将7月份的出货单重新打开更改数量等等。这是会计期间管理的基本要求。不过在实际工作中,仍然允许在关闭的期间内,做一些管理性质的更改工作。具体的说, 有如下内容需要注意。

        一是单据的重新编号。对于企业内部的单据来说,有连续编号的要求。如采购订单、应付凭单、付款单等等需要连续编号。这有利于后续相关部门的审计。但是在实 际工作中,由于单据删除等原因,会导致单据的不连号。在这种情况下,ERP系统中往往会开发一个重新编号的作业。即在关闭期间之后(这主要是为了防止在重 新编号作业执行中或者执行完毕后用户又更改相关的单据从而影响其运行的效果),执行这个作业。此时系统会根据单据的创建时间对付款单等单据进行重新编号。 然后用户重新打印并归档。这看起来虽然麻烦一点,但是从长远来看,还是必须的。如果要实现这个需求的话,那么在期间管理时,就不能一刀切,而要允许及时期 间关闭后,也允许用户运行这个"重新编号"的作业,对相关单据进行重新的编号。

        二是自动扣料的作业。在一些设计比较完善的ERP系统中,都会有自动扣料的作业。如企业可能会有一些连续性的材料,如PVC等等。在领料的时候,都是整包 整包领的。而不是按需领料。等到某张订单生产完成后,再计算用掉的数量和剩余的数量。此时运行以下自动扣料作业,系统会自动生成退料单,将多于的材料退回 给仓库。在实际工作中,这个作业往往是在系统结账之后、成本结转之前才操作的。故这又涉及到会计期间的问题。如在8月2日做自动扣料作业,而这些材料又是 涉及到7月份的完工产品。那么这些退料单时间必须在7月份,否则的话,就会影响到后续成本的统计。但是此时7月份的会计期间已经关闭。按照期间管理的要 求,是不允许再在7月份这个会计期间进行交易的。不过由于自动扣料这个业务存在着特殊性,在系统开发时就需要给其开一道后门。允许自动扣料作业向关闭期间 的月份内做交易。不过出于数据安全的考虑,最好对其也进行相关的控制。如只允许其向上一个会计期间做相关的单据。如在8月份运行这个作业,那么其自动扣料 的时间只能够是7月份,不能够是6月份。这可以促使用户及时的运行这个作业。

        虽然这些例外性的内容并不是很多。但是在实际工作中,这些例外是必不可少的,是管理上的一种需要。如果ERP系统没有这类似的功能,那么就必需要进行二次 开发或者采取其他一些折中的方式。如笔者以前实施过易飞ERP系统。它在期间管理的时候,没有自定义的功能,即指能够按照月份作为会计期间。而此时用户需 要使用的是25日作为结账日期。最后用户只能够人为的更改日期。即将每月26之后发生的交易该在此月1日。这虽然也是可行的,但是给后续的数据分析与管理 带来了很大的麻烦。因为此时每个月的26到月末的数据是空白的,而此月1日发生的交易又超多。为此笔者建议,在系统开发时,为了提高系统的灵活性,还是需 要体现用户这方面的需求。其实开发的思路也比较简单,只需要加一个IF语句,并采用一定的限制条件即可。主要的关键是,在开发时,思路需要严谨。

    3. 会计期间与成本结转之间的关系

        在会计期间的设计与开发中,还需要注意前后之间的联系。在ERP系统中,有三个比较典型的作业跟会计期间相关,分别是关帐、成本结转和结账。关帐后,普通 用户不能够再往这个期间内作相关的交易,而像自动扣料、单据编号调整等作业还是可以运行的。成本结转作业运行时必须系统已经关帐,这可以防止系统运算的死 循环。当结帐作业运行后,这个期间内的数据就不能够做任何的更改。如果确实有错误的话,那么系统建议的是通过差错更正或者成本调整作业来处理。

        可见,在会计期间设计开发时,还必须考虑到这三个阶段。并且需要了解,每个阶段中其可以进行哪些操作。不同的操作,往往需要涉及到不同的限制。特别是对于 成本结转这个作业,需要引起特别的注意。成本结转作业一定要在关帐之后才能够运行。因为如果在这个作业运行后,系统的数据,如采购的单价等内容还发生变更 的话,那么系统辛辛苦苦计算出来的成本数据就会跟实际有比较大的误差。

        总之,在期间的设计中,需要特别注意跟其他各个模块之间的关系。在ERP系统中,会计期间已经不再是财务专用的一个概念,而是牵涉到系统的各个模块中。作为ERP开发项目组的负责人,需要在各个模块之间进行协调,让会计期间的观念深入到每个系统分析人员的心中。

  • 相关阅读:
    安装项目管理工具 SVN+Redmine
    jquery validate
    NHibernate集合映射中的set, list, map, bag, array
    NHibernate执行原始SQL代码的方法小结 .
    一个简单的存储过程
    修改Project中的表名及字段名
    用代码修改类名
    实现Pick和Reigister
    转移单的装运和收货
    库存维度检查
  • 原文地址:https://www.cnblogs.com/hanmos/p/1997902.html
Copyright © 2011-2022 走看看