本文主要是介绍《智百盛汽修汽配管理系统——“配件采购”模块》总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
开发工具与关键技术:Microsoft Visual Studio 2015、SQL Server、…NET MVC
一、 事务流程:采购订货 → 采购入库→ 采购退货 →货商结算
二、功能实现
(1) 采购订货
通过库存及实际采购计划生成采购订单,便于采购员根据采购单向供应商确认采购明细,单击[配件采购]->[采购订货]菜单,如下图:
表单功能实现:
进货订单号:系统将自动生成新的进货单号(单号根据当前模块的首字母+两位数年份+月份+日期+系统操作账号+流水号),每添加一张的单据时系统自动+1;
供应商:表示采购配件的来源,可点击 按钮在弹出来的模态框中进行查询、新增、修改供应商信息,且双击表格将供应商信息回填到[采购订货]页面中,如图:
采购仓库:表示采购配件所放入的仓库,点击下拉框可进行选择仓库;
交货日期:表示预计交货期限,点击文本框可选择日期和时间;
总金额:表示进货的总金额,点击【保存】按钮后通过订单配件明细表的合计金额会回填到总金额文本框内;
下方的配件明细表:表格具有可编辑性,在表格中点击鼠标右键出现: ,再点击添加会弹出模态框可进行查询、新增配件信息,选中配件可回填到订单页面下方的明细表中,明细表可修改需订购的配件数量和相关备注信息;若点击删除则可以删除明细表最后一行,如图:
业务流程功能实现:
点击【新增单】按钮,可进行新增一个订单,进货订单号更新,订单页面所有文本框和明细表内容重置;
点击【删除单】按钮,可对当前订单删除;
点击【保存】按钮,获取页面数据,判断必要信息是否为空,若有为空,将进行提示,若必要信息都不为空就可将订单数据保存进数据库中,形成未审核单据,未审核单据需进行审核后才能在后面的业务流程中使用;
点击【选择单据】按钮,弹出模态框,可选择单据进行回填后将其删除或者进行审核或反审核;
点击【审核】按钮,可对订单数据进行审核再存档,审核后订单页面的一切文本和表格无法编辑,须对其反审核后才可更改数据,审核如图:
点击【反审核】按钮,可对已审核的订单进行反审核;
(2) 采购入库
在该窗口中录入所采购货物的所在仓库,信息等,以便于以后可以更快捷的找到货物,为以后清理库存做准备。
采购入库单支持从采购订单中导入订单明细,便于方便快捷录入入库明细。
采购订单审核后,单击[配件采购]->[采购入库]菜单,在[采购入库]页面中点击“采购订单号”的文本框按钮 ,弹出模态框可进行查找之前审核的订单,如图:
同样进行双击回填订单号,订单数据一并回填于入库单。
若需要更改仓库或配件数量或其他信息,皆可在入库单未审核之前进行更改;
若无需更改,选择采购人后就可进行入库单的保存或审核了。
入库单一但审核通过则表示这批货物已进完货,所以上图的订单信息就无法在[采购入库]页面中查询出来。
其余表单功能和业务流程的功能实现与[采购订货]中的基本一致:
(3) 采购退货
在货物出现问题或者仓库出现库存太多等情况需要退货时,我们可以使用采购退货功能对退换的货物进行统计。
单击[配件采购]->[采购入库]菜单,在[采购入库]页面中点击“入库单号”的文本框按钮 ,弹出模态框可进行查找之前已审核的入库单,如图:
找到需要退货的单据双击将数据回填到退货单中;
回填后的数据与入库时不一样的是下方配件表中的配件数量会变成负数;
配件数量可更改,但输入的必须要是负数,而且退货数量不能大于该配件的库存数,否则无法进行退货,保存时会进行提示,如图:
待判断输入的数据没问题之后就可审核通货单进行退货,自然退货单的总金额也为负数。
(4) 货商结算
货商结算主要是对采购配件供应商货款统计结算。
功能实现:
思路:(1)基于前面的单据中都保存有供应商的ID以及相关字段;
(2)供应商货款统计结算,主要关联入库单和退货单两个单据的总金额,
一正一负,所以需要区分单据类型:入库单类型为“进货单”,退货单类型为“退货单”;
(3)综合(1)、(2), 用 供应商ID关联入库单ID和退货单ID以及两者的表中的单据类型ID,查询相关字段:单据类型、单据号、单据日期、总金额。
代码分享如下:接受从页面传来的供应商ID “SuppliersID”,分别查询入库表“PW_Incoming” 和退货表“PW_ReturnForm”,将查询出来的数据放入重新创建的集合 “list” 中,传回页面,如下:
传回页面效果:(在页面中选择供应商,后台就执行上面的代码)
点击【全选】按钮,表格复选框全部选中,相应的 本次付款金额 = 未付金额 - 本次优惠金额,自动结算,但优惠金额不能大于未付金额;
点击【保存】按钮进行结算单据的保存,如图:
三.相关业务表和关系
四、总结
前面的采购订单作得比较顺利,从采购入库到采购退货,对数据的处理就变得复杂起来了,尤其是在判断配件的库存数量时很容易导致单据无法审核,因为我在foreach 循环里用的Single()经常会与后面的判断冲突,后来我才改成了SingleOrDefault()——查询出来的数据是一条或为空都不会报错,所以对于入库和出库的表格数据的处理,要仔细判断仓库表里是否存在这条数据,是让它新增还是修改。
这篇关于《智百盛汽修汽配管理系统——“配件采购”模块》总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!