《智百盛汽修汽配管理系统——“配件采购”模块》总结

2023-10-29 06:10

本文主要是介绍《智百盛汽修汽配管理系统——“配件采购”模块》总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

开发工具与关键技术: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()——查询出来的数据是一条或为空都不会报错,所以对于入库和出库的表格数据的处理,要仔细判断仓库表里是否存在这条数据,是让它新增还是修改。

这篇关于《智百盛汽修汽配管理系统——“配件采购”模块》总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/298751

相关文章

Python的time模块一些常用功能(各种与时间相关的函数)

《Python的time模块一些常用功能(各种与时间相关的函数)》Python的time模块提供了各种与时间相关的函数,包括获取当前时间、处理时间间隔、执行时间测量等,:本文主要介绍Python的... 目录1. 获取当前时间2. 时间格式化3. 延时执行4. 时间戳运算5. 计算代码执行时间6. 转换为指

Python正则表达式语法及re模块中的常用函数详解

《Python正则表达式语法及re模块中的常用函数详解》这篇文章主要给大家介绍了关于Python正则表达式语法及re模块中常用函数的相关资料,正则表达式是一种强大的字符串处理工具,可以用于匹配、切分、... 目录概念、作用和步骤语法re模块中的常用函数总结 概念、作用和步骤概念: 本身也是一个字符串,其中

Python中的getopt模块用法小结

《Python中的getopt模块用法小结》getopt.getopt()函数是Python中用于解析命令行参数的标准库函数,该函数可以从命令行中提取选项和参数,并对它们进行处理,本文详细介绍了Pyt... 目录getopt模块介绍getopt.getopt函数的介绍getopt模块的常用用法getopt模

Python实现图片分割的多种方法总结

《Python实现图片分割的多种方法总结》图片分割是图像处理中的一个重要任务,它的目标是将图像划分为多个区域或者对象,本文为大家整理了一些常用的分割方法,大家可以根据需求自行选择... 目录1. 基于传统图像处理的分割方法(1) 使用固定阈值分割图片(2) 自适应阈值分割(3) 使用图像边缘检测分割(4)

Windows Docker端口占用错误及解决方案总结

《WindowsDocker端口占用错误及解决方案总结》在Windows环境下使用Docker容器时,端口占用错误是开发和运维中常见且棘手的问题,本文将深入剖析该问题的成因,介绍如何通过查看端口分配... 目录引言Windows docker 端口占用错误及解决方案汇总端口冲突形成原因解析诊断当前端口情况解

python logging模块详解及其日志定时清理方式

《pythonlogging模块详解及其日志定时清理方式》:本文主要介绍pythonlogging模块详解及其日志定时清理方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地... 目录python logging模块及日志定时清理1.创建logger对象2.logging.basicCo

Qt spdlog日志模块的使用详解

《Qtspdlog日志模块的使用详解》在Qt应用程序开发中,良好的日志系统至关重要,本文将介绍如何使用spdlog1.5.0创建满足以下要求的日志系统,感兴趣的朋友一起看看吧... 目录版本摘要例子logmanager.cpp文件main.cpp文件版本spdlog版本:1.5.0采用1.5.0版本主要

Python使用date模块进行日期处理的终极指南

《Python使用date模块进行日期处理的终极指南》在处理与时间相关的数据时,Python的date模块是开发者最趁手的工具之一,本文将用通俗的语言,结合真实案例,带您掌握date模块的六大核心功能... 目录引言一、date模块的核心功能1.1 日期表示1.2 日期计算1.3 日期比较二、六大常用方法详

java常见报错及解决方案总结

《java常见报错及解决方案总结》:本文主要介绍Java编程中常见错误类型及示例,包括语法错误、空指针异常、数组下标越界、类型转换异常、文件未找到异常、除以零异常、非法线程操作异常、方法未定义异常... 目录1. 语法错误 (Syntax Errors)示例 1:解决方案:2. 空指针异常 (NullPoi

python中time模块的常用方法及应用详解

《python中time模块的常用方法及应用详解》在Python开发中,时间处理是绕不开的刚需场景,从性能计时到定时任务,从日志记录到数据同步,时间模块始终是开发者最得力的工具之一,本文将通过真实案例... 目录一、时间基石:time.time()典型场景:程序性能分析进阶技巧:结合上下文管理器实现自动计时