《物流管理系统财务子系统的设计与实现.doc》由会员分享,可在线阅读,更多相关《物流管理系统财务子系统的设计与实现.doc(39页珍藏版)》请在三一办公上搜索。
1、南开大学本科生毕业论文(设计)题目:津菱物流管理系统财务子系统的设计与实现学号:0010792姓名:沈泼年级:2000级学院:软件学院系别:软件工程专业:软件工程完成日期:2004年5月指导教师:张波津菱物流管理系统财务子系统的设计与实现软件学院软件工程系软件工程专业沈泼学号:0010792指导教师:张波副教授摘要:津菱物流管理系统是在良凌物流管理系统的基础上进行的二次开发,本项目组承担了扩充原系统未有的财务业务部分的开发任务,笔者主要负责了对财务业务中的进货及盘点部分的财务功能模块的设计与开发工作,目标在保持已开发完成的物流系统功能不受影响、流程及原系统数据库结构尽量不受改动的情况下,实现津
2、菱物流公司所提出的有关财务业务的功能。本文首先对津菱物流管理系统的功能和设计进行了简单的描述,然后给出了津菱物流公司就财务部分所提出的功能需求,最后详细阐述了对财务业务中入库及盘点部分的功能的分析及模块的设计与实现。关键字:物流管理系统,财务子系统,会计AbstractTheJinLingLogisticsManagementsystemisarevisiononthebasisoftheLianglinLogisticsManagementSystem.Weundertakesthetaskofexpendingundevelopedfinancialbusinessinoriginalsy
3、stem,andmainlyresponsibilityforredesigningandimplementingthefinancialfunctionmoduleofmerchandisesaledelivery,whichispartoffinancialbusiness.AndourgoalistokeeptheoriginaldatabasefunctionandstructureoftheJinlinglogisticmanagementsystemandtorealizetherequirementoftheJinlingLogisticCorporationthatthedat
4、abasehasthenewfinancialfunction,suchasmerchandisesalesdelivery,merchandisestockingandcheckingstorage.Atthebeginningofthearticle,wedescribedthefunctionanddesignofJinLingLogisticsManagementsystemingeneral,thenofferedthefunctionalrequirementofJinLingLogisticsCorp.onthefinancialpart.Andfinallywediscusse
5、dthefunctionanalysisaswellasmoduledesignandrealizationofmerchandisesaledelivery.KeyWords:LogisticsManagementSystem,Financialsubsystem,Account目录第一章绪论1.1项目背景物流是指为了满足消费者需要而进行的从起点到终点间原材料中间过程库存、最后产品和相关信息有效流动和储存的计划、实施和提高控制管理的过程。物流这一概念,随着它对商品生产、流通和消费的影响,日益明显并越来越引起人们的注意。目前,物流一词在我国也越来越多地被使用,如在运输行业中,物流公司、物流中心
6、等不断出现。物流对企业在市场上能否取胜的决定作用变得越来越明显。从本质上说企业在市场上的表现主要是由产品的质量、价格以及产品的供给三个在素决定,其中任何一个因素对企业的竞争能力都起着重要的影响作用,而这三个因素都分别直接受到物流的影响。尤其是在顺应经济全球化、信息化和企业竞争战略的要求而产生的第三方物流(ThirdPartyLogistics)“第三方物流”一词于80年代中后期开始盛行,当时它是对物流环节的要素进行外包的一个主要考虑方面。在1988年美国物流管理委员会的一项顾客服务调查中,首次提到“第三方服务提供者”,这种新思维被纳入到顾客服务职能中。它也被用来描述“与服务提供者的战略联盟”,
7、尤其指“物流服务提供者”这种物流形态是由物品供方和需方以外的物流企业提供物流服务的业务模式,是在物流渠道中,由专业物流企业以合同的形式在一定期限内提供用户所需的全部或部分物流服务。第三方物流的概念也可以说源自于管理学中的Out-sourcing(Out-sourcing意指企业动态地配置自身和其他企业的功能和服务,利用外部的资源为企业内部的生产经营服务)。将Out-sourcing引人物流管理领域,就产生了第三方物流的概念,即生产经营企业为集中精力搞好主业,把原来属于自己处理的物流活动,以合同方式委托给专业物流服务企业,同时通过信息系统与物流服务企业保持密切联系,以达到对物流全程的管理和控制的
8、一种物流运作与管理方式。因此第三方物流又可以称为合同制物流(Contractlogistics)。第三方物流的基本运作模式可由图1-1表示:第三方物流制造商商业企业消费者图1-1第三方物流的基本运作模式在物流业蓬勃发展的今天,相应的物流管理系统也应运而生。关于物流管理的概念,美国物流管理委员会(CLM)给出了如下的定义: 1998年以前的定义Logisticsistheprocessofplanning,implementingandcontrollingtheefficient,effectiveflowandstorageofrawmaterial,in-processinventory,
9、finishedgoods,service,andrelatedinformationfrompointoforigintopointofconsumption(includinginbound,outbound,internal,andexternalmovements)forthepurposeofconformingtocustomerrequirements.物流学就是研究对原材料、中间产品、产成品、服务及相关信息从供应始点到消费终点的流动与存储进行有效地计划、实施与控制以满足客户需要的科学。1 1998年以后的定义Logisticsisthatpartofthesupplychain
10、processthatplans,implements,andcontrolstheefficient,effectiveforwardandreverseflowandstorageofgoods,services,andrelatedinformationbetweenthepointoforiginandthepointofconsumptioninordertomeetcustomersrequirements.物流管理是供应链流程的一部分,它对从起始点到消费地的前向与逆向的货物、服务及相关信息的流动与存储进行富有效率和效果的计划、实施与控制,以满足顾客的需要。1由此可知,物流管理系统
11、就是应物流企业对订货、进货、盘点、出货、库存结账、客户服务等活动进行有效管理的要求下而产生的。借助于物流管理系统,物流企业就可以有效地完成库存管理,减少商品的积压,避免重复进货,从而实现“零损失”,并可由此获得更充裕的流动资金,对于企业的扩大再发展有着重要作用。同时,物流管理系统还可以提供单据的打印与相关业务的查询功能,节约了大量人力,提高了员工的工作效率。此外,物流管理系统还可为企业的发展提供很好的决策支持,决策者不必亲自下仓库检查,就可以清楚的了解库存情况和销售情况,从而可以对市场及客户进行合理细分,作出发展和投资决策。津菱物流公司是最近在天津开设的一家专门从事物流业务的公司,其主要运作模
12、式为第三方物流运作,规模比较大。在对业务往来和仓库管理上如果没有一个好的管理系统进行辅助,势必公司的效率将大大降低,而且业务上差错的风险会很大。本项目即是开发一套适合津菱物流公司的管理系统软件,此软件是在原良菱系统基础上进行的二次开发,由于津菱物流公司和良菱物流公司在业务上差别比较大,因而所谓的“二次开发”实际上是以原系统作为参考,有些地方还是做了较大的改动,同时,应津菱公司的就财务业务方面的要求,扩充了原系统未有的财务功能模块。考虑到项目组成员对物流行业的业务逻辑都不太了解,熟悉业务流程及运作方式需要较长的时间,加之原系统的设计已经基本实现了一般物流企业运作所需的功能模块,所以在满足津菱公司
13、特定需求的基础上,本项目的开发遵循以下三个原则: 对于津菱公司和良菱公司在相同的业务逻辑上实现的核心代码,尽量不做修改。原因不仅在于原系统核心逻辑代码已经由上海罗森物流配送公司进行运行并且证明其正确,还在于这样可以减少程开发维护成本,缩短开发周期。 对于两个公司在业务逻辑上有差别的业务逻辑,要么重新定义此模块,要么只对原模块进行较小改动,尽量对两个系统业务相似的逻辑不做太多的改动。因为原系统功能交错性比较强,模块间的耦合度比较高,修改一个模块一般会影响到其它的模块功能的实现。 对于原系统未提供的财务业务的功能,在首先符合财务操作规则的前提下,依据原系统的业务流程,在保持已开发完成的物流系统功能
14、不受影响、原系统数据库结构尽量不受改动的情况下,实现津菱物流公司所提出的有关财务业务的功能。关于财务功能模块,在通过与津菱物流公司的财务及仓管人员,就业务流程及操作注意事项进行多次详尽的咨询后,有了较为清楚的认识,同时也对所要实现的功能有了较为明确地了解,并在此基础上完成了一份较为完备的需求分析,已得到双方相关人员的认可。1.2本文内容对津菱物流系统的基本业务流程经过一段时间的熟悉,以及就津菱公司财务方面的需求进行详细咨询和分析后,在保持与原物流系统兼容的前提下,对于津菱公司所提出的财务功能进行了仔细地设计。在本文中,将系统介绍津菱物流系统新增的财务功能的进货及盘点部分的模块的设计与实现,本文
15、组织结构如下:第一章:绪论。本章主要介绍本项目的背景及第三方物流的概念及运作模式。第二章:津菱物流管理系统的概述。在本章中,对于系统二次开发背景作了简要地介绍,并对津菱物流管理系统的实现模块进行了划分。同时还对本系统开发所用的开发环境、配置环境及应用到的主要技术作概括地阐述。第三章:财务模块的需求分析。在本章中,首先就津菱公司财务模块开发的现实经济性进行了分析,然后给出了一些财务术语的详细解释以及津菱公司第二阶段的财务功能需求。第四章:财务功能模块的设计与实现。在本章中,首先对津菱公司给出的财务功能的需求进行分析,并在此基础上,就新增的入库及盘点部分的财务模块提出了设计上存在的问题,最后对所提
16、出问题进行了一一解决。第五章:项目总结及展望。总结本次项目的开发的体会,并对本项目进一步步地开发提出了自己的看法。第二章津菱物流管理系统概述2.1系统开发背景津菱物流公司所作的业务可以说是一种第三方物流的运作模式,有关第三方物流的有关概念已在项目背景中作了较为详细的阐述,简而言之,即由第三方来承担企业物流活动的一种物流形态。津菱公司采取的是混合的经营模式,因此津菱物流管理系统要能够处理以下三种类型的物流业务: 零售配送模式,即一些连锁店集团,例如华润、物美等,向多个供应商购买商品,委托津菱对这些商品进行接受、存储、分拣、配送到该连锁店集团的各个门店; 自营批发模式,即津菱公司在分析、预测客户的
17、需求的基础上,主动向供应商发出订货请求,购置多个商品,向自己联络的客户进行配送; 厂家配送模式,即某些客户提前向某个供应商购置了某些商品,供应商主动向津菱提出配送要求,并将客户所购置的商品配送出去。就这三种模式来讲,无论哪种模式,其物流的次序都是相同的:供应商?津菱?客户,其中,供应商是物资的提供者。津菱是物资的仓储、分拣、运输者。客户或者是物资的销售者,例如华润、津工等,或者是物资的直接消费者,例如将这些物资当作原材料来生产其他产品的厂家。三种模式的区别在于是谁拥有物资。这样,如图2-1所示,存放在津菱的每一件商品都具有一个库存名义:到底是谁购置并在财务上拥有该商品。津菱公司要求一个存储仓位
18、只能够存放一个名义下的商品。同时,在做分拣操作的时候,对于每一种名义,都有一个独立的分拣线。以上这些约定也有一定的缺点,就是对仓库空间、设备的要求比较大,有些浪费。津菱公司零售配送自营批发厂家配送客户#1华润物美.公司#1公司#N客户#N图2-1津菱公司的业务类型津菱公司的一般业务工作流程可由下图2-2表示入库预报配送出库出库确认返品分拣操作验收入库确认分配仓位入库登记出库登记配送预报库存管理图2-2津菱公司工作流程2.2系统功能模块的划分由于原系统的开发商TES公司在设计该系统时,试图完成一个通用系统,该系统能够满足尽可能多个用户的各自不相同的需求。然后,针对某个用户的特殊需求,将系统中的某
19、些功能Disable掉,再做一些必要的修改。这个做法虽然具有一定通用价值,但不可避免地也存在着缺陷:系统的源代码以及数据库中的表都含有大量与津菱公司业务不相关的部分。通过与津菱物流公司就其所需要的业务功能的进行多次需求咨询后,依据津菱业务逻辑,对原系统作了大量的简化和重新设计、编码后。津菱物流管理系统实现了包括从商品订购入库、仓库内部管理以及配送出库的整个过程的管理,其基本运作流程可由图2-3表示。入库金额统计入库查询库存查询出库查询盘点查询进销存统计出库金额统计补货移库退货盘点损益入库确定入库管理入库预报单入库验货单配送出库出库确认Sybase数据库图2-3津菱物流管理系统基本运作流程总体上
20、来说,津菱物流管理系统可划分为八大功能模块,他们共同配合完成了整个物流运作的管理,其中每个功能模块下面又包含了各自的子功能模块。其主要功能模块可由图2-4表示。 系统基本信息设置,其中包含对打印的设置和用户密码的更改功能的实现 仓库基本信息设置,其实现了对分拣仓位的设置、空仓位的生成以及导入导出数据等功能。 商品的进货管理,其中包括了向供应商订货与登记入库、进货红冲、与供应商退货以及涉及进货入库环节各种单据的打印等功能。 门店要货管理,其包含了要货单录入、门店退货、要货信息以及欠品历史信息的查询等功能。 商品配送出库管理部分包括了配送启动、配送出库以及相关单据打印的功能。 仓库内部管理,其主要
21、实现了库存维护、商品封仓、移库、盘点、手工损益、仓位优化以及库存查询等功能。 库存商品信息查询,该部分实现了基本商品信息、库存商品信息、进货信息和配送出库信息等的查询功能。 财务管理,该部分实现了进货实价入库、盘点损益、销售部分的财务以及导出财务数据等功能。仓库基本信息设置库存商品信息查询商品配送出库管理系统信息设置津菱物流管理系统商品入库管理门店要货管理仓库内部管理财务管理图2-4津菱物流管理系统功能模块图2.3开发环境及应用到的主要技术2.3.1服务器端环境 硬件环境:稳定服务器 软件环境:RedhatLinux7.3,Sybase12.52.3.2客户端环境 硬件环境:普通PC机 软件环
22、境:Microsoft公司Windows2000server操作系统2.3.3开发环境 硬件环境:奔腾2.4GHzCPU,512MDDR内存,17寸纯平显示器、显存64M,80G硬盘。 软件环境:Windows2003Server,Powbuilder7,SybaseCentral3.1,ERWin4.0,SQLServer2000,金蝶K/39.4.12.3.4应用到的主要技术 PowerBuilder中的DataWindow技术PowerBuilder技术中,数据窗口(DataWindow)可是说是其核心的核心,它使得数据库的开发和应用变得更加简单、快捷。DataWindow可以说是一种为
23、正在被观察的数据保留数据信息的特有对象,DataWindow可以多种不同的风格来显示数据源的数据。因此,它是一个高质量的数据库事务应用程序开发的强大的处理工具。数据窗口对象的主要功能是显示数据并允许用户修改,因为在数据窗口对象中包含两个主要组件:数据信息和显示格式。数据窗口需要数据库和其他非数据库的数据资源来组装自己,它按照定义时制定的表现风格显示,并且DataWindow提供了动态的数据装载功能。用户定义了表现风格后,可以对其进行进一步的修改,以增强数据窗口的功能。数据窗口不但自身显示数据还可以作为生成所有报表的数据源。在一个实际的应用程序处理过程中,数据窗口一般位于应用程序和数据库中间,按
24、应用程序的要求来检索,操纵并显示数据。Datawindow控件除具有Windows的窗口的属性与事件还有自己独特的函数与事件,如Retrievestart、Retrieveend、SqlPreview、Printpage等事件与Update,Reset等函数。这些事件有些是系统自动触发的如Dberror,SqlPreview等,这些事件一般都有参数或有相关函数可以获得事件信息,因此我们可以在这些事件中获得、修改数据处理信息。Datawindow函数需要手工调用,包括有关于后台数据处理的Datawindow控件函数,与SQL语言类似,是SQL语言在Datawindow中的表示;有前台数据处理的D
25、atawindow控件函数如Getitem,Setitem等;还有前后台协调的函数Retrieve等。Datawindow定义了数据的显示界面属性及与该Datawindow相关的数据库对象的数据操作属性。在津菱物流管理系统中,DataWindow占据了非常重要的地位,是操作服务器端数据库的强有力的面板。 Sybase数据库中的存储过程存储过程是由用户创建的、驻留在服务器的一组TransactSQL查询语句。存储过程能够改善应用程序的性能。存储过程是在创建时编译的,当存储过程第一次执行时,SQLServer产生查询执行计划并将其存储进来,以利于将来使用。使用存储过程可使系统性能得到提高,因为此时
26、发送到服务器的语句只是一条存储过程的EXECUTE语句,而不是庞大的、复杂的查询。这种特性能降低网络的流量。除了性能方面的改善外,存储过程还提供了方便地集中维护应用程序的功能。如果将查询嵌入到应用程序中。而又需要对查询进行改变,则应用程序需要重新编译,并重新发布到所有的客户端。而在存储过程中,修改对用户而言是透明的,它只需要在服务器上重新编译存储过程。同时,存储过程还能提供安全机制,尽管用户可能无权执行存储过程中的命令,但它却可能有权执行存储过程本身。有时候,系统管理员不会给用户以数据修改(UPDATE、INSERT和DELETE)的权力。创建的存储过程却能进行这些操作。当然用户需要拥有执行该
27、存储过程的权力。在津菱物流系统中,存储过程的大量使用,也一方面提高了系统的运行速度,另一方面,也保证了系统的稳定性。 Sybase数据库中的游标使用游标(CURSOR)在需要一行一行处理时,游标十分有用。游标可以打开一个结果集合(按照指定的标准选择的行),并提供在结果集中一行一行处理的功能。基于游标的类型,可以对其进行回滚或者前进。在津菱物流系统中,游标技术也被大量的使用于数据查找、数据库更新等方面。这一技术的应用,既有利于提高操作人员的工作效率,也有利于操作人员迅速判断被操作对象的状况。第三章财务模块的需求分析3.1扩充财务功能的现实经济性的分析津菱物流系统基本实现了物流部分的进货、销售以及
28、库存管理等的功能。由于津菱公司财务业务上的需要,要在原系统的基础上增加财务业务的功能。这样做有两大优势:I. 在已基本完成的物流系统上增加财务功能,将比较容易从物流系统的数据库表中导出财务业务所需的数据。从实现上以及开发费用和周期上来说,在已有系统上进行扩充将比重新开发新的系统,开发难度都会大大的减少。并且从津菱的业务流程可知,新的财务系统在数据库的数据上会与物流系统存在相当大一部分重复,这可以产生两种情况: 两系统使用同一数据库,这将不可避免的产生同时访问数据库的情况,并且为物流系统建立的数据库的表中很多字段对于物流系统是非常重要的,而对于财务系统却是没有价值的。由于存在两个不同的系统,并且
29、两系统的业务逻辑及流程存在着很大的差异性,因此不能在财务系统很好的控制对于这些字段的访问。如果财务人员不慎修改了这些字段,对于财务没有影响,但却有着仓库管理不能很好运行的重大隐患。 两系统使用两个不同的数据库,这一方面,浪费了数据库空间。另一方面,也是最重要的,这将带来了保持两数据库数据一致的问题II. 为财务人员提供了很好的查询及批处理功能,这将大大减少财务人员的复杂程度和工作压力,也更进一步减少了出错的概率。基于以上两点原因,增加津菱物流系统的财务模块具有一定的现实经济性和必要性。3.2有关津菱公司财务功能的需求在通过与津菱公司的财务人员就业务逻辑、流程以及所需实现的功能进行多次面谈咨询后
30、,得到如下功能需求:一、首先需要就财务功能模块涉及的术语加以明确: 会计科目:就是对会计核算单位的资产、负债、权益按其不同的特点和经济业务过程核算的需要进行分类核算的项目,按照有关规定一级会计科目必须以中文命名,并有一个标准的科目代码,不同行业的会计科目会有所不同。(例如:资产类项目,可以分别设置“现金”、“银行存款”、“应收账款”、“库存商品”、“固定资产”等会计科目;应当为各种资金来源项目,分别设置“固定基金”、“流动基金”、“银行借款”、“应付账款”等会计科目。设置会计科目对于正确运用填制凭证、登记账簿和编制报表等核算方法,都具有重要的意义) 会计分录:就是在记账凭证中指明某项经济业务应
31、借、应贷的账户名称以及应记入账户的金额,即一笔业务的记录。编制会计分录,要以反映经济业务发生的原始凭证作根据,以保证会计核算的客观性,也便于事后检查。会计分录有简单会计分录和复合会计分录,简单会计分录只涉及两个账户,复合会计分录涉及两个以上的账户。 K/3软件系统:K/3财务管理系统突出了面向中、大型企业和集团型企业用户的应用功能。一方面在技术上保证了大规模并发用户使用的稳定性;另一方面,除普通财务管理的应用功能之外,还提供了集团控制、结算中心等功能模块,结合管理会计的功能模块,极大地加强了各种类型企业用户的财务管理和控制功能,提高了企业的财务运筹能力。K/3软件系统分成了数据库、中间件、具体
32、应用三层。二、财务功能模块涉及的软件系统及所要实现的目标: 物流软件系统(即本系统)的功能概述物流软件系统具有物流方面进、销、存的功能。 财务软件(即金蝶K/3)系统的功能概述津菱公司所购买的K3软件系统中具有总账,应收应付两个功能的模块。金蝶K/3系统中,在会计科目体系是树形结构的,可以进行分级管理。 财务模块所要实现的目标是将物流软件与财务软件相结合 物流软件与财务软件相结合的目的物流软件主要处理商品的进货、库存管理、销售出库,而不具备财务上的功能,不关心商品的价值。财务软件只关心商品在财务上的处理,不关心商品的进、出。但是每当有实物进、出,并开出发票时,都要通告K/3生成会计凭证信息,此
33、时由于K/3不支持数据导入,需要把物流软件已经录入过的商品信息再次手工录入一遍,造成了重复劳动,也容易产生错误。 出于安全的考虑,财务部门的计算机不能够通过网络与物流部门的计算机相连。因此,财务模块将针对物流业务中自营批发过程的财务处理实现生成会计凭证信息,与津菱公司所使用的金蝶K/3财务软件的凭证接口标准配套,使得用物流软件生成的会计凭证信息,可以按约定格式导出,通过存储介质传递到K/3软件系统,由K/3软件系统负责转换成相应的会计凭证。 生成会计凭证信息的环节需要生成会计凭证信息的环节有:估价进货、估价进货冲红、实价入库,退换商品,盘点损溢处理,商品销售出库,商品成本计算。如实现从进货到销
34、售环节的全程的会计凭证信息处理,应当增加和扩展销售出库模块的功能。本文将在下面章节就本文所涉及到的财务模块中的估价进货、进货红冲、实价入库、盘点损益做详细的阐述。 K/3需要的凭证信息格式凭证信息是由多条记录构成的,每一条记录描述了物流部门所进货的某一种商品的详细信息。而且每一条记录对应着财务部门会计凭证中的一条会计分录。每一条记录包含以下基本信息:*凭证信息生成日期*该商品的供应商编码*该商品的编码*该商品的进货数量*该商品的单价*该商品的金额*该商品的税额K/3根据此条信息生成一个会计分录的时候,需要生成一个会计科目。该科目包含有3级,其形式为各级之间以圆点为分隔符。其中第一级必须为一个4
35、位的标准会计科目编码,对于津菱公司而言,此编码为1243,表示“库存商品”。第二级为该商品的供应商在津菱物流系统中的编码。第三级为该商品在津菱物流系统中的编码。 对于一个供应商的一次送货,津菱物流系统将生成一个凭证信息包,根据该凭证信息包,K/3软件系统将生成一张会计凭证。凭证信息包可单个传输或多个一起传输。本模块应该能够防止某个凭证信息包被漏传,或者由于误操作被多次传输。但是本系统应该能够允许用户由于某些原因(比如上次传输失败)对某个信息包有意多次传输。在系统运行过程中,如果有新的供应商或新的商品品种出现,需要津菱物流系统的使用者,首先将这些更新信息加入到津菱物流系统中,然后通知K/3软件系
36、统的使用者将这些更新信息加入到K/3软件系统中,再进行凭证信息传递工作。三、本文所涉及到的财务模块的方面的需求I. 采购进货阶段 基本业务流程当物流部门接收到供应商送来的商品并做了进货操作后,打印进货四联单,其中一联送财务部门进行会计核算,同时需要向财务部门传递这些进货单的会计凭证信息,以供财务部门生成进货会计凭证。一般情况下津菱公司首先向供应商下定单,由于一张定单上可定品种数量有限制,最多30(6)种商品,所以如果所订商品比较多时,应该下几张定单,每张定单上有一个不同的定单号码。供应商按照定单送货,一次送货只开具一张送货单,即可以多个定单对应一张送货单,一张送货单对应一张销售发票。商品入库时
37、开具进货单,一张进货单上可进品种数量有限制,也是最多30种商品,那么进货时一张送货单可以对应一张或一张以上进货单,进货单的号码与定货单的号码是一致的,没到的货数量用零来记录,一张送货单对应生成一次会计凭证信息,到货数为零的商品不生成会计分录。 估价入库、估价红冲、实价入库在进货时,如供应商的销售发票和货物同时到达,则凭证信息中的商品单价就是供应商销售发票中的商品单价,也就是该商品的实际单价。否则凭证信息中的商品单价为津菱公司根据以往业务历史记录,对该商品估计的一个单价,即估价。1) 估价时应考虑以下两种因素:一是处在不同时期会有不同的价格浮动,二是按所要数量不同供应商会给出不同的折扣。2) 估
38、价是可以改变的。3) 估价出现在以下三种情况:商品基本信息导入时、下定单时和商品进货时。当生成会计凭证时,价格是不能改变的,应等于商品进货时的价格。当有估价情况发生的时候,我们称对该商品的进货为估价进货,估价进货不需要计算进项税额。当经过一段时间后(最长可达3个月),厂家销售发票到达津菱公司的时候,需要将该商品的估价更新为厂家销售发票中的实际价格。此时需要做以下会计业务处理:将该商品的估价进货的记录红冲掉(红冲就是根据以前估价进货进货单的数量、单价、合计金额,生成一个负数表示的相同的进货单如:进货时数量为-5单价为-10金额为-50,则做红冲的进货单时数量为-5单价为-10金额为-50)。估价
39、与销售发票上的实际价格有出入,但在财务上规定不能有改动,所以需要将上次的记录取负值以红色的形式再生成一次会计凭证,然后按照销售发票上的实际价格又生成一次会计凭证。会计凭证的生成是由津菱物流系统生成一个凭证信息包并将其传递给K3系统,再由K3系统将生成一张会计凭证。II. 盘点损益库存盘点能够及时了解库存账面与实际的差距,调整、结清保证了库存账面与实际相符。津菱公司根据公司的规定进行定期或不定期的商品盘点工作,按照需要也可以分成全盘和部分盘。盘点的流程是:初盘数据导出,盘点启动,复盘数据导入,盘点复核。津菱物流系统会根据需要生成盘点表,由津菱公司组织盘点工作形成盘点数据表,导入津菱物流系统,由津
40、菱物流系统计算出商品盘点盈亏情况表,经复核后打印出商品盘点盈亏情况表,每种商品具此产生调增或调减商品数量和金额的一条记录,并生成相应商品损溢处理的会计凭证信息,津菱物流系统将生成一个凭证信息包并将其传递给K/3系统。根据该凭证信息包,K/3系统将生成一张会计凭证。当盘点没有生成损益时就不需要生成会计凭证信息。第四章财务功能模块的设计与实现4.1入库部分财务模块的设计与实现在对津菱公司就采购进货部分的需求和财务业务流程进行详细分析后,入库部分财务模块设计与实现可由下面章节加以阐述。4.1.1入库部分财务需求的分析根据津菱公司有关进货的实际的财务业务流程,并依据基本已开发完成的物流系统的操作流程,
41、对于津菱公司采购进货部分财务业务进行分析后,其基本业务流程可由图4-1表示,并在此基础上对其财务业务的运作进行了简化性地规定:津菱公司在购货前首先应先向供应商下订单,由于物流系统产生的订单为六联单,即一次订货可能会对应多个订单,也即一次订货可能对应多个订单号。供应商为津菱公司送货时,必须出据一张送货单,发票可以随同到达也可以迟于到达。由于在津菱的财务业务中,存在着送货单与厂商销售发票一一对应的关系,并考虑为了以后查询的方便,需要为系统设定一个唯一标识的字段,在经过对物流系统仔细分析后,选定系统暂时未用的送货单号作为该唯一标志字段。即送货单号与销售发票单号是一一对应的,这就要为物流系统的进货的子
42、模块中增加判定送货单号唯一性的功能。对于实价入库的需求分析,为了保证物流系统的仍能正常运作,解决方法是,可以对数据库的相应表的原始记录进行修改,使之成为估价入库记录,随后在该表中添加一条红冲记录和一条实价入库记录,并使得实价入库记录的各字段除价格外,均与原始记录一样。只要保证物流系统对数据库表的操作只能访问的是最新添加的实价入库的记录行,不能访问到估价入库记录和红冲记录,而财务功能模块可以取到上述三条记录,那么问题就可以加以解决了。向供应商下订单货物及送货单到达是否随带销售发票生成会计凭证估价入库销售发票到达,红冲估价实价入库实价入库NY图4-1津菱公司进货阶段的基本业务流程4.1.2入库部分
43、财务模块的设计津菱物流系统已实现的基本物流操作流程为,供货方将货物送达后,对于仓储来讲,将产生一张入库单号。但从财务功能实现的角度考虑,由于入库单号是津菱公司内部产生的编号,很难从入库单号查出相应的供货方送来的销售凭证的信息。为了实现财务凭证的方便查询,不可能取入库单号作为唯一标识,需要另取一单号作为唯一标识。经过仔细考虑后,选定系统暂未使用的送货单号作为此唯一标识,即送货单号与仓库管理的入库单号一一对应关系。做出上述分析和决定后,将面临了两个必须解决的问题。问题一:已实现的津菱物流系统入库部分的对送货单号的操作为,在登记入库阶段,由操作人员手工录入。由于手工录入送货单号,难免会产生操作失误,
44、那么对送货单号的修改,原系统没有提供相应的功能。并考虑到由于只是送货单号出现误差,而入库商品,在数量和价格上,没有任何变化。从财务逻辑上考虑,对于送货单号修改地处理,不能通过财务上的红冲实现。问题二:送货单号唯一性的判定。由于津菱物流系统对送货单号的处理,只是作为一个普通字符串,并未对其唯一性作严格的约束。除了上述两个问题外,还有一个最重要的,即实价入库功能的实现的问题。要实现该功能,需要对数据库的相应表作如下处理:首先将数据库中相应表的原始记录的状态标志作更改,并在相应表中插入一条红冲记录,即将原始估价的数量和价格都红冲掉,最后还要在表中插入一项实价记录。在入库部分财务模块的设计中,已经详细
45、讨论了实现该功能,需要解决的问题。下面部分将对上述问题,做出相应地解决。I. 问题一的解决:登记入库阶段,涉及到的数据库的表为Tbh_Order、Tbd_StkReg,送货单号对应于Tbd_StkReg中的ProvSupplyNo的这一列。因此,对于送货单号的修改需要更新Tbd_StkReg中的相应的ProvSupplyNo的一列。为实现该功能,在物流系统的登记入库相应界面W_imp_all上,添加一个名为“修改”的按钮,当操作人员点击该按钮时,送货单号一列为可编辑状态,输入新的送货单号后,再点击“入库”,即完成了对送货单号的修改。实现该功能时,为物流系统新添加了一个转变状态,即状态Modif
46、ing_ProvSupplyNo。 系统的状态图如图4-2:图4-2状态图页面初始调出来时,处于Initial状态,然后由状态决定变量ll_AllStautus0、ll_AllStautus5、ll_AllStautus10分别决定此时系统将进入状态Editing_ArtiInfo、Editing_CellInfo、Import_ConFirmed。当操作人员点击“修改”按钮后,即进入状态Modifing_ProvSupplyNo;完成修改后,点击“入库”按钮,即进入入库提交阶段。 实现的代码如下:当操作人员点击“修改”按钮后,系统状态转变为Modifing_ProvSupplyNo。此时即可
47、进行对送货单号的修改。choosecaseis_state/*物流系统其他的几个状态*/caseModifing_ProvSupplyNo/*物流系统的状态为可修改送货单号时*/ls_ProvSupplyNo=updateTbd_StkRegsetProvSupplyNo=:ls_ProvSupplyNowhereTbd_StkReg.OrdIdin(selectTbh_Order.OrdIdfromTbh_OrderwhereTbh_Order.OrdNo=:ll_OrdNo);/*更新数据库中Tbd_StkReg表的ProvSupplyNo的值*/forll_aiRow=2todw_artiinfo.rowcount()nextof_SwitchState(Import_Confirmed)/*转化状态到确认状态*/return1endchoose其中,dw_artiinfo为一个datawindow,在其中显示了登记入库的商品信息,包括了送货单号;of_SwitchState为自定义的一个处理状态转变的函数;在更新语句中的OrdNo为订货单号。I