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

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的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

SQL中JOIN操作的条件使用总结与实践

《SQL中JOIN操作的条件使用总结与实践》在SQL查询中,JOIN操作是多表关联的核心工具,本文将从原理,场景和最佳实践三个方面总结JOIN条件的使用规则,希望可以帮助开发者精准控制查询逻辑... 目录一、ON与WHERE的本质区别二、场景化条件使用规则三、最佳实践建议1.优先使用ON条件2.WHERE用

Nginx Location映射规则总结归纳与最佳实践

《NginxLocation映射规则总结归纳与最佳实践》Nginx的location指令是配置请求路由的核心机制,其匹配规则直接影响请求的处理流程,下面给大家介绍NginxLocation映射规则... 目录一、Location匹配规则与优先级1. 匹配模式2. 优先级顺序3. 匹配示例二、Proxy_pa

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

MySQL基本查询示例总结

《MySQL基本查询示例总结》:本文主要介绍MySQL基本查询示例总结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Create插入替换Retrieve(读取)select(确定列)where条件(确定行)null查询order by语句li

Python logging模块使用示例详解

《Pythonlogging模块使用示例详解》Python的logging模块是一个灵活且强大的日志记录工具,广泛应用于应用程序的调试、运行监控和问题排查,下面给大家介绍Pythonlogging模... 目录一、为什么使用 logging 模块?二、核心组件三、日志级别四、基本使用步骤五、快速配置(bas

Linux区分SSD和机械硬盘的方法总结

《Linux区分SSD和机械硬盘的方法总结》在Linux系统管理中,了解存储设备的类型和特性是至关重要的,不同的存储介质(如固态硬盘SSD和机械硬盘HDD)在性能、可靠性和适用场景上有着显著差异,本文... 目录一、lsblk 命令简介基本用法二、识别磁盘类型的关键参数:ROTA查询 ROTA 参数ROTA

Python datetime 模块概述及应用场景

《Pythondatetime模块概述及应用场景》Python的datetime模块是标准库中用于处理日期和时间的核心模块,本文给大家介绍Pythondatetime模块概述及应用场景,感兴趣的朋... 目录一、python datetime 模块概述二、datetime 模块核心类解析三、日期时间格式化与

Python如何调用指定路径的模块

《Python如何调用指定路径的模块》要在Python中调用指定路径的模块,可以使用sys.path.append,importlib.util.spec_from_file_location和exe... 目录一、sys.path.append() 方法1. 方法简介2. 使用示例3. 注意事项二、imp

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚