本文主要是介绍海马汽车经销商管理系统技术解析(十一)前台接待模块的接车功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
前台接待
主界面,见下图:
接车
对直接来厂的车辆进行开维修工单见(图一)~(图五)。接车功能实现录入车辆需要维修的项目、维修需要的配件、附加项目、诊断记录等信息。点击保存,生成维修工单。输入车牌号,如果该客户是初次来厂就跳转到新增客户界面新增客户信息见(图六)。提取套餐功能是提取为了方便操作而定义好的维修项目和维修配件。
(图一)
(图二)
(图三)
(图四)
(图五)
(图六)
从接车界面可以看到控件有:
控件 | 说明 |
文本框(TextBox) | 编辑控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以事件。 |
下拉框(ComboBox) | |
(NumericUpDown) | |
单选框(RadioButton) | |
选项卡(TabControl) | |
(ToolStrip) | |
表格(DatagridView) | |
按钮(Button) |
1、数据库功能实现
第一步:数据库
1、表和关系
表1、维修工单表(PW_ServiceWorkBillList)
列名 | 数据类型 | 主键/外键 | 说明 |
ServiceWorkBillID | int - Identity | 主键 | 维修工单ID |
WorkOddNumBer | nchar (20) |
| 维修工单号 |
BespeakBillID | int | 外键 | 预约单表,预约单ID |
CarNewsID | int | 外键 | 车辆信息表,车辆信息ID |
EntranceMileage | decimal (18, 2) |
| 进厂里程 |
BusinessSort | nchar (20) |
| 业务类别 |
EntranceTime | datetime |
| 进厂时间 |
CarryRepairPerson | nchar (20) |
| 送修人 |
SurplusOilVolume | decimal (18, 2) |
| 剩余油量 |
PlanGathering | decimal (18, 2) |
| 预收款 |
BookingCarDeliveryTime | nchar (20) |
| 预计交车时间 |
LastTimeInTheFactory | nchar (20) |
| 上次进厂时间 |
BespeakOddNumBer | nchar (20) |
| 预约单号 |
MemberSort | nchar (20) |
| 会员类别 |
ServiceAdviser_StaffID | int | 外键 | 员工表,员工ID_服务顾问 |
InsureCompanyID | nchar (20) |
| 保险公司ID |
AttributeMinuteID_CarStatus | int | 外键 | 属性明细表,属性明细ID_车辆状态 |
IfWashCar | bit |
| 海马汽车否 |
OldPieceDispose | nchar (20) |
| 旧件处理 |
InspectRecord | nchar (100) |
| 环检记录 |
ClientDescribe | nchar (100) |
| 顾客陈述 |
Remarks | nchar (100) |
| 备注 |
IfBespeak | bit |
| 预约否 |
IfDebt | bit |
| 欠款否 |
IfResourceRelease | bit |
| 资源释放否 |
表2:维修需求配件表(PW_ServiceItemList)
列名 | 数据类型 | 主键/外键 | 说明 |
ServiceNeedPartsID | int - Identity | 主键 | 维修需求配件ID |
ServiceWorkBillID | int | 外键 | 维修工单表,维修工单ID |
PartsID | int | 外键 | 配件表,配件ID |
AttributeMinuteID_AccountType | int | 外键 | 属性明细表,属性明细ID_帐类 |
NeedNumber | decimal (18, 2) |
| 需求数量 |
SellPrice | decimal (18, 2) |
| 销售单价 |
Remarks | nchar (100) |
| 备注 |
表3、配件表(BM_PartsList)
列名 | 数据类型 | 主键/外键 | 说明 |
PartsID | int - Identity | 主键 | 配件ID |
PartsCoding | nchar (20) |
| 配件代码 |
PartsName | nchar (20) |
| 配件名称 |
CarModels | nchar (20) |
| 车型 |
Specification | nchar (20) |
| 规格 |
AttributeMinuteID_Unit | int | 外键 | 属性明细表,属性明细ID_单位 |
SellPrice | nchar (20) |
| 销售价格 |
表4:维修项目表(PW_ServiceItemList)
列名 | 数据类型 | 主键/外键 | 说明 |
ServiceItemID | int - Identity | 主键 | 维修项目ID |
ServiceWorkBillID | int | 外键 | 维修工单表,维修工单ID |
WorkHoursItemMinuteID | int | 外键 | 工时项目明细表,工时项目明细ID |
AttributeMinuteID_AccountType | int | 外键 | 属性明细表,属性明细ID_帐类 |
WorkHours | decimal (18, 2) |
| 工时 |
WorkHoursPrice | decimal (18, 2) |
| 工时单价 |
ItemKindID | nchar (20) | 外键 | 工种表,工种ID |
AttributeMinuteID_ItemStatus | int | 外键 | 属性明细表,属性明细ID_项目状态 |
FaultCauseCode | nchar (20) |
| 故障原因代码 |
IfReleaseResource | bit |
| 资源释放否 |
FaultCause | nchar (50) |
| 故障原因 |
表5、工时项目表(BM_WorkHoursItemList)
列名 | 数据类型 | 主键/外键 | 说明 |
WorkHoursItemID | int - Identity | 主键 | 工时项目ID |
ItemCode | nchar (20) |
| 项目代码 |
ItemName | nchar (20) |
| 项目代码 |
WorkKindID | int | 外键 | 工种表,工种ID |
FirstKind | nchar (20) |
| 第一类 |
SecondKind | nchar (20) |
| 第二类 |
ForeignLanguageName | nchar (20) |
| 外文名称 |
Remarks | nchar (100) |
| 备注 |
AllSuitSign | bit |
| 全适用标志 |
表6、工时项目明细表(BM_WorkHoursItemMinuteList)
列名 | 数据类型 | 主键/外键 | 说明 |
WorkHoursItemMinuteID | int - Identity | 主键 | 工时项目明细ID |
WorkHoursItemID | int | 外键 | 工时项目表,工时项目ID |
CarModels | nchar (20) |
| 车型 |
GuestAccountWorkHours | decimal (18, 2) |
| 客帐工时 |
InternalAccountWorkHours | decimal (18, 2) |
| 内部帐工时 |
ParWorkHours | decimal (18, 2) |
| 标准工时 |
InsureAccountWorkHours | decimal (18, 2) |
| 保险帐工时 |
WorkHoursMoney | decimal (18, 2) |
| 工时金额 |
IfWorkHoursMultiplyUnitPrice | bit |
| 是否取工时乘单价 |
Remarks | nchar (100) |
| 备注 |
TheOriginalPar | bit |
| 原厂标准 |
表7、维修附加项目表(PW_ServiceAppendItemList)
列名 | 数据类型 | 主键/外键 | 说明 |
ServiceAppendItemID | int - Identity | 主键 | 维修附加项目ID |
ServiceWorkBillID | int | 外键 | 维修工单ID |
AdditionItemID | int | 外键 | 附加项目ID |
AttributeMinuteID_AccountType | int | 外键 | 属性明细表,属性明细ID_帐类 |
表8、附加项目表(BM_AdditionItemList)
列名 | 数据类型 | 主键/外键 | 说明 |
AdditionItemID | int - Identity | 主键 | 附加项目ID |
ItemCode | nchar (20) |
| 项目代码 |
ItemName | nchar (20) |
| 项目名称 |
AttributeMinuteID_ItemKind | int | 外键 | 属性明细表,属性明细ID_项目类别 |
TeamID | int | 外键 | 班组ID |
Price | decimal (18, 2) |
| 单价 |
表9、建议维修项目表 (PW_SuggestServiceItemList)
列名 | 数据类型 | 主键/外键 | 说明 |
SuggestServiceItemID | int | 主键 | 建议维修项目ID |
ServiceWorkBillID | int | 外键 | 维修工单表,维修工单ID |
WorkHoursItemMinuteID | int | 外键 | 工时项目明细表,工时项目明细ID |
AttributeMinuteID_AccountType | int | 外键 | 属性明细表,属性明细ID_帐类 |
WorkHours | decimal (18, 2) |
| 工时 |
WorkHoursPrice | decimal (18, 2) |
| 工时单价 |
Remarks | nchar (100) |
| 备注 |
表10:诊断记录表(DiagnosisRecordList)
列名 | 数据类型 | 主键/外键 | 说明 |
DiagnosisRecordID | int | 主键 | 诊断记录ID |
ServiceWorkBillID | int | 外键 | 维修工单表,维修工单ID |
DiagnosisRecordName | nchar (20) | 诊断记录名称 | |
DiagnosisRecordContent | nchar (100) | 诊断记录内容 | |
ServicemanID | int | 外键 | 维修技工表,维修技工ID |
DiagnosisTime | datetime | 诊断时间 |
表11、车辆信息表(BM_CarNewsList)
列名 | 数据类型 | 主键/外键 | 说明 |
CarNewsID | int - Identity | 主键 | 车辆信息ID |
CarOwnerNewsID | int | 外键 | 车主信息ID |
RecordNumber | nchar (20) |
| 档案号 |
LicensePlateNumber | nchar (20) |
| 车牌号 |
CarModelsCode | nchar (20) |
| 车型代码 |
VINCode | nchar (20) |
| VIN码 |
MotorModel | nchar (20) |
| 发动机型号 |
Transmissiontype | nchar (20) |
| 变速器型式 |
MotorNumber | nchar (20) |
| 发动机号 |
TransmissionNumber | nchar (20) |
| 变速箱号码 |
KeyNumber | nchar (20) |
| 钥匙号 |
ShiftWay | nchar (20) |
| 换挡方式 |
CarModelsYearFund | nchar (20) |
| 车型年款 |
Displacement | nchar (20) |
| 排量 |
EquipmentCode | nchar (20) |
| 装备代码 |
BodyworkColour | nchar (10) |
| 车身颜色 |
LeaveFactoryDate | datetime |
| 出厂日期 |
FuelKind | nchar (20) |
| 燃料种类 |
BuyCarDate | datetime |
| 购车日期 |
BuyCarMileage | decimal (18, 2) |
| 购车里程 |
Purpose | nchar (20) |
| 用途 |
SellUnit | nchar (20) |
| 销售单位 |
CarBrand | nchar (20) |
| 车辆品牌 |
CarModelsSimpleCode | nchar (20) |
| 车型简码 |
IfInWarrantyperiod | bit |
| 是否在保修期内 |
UserManage | bit |
| 用户管理 |
IfEffective | bit |
| 有效否 |
表12、车主信息表(BM_CarOwnerNewsList)
列名 | 数据类型 | 说明 | 说明 |
CarOwnerNewsID | int - Identity | 主键 | 车主信息ID |
CarOwnerCode | nchar (20) |
| 车主代码 |
CarOwnerName | nchar (20) |
| 车主名称 |
AttributeMinuteID_ClientTypeOne | int | 外键 | 属性明细表,属性明细ID_客户类型一 |
AttributeMinuteID_ClientTypeTwo | int | 外键 | 属性明细表,属性明细ID_客户类型二 |
AttributeMinuteID_Sex | int | 外键 | 属性明细表,属性明细ID_性别 |
Site | nchar (100) |
| 地址 |
MobilePhone | nchar (20) |
| 手机号码 |
HousePhone | nchar (20) |
| 住宅电话 |
OfficePhone | nchar (20) |
| 办公电话 |
AddressPostcode | nchar (20) |
| 住址邮编 |
TheGenusCountiesAndCities | nchar (50) |
| 所属县市 |
WorkUnit | nchar (50) |
| 工作单位 |
Job | nchar (50) |
| 职位 |
AttributeMinuteID_MaritalStatus | int | 外键 | 属性明细表,属性明细ID_婚姻状况 |
IDCard | nchar (30) |
| 身份证 |
Birthday | datetime |
| 生日 |
Hobby | nchar (100) |
| 爱好 |
ChangeSite | nchar (100) |
| 变跟地址 |
Postcode | nchar (20) |
| 邮编 |
Nationality | nchar (50) |
| 国籍 |
| nchar (50) |
| |
FacilitateTheReturnTime | datetime |
| 方便回访时间 |
CarOwnerPicture | nchar (3000) |
| 车主照片 |
Remarks | nchar (50) |
| 备注 |
IfEffective | bit |
| 有效否 |
2、功能实现
1、提取车辆信息,输入车牌号后按回车键。
第一步:数据库存储过程
IF(@TYPE='FRM_QianTaiJieDai_JieChe_CheLiangXinXi')
BEGIN
SELECT BM_CarNewsList.CarNewsID, BM_CarNewsList.LicensePlateNumber, BM_CarNewsList.CarModelsCode, BM_CarNewsList.VINCode, BM_CarNewsList.MotorNumber, BM_CarNewsList.BodyworkColour, BM_CarNewsList.BuyCarDate, BM_CarNewsList.CarBrand, BM_CarOwnerNewsList.CarOwnerCode, BM_CarOwnerNewsList.MobilePhone, BM_CarOwnerNewsList.CarOwnerName
FROM BM_CarNewsList INNER JOINBM_CarOwnerNewsList ON BM_CarNewsList.CarOwnerNewsID = BM_CarOwnerNewsList.CarOwnerNewsID WHERE BM_CarNewsList.LicensePlateNumber=LTRIM(RTRIM(@LicensePlateNumber))
END
IF(@TYPE='FRM_QianTaiJieDai_JieChe_SelectLastTimeInTheFactory')BEGINSELECT PW_ServiceWorkBillList.ServiceWorkBillID, PW_ServiceWorkBillList.CarNewsID, PW_ServiceWorkBillList.EntranceTimeFROM PW_ServiceWorkBillList INNER JOINBM_CarNewsList ON PW_ServiceWorkBillList.CarNewsID = BM_CarNewsList.CarNewsIDWHERE PW_ServiceWorkBillList.CarNewsID=@CarNewsID AND PW_ServiceWorkBillList.AttributeMinuteID_CarStatus=84
END
IF(@TYPE='FRM_QianTaiJieDai_JieChe_txtChePaiHao_Leave')
BEGIN
SELECT BM_CarNewsList.CarNewsID, BM_CarNewsList.LicensePlateNumber, BM_CarNewsList.CarModelsCode, BM_CarNewsList.VINCode, BM_CarNewsList.MotorNumber, BM_CarNewsList.BodyworkColour, BM_CarNewsList.BuyCarDate, BM_CarNewsList.CarBrand, BM_CarOwnerNewsList.CarOwnerCode, BM_CarOwnerNewsList.MobilePhone, BM_CarOwnerNewsList.CarOwnerName
FROM BM_CarNewsList INNER JOINBM_CarOwnerNewsList ON BM_CarNewsList.CarOwnerNewsID = BM_CarOwnerNewsList.CarOwnerNewsID WHERE BM_CarNewsList.CarNewsID=@CarNewsID
END
第二步:逻辑层(BLL)
//查询车辆信息
[OperationContract]public DataSet FRM_QianTaiJieDai_JieChe_CheLiangXinXi(string strChePaiHao){SqlParameter[] mySqlParameters ={new SqlParameter("@TYPE",SqlDbType.Char),new SqlParameter("@LicensePlateNumber",SqlDbType.NChar),};mySqlParameters[0].Value = "FRM_QianTaiJieDai_JieChe_CheLiangXinXi";mySqlParameters[1].Value = strChePaiHao;DataTable dt= myDALMethod.QueryDataTable ("前台接待_FRM_QianTaiJieDai_JieChe", mySqlParameters);DataSet ds = new DataSet();ds.Tables.Add(dt);return ds; //返回一个数据集}
//查询车辆历史维修信息[OperationContract]public DataSet FRM_QianTaiJieDai_JieChe_SelectLastTimeInTheFactory(int intCarNewsID){SqlParameter[] mySqlParameters ={new SqlParameter("@TYPE",SqlDbType.Char),new SqlParameter("@CarNewsID",SqlDbType.Int),};mySqlParameters[0].Value = "FRM_QianTaiJieDai_JieChe_SelectLastTimeInTheFactory";mySqlParameters[1].Value = intCarNewsID;DataTable dt = myDALMethod.QueryDataTable("前台接待_FRM_QianTaiJieDai_JieChe", mySqlParameters);DataSet ds = new DataSet();ds.Tables.Add(dt);return ds;//返回一个数据集}
//查询车辆信息[OperationContract]public DataSet FRM_QianTaiJieDai_JieChe_txtChePaiHao_Leave(int intCarNewsID){SqlParameter[] mySqlParameters ={new SqlParameter("@TYPE",SqlDbType.Char),new SqlParameter("@CarNewsID",SqlDbType.Int),};mySqlParameters[0].Value = "FRM_QianTaiJieDai_JieChe_txtChePaiHao_Leave";mySqlParameters[1].Value = intCarNewsID;DataTable dt = myDALMethod.QueryDataTable("前台接待_FRM_QianTaiJieDai_JieChe", mySqlParameters);DataSet ds = new DataSet();ds.Tables.Add(dt);return ds;//返回一个数据集}
第三步:界面层(UIL)
BLL海马汽车销售系统.前台接待.FRM_QianTaiJieDai_JieChe.FRM_QianTaiJieDai_JieCheClient myFRM_QianTaiJieDai_JieCheClient = new BLL海马汽车销售系统.前台接待.FRM_QianTaiJieDai_JieChe.FRM_QianTaiJieDai_JieCheClient();
private void txtLicensePlateNumber_KeyDown(object sender, KeyEventArgs e){if (e.KeyCode == Keys.Enter) //如果按了回车键{
//根据车牌号提取车辆信息DataTable dtCheLiangXinXi = myFRM_QianTaiJieDai_JieCheClient.FRM_QianTaiJieDai_JieChe_CheLiangXinXi(txtLicensePlateNumber.Text).Tables[0];if (dtCheLiangXinXi.Rows.Count > 0)//如果系统有记录{//给各个相应控件赋值txtCarOwnerName.Text = dtCheLiangXinXi.Rows[0]["CarOwnerName"].ToString();txtLicensePlateNumber.Text = dtCheLiangXinXi.Rows[0]["LicensePlateNumber"].ToString();txtCarBrand.Text = dtCheLiangXinXi.Rows[0]["CarBrand"].ToString();txtBuyCarDate.Text = dtCheLiangXinXi.Rows[0]["BuyCarDate"].ToString();txtCarModels.Text = dtCheLiangXinXi.Rows[0]["CarModelsCode"].ToString();txtMobilePhone.Text = dtCheLiangXinXi.Rows[0]["MobilePhone"].ToString();txtVINCode.Text = dtCheLiangXinXi.Rows[0]["VINCode"].ToString();txtBodyworkColour.Text = dtCheLiangXinXi.Rows[0]["BodyworkColour"].ToString();txtMotorNumber.Text = dtCheLiangXinXi.Rows[0]["MotorNumber"].ToString();txtCarryRepairPerson.Text = dtCheLiangXinXi.Rows[0]["CarOwnerName"].ToString();intChePaiXinXi = Convert.ToInt32(dtCheLiangXinXi.Rows[0]["CarNewsID"]);//查询该车辆历史维修信息DataTable dtLastTimeInTheFactory = myFRM_QianTaiJieDai_JieCheClient.FRM_QianTaiJieDai_JieChe_SelectLastTimeInTheFactory(intChePaiXinXi).Tables[0];if (dtLastTimeInTheFactory.Rows.Count > 0)//如果有历史信息{//提取上次进厂时间txtLastTimeInTheFactory.Text = dtLastTimeInTheFactory.Rows[dtLastTimeInTheFactory.Rows.Count - 1]["EntranceTime"].ToString();}}else//如果系统没有记录{if (MessageBox.Show("当前车辆不存在" + "\n是否新增?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes){blnKuanGuan = true;strLicensePlateNumber = txtLicensePlateNumber.Text;PublicStaticObject.Pub_FRM_KeHuDangAn_Insert = new 顾客关系.FRM_KeHuDangAn_Insert();PublicStaticObject.Pub_FRM_KeHuDangAn_Insert.ShowDialog();顾客关系.FRM_KeHuDangAn_Insert myFRM_KeHuDangAn_Insert = new 顾客关系.FRM_KeHuDangAn_Insert();myFRM_KeHuDangAn_Insert.ShowDialog();//显示客户档案新增界面//查询新增车辆信息DataTable dtCarNews = myFRM_QianTaiJieDai_JieCheClient.FRM_QianTaiJieDai_JieChe_txtChePaiHao_Leave(顾客关系.FRM_KeHuDangAn_Insert.intCarNews).Tables[0];if (dtCarNews.Rows.Count > 0){//给各个相应控件赋值txtCarOwnerName.Text = dtCarNews.Rows[0]["CarOwnerName"].ToString();txtLicensePlateNumber.Text = dtCarNews.Rows[0]["LicensePlateNumber"].ToString();txtCarBrand.Text = dtCarNews.Rows[0]["CarBrand"].ToString();txtBuyCarDate.Text = dtCarNews.Rows[0]["BuyCarDate"].ToString();txtCarModels.Text = dtCarNews.Rows[0]["CarModelsCode"].ToString();txtMobilePhone.Text = dtCarNews.Rows[0]["MobilePhone"].ToString();txtVINCode.Text = dtCarNews.Rows[0]["VINCode"].ToString();txtBodyworkColour.Text = dtCarNews.Rows[0]["BodyworkColour"].ToString();txtMotorNumber.Text = dtCarNews.Rows[0]["MotorNumber"].ToString();txtCarryRepairPerson.Text = dtCarNews.Rows[0]["CarOwnerName"].ToString();intChePaiXinXi = Convert.ToInt32(dtCarNews.Rows[0]["CarNewsID"]);}else{ }}}}}
2、提取折扣
第一步:数据库存储过程
IF(@TYPE='FRM_QianTaiJieDai_JieChe_SelectAttributeMinuteListRemark')BEGINSELECT AttributeMinuteID, RemarkFROM AttributeMinuteListWHERE AttributeMinuteList.AttributeMinuteID=@AttributeMinuteID
END
第二步:逻辑层(BLL)
//查询折扣信息
[OperationContract]public DataSet FRM_QianTaiJieDai_JieChe_SelectAttributeMinuteListRemark(int intAttributeMinuteID){SqlParameter[] mySqlParameters ={new SqlParameter("@TYPE",SqlDbType.Char),new SqlParameter("@AttributeMinuteID",SqlDbType.Int),};mySqlParameters[0].Value = "FRM_QianTaiJieDai_JieChe_SelectAttributeMinuteListRemark";mySqlParameters[1].Value = intAttributeMinuteID;DataTable dt = myDALMethod.QueryDataTable("前台接待_FRM_QianTaiJieDai_JieChe", mySqlParameters);DataSet ds = new DataSet();ds.Tables.Add(dt);return ds; //返回数据集}
第三步:界面层(UIL),帐类选择索引改变事件。
BLL海马汽车销售系统.前台接待.FRM_QianTaiJieDai_JieChe.FRM_QianTaiJieDai_JieCheClient myFRM_QianTaiJieDai_JieCheClient = new BLL海马汽车销售系统.前台接待.FRM_QianTaiJieDai_JieChe.FRM_QianTaiJieDai_JieCheClient();private void cboAccountType_SelectedIndexChanged(object sender, EventArgs e){ //根据帐类查询折扣DataTable dtAttributeMinuteListRemark = myFRM_QianTaiJieDai_JieCheClient.FRM_QianTaiJieDai_JieChe_SelectAttributeMinuteListRemark(Convert.ToInt32(cboAccountType.SelectedValue)).Tables[0];//把折扣赋值给相应的控件nudDisCount0.Text = dtAttributeMinuteListRemark.Rows[0]["Remark"].ToString().Trim();}
3、提取套餐信息
第一步:数据库存储过程
IF(@TYPE='FRM_QianTaiJieDai_JieChe_SelectSetMealItems')BEGINSELECT AttributeMinuteList.AttributeMinuteID, BM_SetMealItemList.SetMealItemID, BM_SetMealItemList.WorkHoursMoney, BM_SetMealItemList.AttributeMinuteID_AccountType AS AccountTypeID, AttributeMinuteList.AttributeMinuteName AS AccountType, BM_SetMealItemList.WorkHoursItemMinuteID, BM_WorkHoursItemList.ItemCode, BM_WorkHoursItemList.ItemName, BM_WorkHoursItemList.WorkKindID, BM_WorkKindList.WorkKindName, BM_WorkHoursItemMinuteList.GuestAccountWorkHours, BM_WorkHoursItemMinuteList.ParWorkHours, BM_WorkHoursItemMinuteList.IfWorkHoursMultiplyUnitPrice, BM_WorkHoursItemList.WorkHoursItemID
FROM BM_SetMealItemList INNER JOINAttributeMinuteList ON BM_SetMealItemList.AttributeMinuteID_AccountType = AttributeMinuteList.AttributeMinuteID INNER JOINBM_WorkHoursItemMinuteList ON BM_SetMealItemList.WorkHoursItemMinuteID = BM_WorkHoursItemMinuteList.WorkHoursItemMinuteID INNER JOINBM_WorkHoursItemList ON BM_WorkHoursItemMinuteList.WorkHoursItemID = BM_WorkHoursItemList.WorkHoursItemID INNER JOINBM_WorkKindList ON BM_WorkHoursItemList.WorkKindID = BM_WorkKindList.WorkKindIDWHERE BM_SetMealItemList.SetMealID=@SetMealID ENDIF(@TYPE='FRM_QianTaiJieDai_JieChe_SelectSetMealParts')BEGINSELECT BM_SetMealMinutePartsList.SetMealPatrsID, BM_SetMealMinutePartsList.PartsID, BM_SetMealMinutePartsList.Number, BM_SetMealMinutePartsList.SellPrice, BM_SetMealMinutePartsList.AttributeMinuteID_AccountType AS AccountTypeID, AttributeMinuteList_1.AttributeMinuteName AS AccountType, BM_PartsList.PartsCoding, BM_PartsList.PartsName, AttributeMinuteList.AttributeMinuteName AS Unit, BM_PartsList.AttributeMinuteID_Unit AS UnitID, BM_PartsList.CarModels
FROM AttributeMinuteList INNER JOINBM_SetMealMinutePartsList INNER JOINBM_PartsList ON BM_SetMealMinutePartsList.PartsID = BM_PartsList.PartsID ON AttributeMinuteList.AttributeMinuteID = BM_PartsList.AttributeMinuteID_Unit INNER JOINAttributeMinuteList AS AttributeMinuteList_1 ON BM_SetMealMinutePartsList.AttributeMinuteID_AccountType = AttributeMinuteList_1.AttributeMinuteID WHERE BM_SetMealMinutePartsList.SetMealID=@SetMealID
END
第二步:逻辑层(BLL)
//查询套餐的项目信息
[OperationContract]public DataSet FRM_QianTaiJieDai_JieChe_SelectSetMealItems(int intSetMealID){SqlParameter[] mySqlParameters ={new SqlParameter("@TYPE",SqlDbType.Char),new SqlParameter("@SetMealID",SqlDbType.Int),};mySqlParameters[0].Value = "FRM_QianTaiJieDai_JieChe_SelectSetMealItems";mySqlParameters[1].Value = intSetMealID;DataTable dt = myDALMethod.QueryDataTable("前台接待_FRM_QianTaiJieDai_JieChe", mySqlParameters);DataSet ds = new DataSet();ds.Tables.Add(dt);return ds; //返回数据集}
//查询套餐的配件信息[OperationContract]public DataSet FRM_QianTaiJieDai_JieChe_SelectSetMealParts(int intSetMealID){SqlParameter[] mySqlParameters ={new SqlParameter("@TYPE",SqlDbType.Char),new SqlParameter("@SetMealID",SqlDbType.Int),};mySqlParameters[0].Value = "FRM_QianTaiJieDai_JieChe_SelectSetMealParts";mySqlParameters[1].Value = intSetMealID;DataTable dt = myDALMethod.QueryDataTable("前台接待_FRM_QianTaiJieDai_JieChe", mySqlParameters);DataSet ds = new DataSet();ds.Tables.Add(dt);return ds; //返回数据集}
第三步:界面层(UIL),dgv(套餐)的点击事件
BLL海马汽车销售系统.前台接待.FRM_QianTaiJieDai_JieChe.FRM_QianTaiJieDai_JieCheClient myFRM_QianTaiJieDai_JieCheClient = new BLL海马汽车销售系统.前台接待.FRM_QianTaiJieDai_JieChe.FRM_QianTaiJieDai_JieCheClient();
private void dgvSettel_MouseDoubleClick(object sender, MouseEventArgs e){ //根据套餐ID查询套餐设定的项目DataTable dtSettelItems=myFRM_QianTaiJieDai_JieCheClient.FRM_QianTaiJieDai_JieChe_SelectSetMealItems(Convert.ToInt32(dgvSettel.CurrentRow.Cells["套餐ID"].Value)).Tables[0];if (dgvServiceItem.Rows.Count > 0)//如果dgv(维修项目)不为空{for (int i = 0; i < dgvServiceItem.Rows.Count; i++)//循环dgv{if (dtSettelItems.Rows.Count > 0)//如果套餐项目不为空{for (int j = 0; j < dtSettelItems.Rows.Count; j++)//循环表{//如果dgv(维修项目)中,已存在if (Convert.ToInt32(dgvServiceItem.Rows[i].Cells["工时项目ID"].Value) == Convert.ToInt32(dtSettelItems.Rows[j]["WorkHoursItemID"])){dtSettelItems.Rows.Remove(dtSettelItems.Rows[j]);//从表中移除该工时项目,留下没有的}else{}}}}}if (dtSettelItems.Rows.Count > 0)//如果表不为空{for (int i = 0; i < dtSettelItems.Rows.Count; i++)//循环表{//dgv(维修项目)增加一行dgvServiceItem.Rows.Add();//赋值给dgv(维修项目)各列dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["工时项目明细ID1"].Value = Convert.ToInt32(dtSettelItems.Rows[i]["WorkHoursItemMinuteID"]);dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["工时项目ID"].Value = Convert.ToInt32(dtSettelItems.Rows[i]["WorkHoursItemID"]);dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["项目代码1"].Value = dtSettelItems.Rows[i]["ItemCode"];dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["项目名称"].Value = dtSettelItems.Rows[i]["ItemName"];dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["工种"].Value = dtSettelItems.Rows[i]["WorkKindName"];dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["帐类"].Value = dtSettelItems.Rows[i]["AccountType"];dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["帐类ID"].Value = Convert.ToInt32(dtSettelItems.Rows[i]["AccountTypeID"]);dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["工时单价"].Value = dtSettelItems.Rows[i]["WorkHoursMoney"];dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["标准工时"].Value = dtSettelItems.Rows[i]["ParWorkHours"];dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["优惠前工时金额"].Value = Convert.ToDecimal(dtSettelItems.Rows[i]["WorkHoursMoney"]) * Convert.ToDecimal(dtSettelItems.Rows[i]["ParWorkHours"]);dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["项目状态ID"].Value = "20";dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["项目状态"].Value = "待派";//根据帐类查询折扣DataTable dtAttributeMinuteListRemark = myFRM_QianTaiJieDai_JieCheClient.FRM_QianTaiJieDai_JieChe_SelectAttributeMinuteListRemark(Convert.ToInt32(dtSettelItems.Rows[i]["AccountTypeID"])).Tables[0];decimal decZheKo = Convert.ToDecimal(dtAttributeMinuteListRemark.Rows[0]["Remark"]);//计算优惠后工时金额dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["优惠后工时金额"].Value = Convert.ToDecimal(dtSettelItems.Rows[i]["WorkHoursMoney"]) * Convert.ToDecimal(dtSettelItems.Rows[i]["ParWorkHours"]) * decZheKo / 100;dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["工时乘单价"].Value = Convert.ToBoolean(dtSettelItems.Rows[i]["IfWorkHoursMultiplyUnitPrice"]);dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["折扣2"].Value = dtAttributeMinuteListRemark.Rows[0]["Remark"].ToString(); }}//根据套餐ID查询套餐设定的配件DataTable dtSettelParts=myFRM_QianTaiJieDai_JieCheClient.FRM_QianTaiJieDai_JieChe_SelectSetMealParts(Convert.ToInt32(dgvSettel.CurrentRow.Cells["套餐ID"].Value)).Tables[0];if (dgvNeedParts.Rows.Count > 0)//如果dgv(需求配件)不为空{for (int j = 0; j < dgvNeedParts.Rows.Count; j++)//循环dgv{if (dtSettelParts.Rows.Count > 0)//如果套餐配件不为空{for (int k = 0; k < dtSettelParts.Rows.Count; k++)//循环表{//如果dgv(维修项目)中,已存在if (Convert.ToInt32(dgvNeedParts.Rows[j].Cells["配件ID"].Value) == Convert.ToInt32(dtSettelParts.Rows[k]["PartsID"])){dtSettelParts.Rows.Remove(dtSettelParts.Rows[k]);//从表中移除该配件,留下没有的}else{}}}}}if (dtSettelParts.Rows.Count > 0)//如果表不为空{for (int j = 0; j < dtSettelParts.Rows.Count; j++)//循环表{//dgv(维修项目)增加一行dgvNeedParts.Rows.Add();//赋值给dgv(维修项目)各列dgvNeedParts.Rows[dgvNeedParts.Rows.Count - 1].Cells["配件编码"].Value = dtSettelParts.Rows[j]["PartsCoding"];dgvNeedParts.Rows[dgvNeedParts.Rows.Count - 1].Cells["配件名称"].Value = dtSettelParts.Rows[j]["PartsName"];dgvNeedParts.Rows[dgvNeedParts.Rows.Count - 1].Cells["车型"].Value = dtSettelParts.Rows[j]["CarModels"];dgvNeedParts.Rows[dgvNeedParts.Rows.Count - 1].Cells["帐类2"].Value = dtSettelParts.Rows[j]["AccountType"];dgvNeedParts.Rows[dgvNeedParts.Rows.Count - 1].Cells["帐类ID2"].Value = Convert.ToInt32(dtSettelParts.Rows[j]["AccountTypeID"]);dgvNeedParts.Rows[dgvNeedParts.Rows.Count - 1].Cells["需求数量"].Value = dtSettelParts.Rows[j]["Number"];dgvNeedParts.Rows[dgvNeedParts.Rows.Count - 1].Cells["销售单价"].Value = dtSettelParts.Rows[j]["SellPrice"];dgvNeedParts.Rows[dgvNeedParts.Rows.Count - 1].Cells["单位"].Value = dtSettelParts.Rows[j]["Unit"];dgvNeedParts.Rows[dgvNeedParts.Rows.Count - 1].Cells["配件ID"].Value = Convert.ToInt32(dtSettelParts.Rows[j]["PartsID"]);dgvNeedParts.Rows[dgvNeedParts.Rows.Count - 1].Cells["备注"].Value = "";//根据帐类查询折扣DataTable dtAttributeMinuteListRemark = myFRM_QianTaiJieDai_JieCheClient.FRM_QianTaiJieDai_JieChe_SelectAttributeMinuteListRemark(Convert.ToInt32(dtSettelParts.Rows[j]["AccountTypeID"])).Tables[0];decimal decZheKo = Convert.ToDecimal(dtAttributeMinuteListRemark.Rows[0]["Remark"]);//计算优惠后金额dgvNeedParts.Rows[dgvNeedParts.Rows.Count - 1].Cells["优惠后金额"].Value = Convert.ToDecimal(dtSettelParts.Rows[j]["Number"]) * Convert.ToDecimal(dtSettelParts.Rows[j]["SellPrice"]) * decZheKo / 100;dgvNeedParts.Rows[dgvNeedParts.Rows.Count - 1].Cells["折扣1"].Value = dtAttributeMinuteListRemark.Rows[0]["Remark"].ToString();}}dgvSettel.Visible = false;//dgv(套餐)不可见}
4、转维修项目
第一步:界面层(UIL),(图四)dgv(建议维修项目)中的【转维修项目】按钮的点击事件。
private void btnShiftServiceItems_Click(object sender, EventArgs e){if (dgvSuggestServiceItem.SelectedRows.Count > 0)//dgv(建议维修项目)不为空{if (dgvServiceItem.Rows.Count > 0)//dgv(维修项目)不为空{for (int i = 0; i < dgvServiceItem.Rows.Count; i++)//循环dgv(维修项目){//如果该项目已存在if (Convert.ToInt32(dgvSuggestServiceItem.CurrentRow.Cells["工时项目ID1"].Value) == Convert.ToInt32(dgvServiceItem.Rows[i].Cells["工时项目ID"].Value)){MessageBox.Show("已存在该项目,不能转!");return;}}}//dgv(维修项目)增加一行dgvServiceItem.Rows.Add();//赋值给dgv(维修项目)各列dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["工时项目明细ID1"].Value = dgvSuggestServiceItem.CurrentRow.Cells["工时项目明细ID2"].Value;dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["项目代码1"].Value = dgvSuggestServiceItem.CurrentRow.Cells["项目代号"].Value;dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["项目名称"].Value = dgvSuggestServiceItem.CurrentRow.Cells["项目名称3"].Value;dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["工种"].Value = dgvSuggestServiceItem.CurrentRow.Cells["工种3"].Value;dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["帐类"].Value = dgvSuggestServiceItem.CurrentRow.Cells["帐类3"].Value;dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["帐类ID"].Value = Convert.ToInt32(dgvSuggestServiceItem.CurrentRow.Cells["帐类ID3"].Value);dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["工时单价"].Value = dgvSuggestServiceItem.CurrentRow.Cells["工时单价2"].Value;dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["标准工时"].Value = dgvSuggestServiceItem.CurrentRow.Cells["工时3"].Value;dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["优惠前工时金额"].Value = Convert.ToDecimal(dgvSuggestServiceItem.CurrentRow.Cells["工时单价2"].Value) * Convert.ToDecimal(dgvSuggestServiceItem.CurrentRow.Cells["工时3"].Value);dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["项目状态ID"].Value = "20";dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["项目状态"].Value = "待派"; dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["工时乘单价"].Value = true;//根据帐类查询折扣DataTable dtAttributeMinuteListRemark = myFRM_QianTaiJieDai_JieCheClient.FRM_QianTaiJieDai_JieChe_SelectAttributeMinuteListRemark(Convert.ToInt32(dgvSuggestServiceItem.CurrentRow.Cells["帐类ID3"].Value)).Tables[0];decimal decZheKo = Convert.ToDecimal(dtAttributeMinuteListRemark.Rows[0]["Remark"]);//计算优惠后工时金额dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["优惠后工时金额"].Value = Convert.ToDecimal(dgvSuggestServiceItem.CurrentRow.Cells["工时单价2"].Value) * Convert.ToDecimal(dgvSuggestServiceItem.CurrentRow.Cells["工时3"].Value)*decZheKo /100;dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["折扣2"].Value = Convert.ToDecimal(dtAttributeMinuteListRemark.Rows[0]["Remark"]);dgvSuggestServiceItem.Rows.RemoveAt(dgvSuggestServiceItem.CurrentRow.Index);}else{MessageBox.Show("请选择数据!");}}
private void btnShiftServiceItems_Click(object sender, EventArgs e){if (dgvSuggestServiceItem.SelectedRows.Count > 0)//dgv(建议维修项目)不为空{if (dgvServiceItem.Rows.Count > 0)//dgv(维修项目)不为空{for (int i = 0; i < dgvServiceItem.Rows.Count; i++)//循环dgv(维修项目){//如果该项目已存在if (Convert.ToInt32(dgvSuggestServiceItem.CurrentRow.Cells["工时项目ID1"].Value) == Convert.ToInt32(dgvServiceItem.Rows[i].Cells["工时项目ID"].Value)){MessageBox.Show("已存在该项目,不能转!");return;}}}//dgv(维修项目)增加一行dgvServiceItem.Rows.Add();//赋值给dgv(维修项目)各列dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["工时项目明细ID1"].Value = dgvSuggestServiceItem.CurrentRow.Cells["工时项目明细ID2"].Value;dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["项目代码1"].Value = dgvSuggestServiceItem.CurrentRow.Cells["项目代号"].Value;dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["项目名称"].Value = dgvSuggestServiceItem.CurrentRow.Cells["项目名称3"].Value;dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["工种"].Value = dgvSuggestServiceItem.CurrentRow.Cells["工种3"].Value;dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["帐类"].Value = dgvSuggestServiceItem.CurrentRow.Cells["帐类3"].Value;dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["帐类ID"].Value = Convert.ToInt32(dgvSuggestServiceItem.CurrentRow.Cells["帐类ID3"].Value);dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["工时单价"].Value = dgvSuggestServiceItem.CurrentRow.Cells["工时单价2"].Value;dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["标准工时"].Value = dgvSuggestServiceItem.CurrentRow.Cells["工时3"].Value;dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["优惠前工时金额"].Value = Convert.ToDecimal(dgvSuggestServiceItem.CurrentRow.Cells["工时单价2"].Value) * Convert.ToDecimal(dgvSuggestServiceItem.CurrentRow.Cells["工时3"].Value);dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["项目状态ID"].Value = "20";dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["项目状态"].Value = "待派"; dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["工时乘单价"].Value = true;//根据帐类查询折扣DataTable dtAttributeMinuteListRemark = myFRM_QianTaiJieDai_JieCheClient.FRM_QianTaiJieDai_JieChe_SelectAttributeMinuteListRemark(Convert.ToInt32(dgvSuggestServiceItem.CurrentRow.Cells["帐类ID3"].Value)).Tables[0];decimal decZheKo = Convert.ToDecimal(dtAttributeMinuteListRemark.Rows[0]["Remark"]);//计算优惠后工时金额dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["优惠后工时金额"].Value = Convert.ToDecimal(dgvSuggestServiceItem.CurrentRow.Cells["工时单价2"].Value) * Convert.ToDecimal(dgvSuggestServiceItem.CurrentRow.Cells["工时3"].Value)*decZheKo /100;dgvServiceItem.Rows[dgvServiceItem.Rows.Count - 1].Cells["折扣2"].Value = Convert.ToDecimal(dtAttributeMinuteListRemark.Rows[0]["Remark"]);dgvSuggestServiceItem.Rows.RemoveAt(dgvSuggestServiceItem.CurrentRow.Index);}else{MessageBox.Show("请选择数据!");}}
5、库存不足时,新增配件订单,(图二)中【数量】的值改变事件。【新增订单】界面见下图:
第一步:数据库存储过程
IF(@TYPE='FRM_YuYueGuanLi_Insert_SelectKuCunShu') BEGINSELECT PartsID,LTRIM(RTRIM(StockNumber))AS StockNumberFROM BM_StockListWHERE PartsID=@PartsIDENDIF(@TYPE='FRM_YuYueGuanLi_Insert_YuYuePeiJianShu')BEGINSELECT PW_BespeakBillList.BespeakBillID, PW_BespeakPartsList.NeedNumber, BM_PartsList.PartsIDFROM PW_BespeakBillList INNER JOINPW_BespeakPartsList ON PW_BespeakBillList.BespeakBillID = PW_BespeakPartsList.BespeakBillID INNER JOINBM_PartsList ON PW_BespeakPartsList.PartsID = BM_PartsList.PartsIDWHERE (PW_BespeakBillList.IfEffective = 1 and PW_BespeakBillList.IfResourceRelease=0 AND PW_BespeakBillList.IfResourceRelease=0)ENDIF(@TYPE='FRM_YuYueGuanLi_Insert_WeiXiuXuQiuPeiJianShu')BEGINSELECT PW_ServiceWorkBillList.ServiceWorkBillID, PW_ServiceNeedPartsList.NeedNumber, BM_PartsList.PartsIDFROM PW_ServiceWorkBillList INNER JOINPW_ServiceNeedPartsList ON PW_ServiceWorkBillList.ServiceWorkBillID = PW_ServiceNeedPartsList.ServiceWorkBillID INNER JOINBM_PartsList ON PW_ServiceNeedPartsList.PartsID = BM_PartsList.PartsIDWHERE PW_ServiceWorkBillList.IfResourceRelease=0END
第二步:逻辑层(BLL)
//根据配件查询库存
[OperationContract]public DataSet FRM_YuYueGuanLi_Insert_SelectKuCunShu(int intPeiJianID){SqlParameter[] mySqlParameters ={new SqlParameter("@TYPE",SqlDbType.Char),new SqlParameter("@PartsID",SqlDbType.Int),};mySqlParameters[0].Value = "FRM_YuYueGuanLi_Insert_SelectKuCunShu";mySqlParameters[1].Value=intPeiJianID;DataTable dt = myDALMethod.QueryDataTable("预约管理_FRM_YuYueGuanLi_Insert", mySqlParameters);DataSet ds = new DataSet();ds.Tables.Add(dt);return ds; //返回数据集}
//查询预约配件数[OperationContract]public DataSet FRM_YuYueGuanLi_Insert_YuYuePeiJianShu(){SqlParameter[] mySqlParameters ={new SqlParameter("@TYPE",SqlDbType.Char),};mySqlParameters[0].Value = "FRM_YuYueGuanLi_Insert_YuYuePeiJianShu";DataTable dt = myDALMethod.QueryDataTable("预约管理_FRM_YuYueGuanLi_Insert", mySqlParameters);DataSet ds = new DataSet();ds.Tables.Add(dt);return ds; //返回数据集}
//查询维修工单配件数[OperationContract]public DataSet FRM_YuYueGuanLi_Insert_WeiXiuXuQiuPeiJianShu(){SqlParameter[] mySqlParameters ={new SqlParameter("@TYPE",SqlDbType.Char),};mySqlParameters[0].Value = "FRM_YuYueGuanLi_Insert_WeiXiuXuQiuPeiJianShu";DataTable dt = myDALMethod.QueryDataTable("预约管理_FRM_YuYueGuanLi_Insert", mySqlParameters);DataSet ds = new DataSet();ds.Tables.Add(dt);return ds; //返回数据集}
第三步:界面层(UIL)
BLL海马汽车销售系统.预约管理.FRM_YuYueGuanLi_Insert.FRM_YuYueGuanLi_InsertClient myFRM_YuYueGuanLi_InsertClient =new BLL海马汽车销售系统.预约管理.FRM_YuYueGuanLi_Insert.FRM_YuYueGuanLi_InsertClient();
private void txtNeedNumber_TextChanged(object sender, EventArgs e){decimal decKuCun = 0;decimal decYuYuePeiJianShu = 0;decimal decWeiXiuXuQiuPeiJianShu = 0;if (i == 1){//DataTable dtPeiJianXuanZe = myFRM_YuYueGuanLi_InsertClient.FRM_YuYueGuanLi_Insert_cboPeiJianBianMa_SelectedIndexChanged(Convert.ToInt32(cboPartsCoding.SelectedValue)).Tables[0];//txtPartsName.Text = dtPeiJianXuanZe.Rows[0]["PartsName"].ToString();//txtCarModels.Text = dtPeiJianXuanZe.Rows[0]["CarModels"].ToString();//txtPrice.Text = dtPeiJianXuanZe.Rows[0]["SellPrice"].ToString();//根据配件查询库存DataTable dtKuCun = myFRM_YuYueGuanLi_InsertClient.FRM_YuYueGuanLi_Insert_SelectKuCunShu(Convert.ToInt32(cboPeiJianBianMa.SelectedValue)).Tables[0];for (int j = 0; j < dtKuCun.Rows.Count; j++){//计算所有仓库的该配件总量decKuCun += Convert.ToDecimal(dtKuCun.Rows[j]["StockNumber"]);}//查询预约配件数DataTable dtYuYuePeiJianShu = myFRM_YuYueGuanLi_InsertClient.FRM_YuYueGuanLi_Insert_YuYuePeiJianShu().Tables[0];for (int J = 0; J < dtYuYuePeiJianShu.Rows.Count; J++){if (Convert.ToInt32(cboPeiJianBianMa.SelectedValue) == Convert.ToInt32(dtYuYuePeiJianShu.Rows[J]["NeedNumber"])){//合计预约配件数decYuYuePeiJianShu += Convert.ToInt32(dtYuYuePeiJianShu.Rows[J]["NeedNumber"]);}}//查询维修工单配件数DataTable dtWeiXiuXuQiuPeiJianShu = myFRM_YuYueGuanLi_InsertClient.FRM_YuYueGuanLi_Insert_WeiXiuXuQiuPeiJianShu().Tables[0];for (int k = 0; k < dtWeiXiuXuQiuPeiJianShu.Rows.Count; k++){if (Convert.ToInt32(cboPeiJianBianMa.SelectedValue) == Convert.ToInt32(dtWeiXiuXuQiuPeiJianShu.Rows[0]["NeedNumber"])){//合计维修工单配件数decWeiXiuXuQiuPeiJianShu += Convert.ToInt32(dtWeiXiuXuQiuPeiJianShu.Rows[0]["NeedNumber"]);}}//计算可用配件数decimal decKoXianShu = Convert.ToInt32(decKuCun - decYuYuePeiJianShu - decWeiXiuXuQiuPeiJianShu);if (Convert.ToDecimal(txtNeedNumber.Text) > decKoXianShu)//如果库存不足{if (MessageBox.Show("库存不足,是否生成配件订单表!", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes){blnShiFouDingGouPeiJian = true;//给公共变量赋值intPeiJianID = Convert.ToInt32(cboPeiJianBianMa.SelectedValue);//给公共变量赋值strPeiJianMingCheng = txtPartsCoding.Text;//给公共变量赋值PublicStaticObject.Pub_FRM_DingDanGuanLi_Insert = new 库存管理.FRM_DingDanGuanLi_Insert();PublicStaticObject.Pub_FRM_DingDanGuanLi_Insert.ShowDialog();库存管理.FRM_DingDanGuanLi_Insert myFRM_DingDanGuanLi_Insert = new 库存管理.FRM_DingDanGuanLi_Insert();myFRM_DingDanGuanLi_Insert.ShowDialog();//打开订单新增界面}else{}}}}
以上仅供学习参考,禁止用于商业用途!!!
这篇关于海马汽车经销商管理系统技术解析(十一)前台接待模块的接车功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!