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

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

相关文章

Kubernetes常用命令大全近期总结

《Kubernetes常用命令大全近期总结》Kubernetes是用于大规模部署和管理这些容器的开源软件-在希腊语中,这个词还有“舵手”或“飞行员”的意思,使用Kubernetes(有时被称为“... 目录前言Kubernetes 的工作原理为什么要使用 Kubernetes?Kubernetes常用命令总

Python中实现进度条的多种方法总结

《Python中实现进度条的多种方法总结》在Python编程中,进度条是一个非常有用的功能,它能让用户直观地了解任务的进度,提升用户体验,本文将介绍几种在Python中实现进度条的常用方法,并通过代码... 目录一、简单的打印方式二、使用tqdm库三、使用alive-progress库四、使用progres

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

Python中构建终端应用界面利器Blessed模块的使用

《Python中构建终端应用界面利器Blessed模块的使用》Blessed库作为一个轻量级且功能强大的解决方案,开始在开发者中赢得口碑,今天,我们就一起来探索一下它是如何让终端UI开发变得轻松而高... 目录一、安装与配置:简单、快速、无障碍二、基本功能:从彩色文本到动态交互1. 显示基本内容2. 创建链

Node.js 中 http 模块的深度剖析与实战应用小结

《Node.js中http模块的深度剖析与实战应用小结》本文详细介绍了Node.js中的http模块,从创建HTTP服务器、处理请求与响应,到获取请求参数,每个环节都通过代码示例进行解析,旨在帮... 目录Node.js 中 http 模块的深度剖析与实战应用一、引言二、创建 HTTP 服务器:基石搭建(一

Android数据库Room的实际使用过程总结

《Android数据库Room的实际使用过程总结》这篇文章主要给大家介绍了关于Android数据库Room的实际使用过程,详细介绍了如何创建实体类、数据访问对象(DAO)和数据库抽象类,需要的朋友可以... 目录前言一、Room的基本使用1.项目配置2.创建实体类(Entity)3.创建数据访问对象(DAO

Java向kettle8.0传递参数的方式总结

《Java向kettle8.0传递参数的方式总结》介绍了如何在Kettle中传递参数到转换和作业中,包括设置全局properties、使用TransMeta和JobMeta的parameterValu... 目录1.传递参数到转换中2.传递参数到作业中总结1.传递参数到转换中1.1. 通过设置Trans的

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

C# Task Cancellation使用总结

《C#TaskCancellation使用总结》本文主要介绍了在使用CancellationTokenSource取消任务时的行为,以及如何使用Task的ContinueWith方法来处理任务的延... 目录C# Task Cancellation总结1、调用cancellationTokenSource.

Python模块导入的几种方法实现

《Python模块导入的几种方法实现》本文主要介绍了Python模块导入的几种方法实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学... 目录一、什么是模块?二、模块导入的基本方法1. 使用import整个模块2.使用from ... i