出厂
出厂是对需要出厂而且已结算的车辆进行出厂记录。
点击【定位】,弹出dgv(维修工单)。见下图:
点击【出厂】按钮,弹出【出厂操作框】,见下图:
完成出厂。见下图:
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_ServiceReturnVisitIntentionList)
列名 | 数据类型 | 主键/外键 | 说明 |
ReturnVisitIntentionID | int - Identity | 主键 | 回访意向ID |
ServiceWorkBillID | int | 外键 | 维修工单表,维修工单ID |
BusinessSort | nchar (20) |
| 业务类别 |
IfAcceptReturnVisit | bit |
| 愿意回访否 |
LeaveFactoryDate | datetime |
| 出厂时间 |
AttributeMinuteID_ReturnVisitWay | int | 外键 | 属性明细表,属性明细ID_回访方式 |
ReturnVisitTime | datetime |
| 回访时间 |
LeaveFactoryMileage | decimal (18, 2) |
| 出厂里程 |
功能实现
1、【出厂操作框】界面,【确定】按钮点击事件。
第一步:数据库存储过程
IF(@TYPE='FRM_ChuChang_ChuChang_btnConfirm_Click')
BEGIN
INSERT PW_ServiceReturnVisitIntentionList(ServiceWorkBillID, BusinessSort, IfAcceptReturnVisit,
ReturnVisitTime, AttributeMinuteID_ReturnVisitWay, LeaveFactoryMileage,LeaveFactoryDate)
VALUES (@ServiceWorkBillID, @BusinessSort, @IfAcceptReturnVisit,
@ReturnVisitTime, @AttributeMinuteID_ReturnVisitWay, @LeaveFactoryMileage,@LeaveFactoryDate)
END
IF(@TYPE='FRM_ChuChang_ChuChang_btnConfirm_ClickUpdateCarStatus')
BEGIN
UPDATE PW_ServiceWorkBillList
SET AttributeMinuteID_CarStatus =84
WHERE ServiceWorkBillID=@ServiceWorkBillID
END
IF(@TYPE='FRM_ChuChang_ChuChang_UpdateServiceWorkBillList')
BEGIN
UPDATE PW_ServiceWorkBillList
SET IfResourceRelease=1
WHERE ServiceWorkBillID=@ServiceWorkBillID
END
第二步:逻辑层(BLL)
//保存回访意向信息
[OperationContract]
public int FRM_ChuChang_ChuChang_btnConfirm_Click(int intServiceWorkBillID, string strBusinessSort, bool blnIfAcceptReturnVisit, DateTime DtmReturnVisitTime,
int intReturnVisitWay, decimal decLeaveFactoryMileage, DateTime dtmLeaveFactoryDate)
{
SqlParameter[] mySqlParameters =
{
new SqlParameter("@TYPE",SqlDbType.Char),
new SqlParameter("@ServiceWorkBillID",SqlDbType.Int),
new SqlParameter("@BusinessSort",SqlDbType.NChar),
new SqlParameter("@IfAcceptReturnVisit",SqlDbType.Bit),
new SqlParameter("@ReturnVisitTime",SqlDbType.DateTime),
new SqlParameter("@AttributeMinuteID_ReturnVisitWay",SqlDbType.Int),
new SqlParameter("@LeaveFactoryMileage",SqlDbType.Decimal),
new SqlParameter("@LeaveFactoryDate",SqlDbType.DateTime),
};
mySqlParameters[0].Value = "FRM_ChuChang_ChuChang_btnConfirm_Click";
mySqlParameters[1].Value =intServiceWorkBillID;
mySqlParameters[2].Value =strBusinessSort;
mySqlParameters[3].Value =blnIfAcceptReturnVisit;
mySqlParameters[4].Value =DtmReturnVisitTime;
mySqlParameters[5].Value =intReturnVisitWay;
mySqlParameters[6].Value =decLeaveFactoryMileage;
mySqlParameters[7].Value = dtmLeaveFactoryDate;
return myDALMethod.UpdateData("前台接待_FRM_ChuChang", mySqlParameters); //返回值为1
}
[OperationContract]
//修改车辆状态
public int FRM_ChuChang_ChuChang_btnConfirm_ClickUpdateCarStatus(int intServiceWorkBillID)
{
SqlParameter[] mySqlParameters =
{
new SqlParameter("@TYPE",SqlDbType.Char),
new SqlParameter("@ServiceWorkBillID",SqlDbType.Int),
};
mySqlParameters[0].Value = "FRM_ChuChang_ChuChang_btnConfirm_ClickUpdateCarStatus";
mySqlParameters[1].Value = intServiceWorkBillID;
return myDALMethod.UpdateData("前台接待_FRM_ChuChang", mySqlParameters);
//返回值为1
}
//修改维修工单状态
[OperationContract]
public int FRM_ChuChang_ChuChang_UpdateServiceWorkBillList(int intServiceWorkBillID)
{
SqlParameter[] mySqlParameters =
{
new SqlParameter("@TYPE",SqlDbType.Char),
new SqlParameter("@ServiceWorkBillID",SqlDbType.Int),
};
mySqlParameters[0].Value = "FRM_ChuChang_ChuChang_UpdateServiceWorkBillList";
mySqlParameters[1].Value = intServiceWorkBillID;
return myDALMethod.UpdateData("前台接待_FRM_ChuChang", mySqlParameters);
//返回值为1
}
第三步:界面层(UIL)
BLL海马汽车销售系统.前台接待.FRM_QianTaiJieDai_ChuChang.FRM_QianTaiJieDai_ChuChangClient myFRM_QianTaiJieDai_ChuChangClient =
new BLL海马汽车销售系统.前台接待.FRM_QianTaiJieDai_ChuChang.FRM_QianTaiJieDai_ChuChangClient();
private void btnConfirm_Click(object sender, EventArgs e)
{
int intServiceReturnVisitIntention = 0;
int Update = 0;
int intUpdateServiceWorkBill=0;
//提示对话框,如果点击【是】
if (MessageBox.Show("确定出厂?", "提醒", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
//给各个参数赋值
int intServiceWorkBillID = FRM_ChuChang.ServiceWorkBillID;
string strBusinessSort = "";
bool blnIfAcceptReturnVisit = chkIfAcceptReturnVisit.Checked;
DateTime DtmReturnVisitTime = dtpReturnVisitTime.Value;
int intReturnVisitWay = Convert.ToInt32(cboReturnVisitWay.SelectedValue);
decimal decLeaveFactoryMileage = Convert.ToDecimal(txtLeaveFactoryMileage.Text);
DateTime dtmLeaveFactoryDate = dtpLeaveFactoryDate.Value;
//调用方法把回访意向保存进数据库
intServiceReturnVisitIntention = myFRM_QianTaiJieDai_ChuChangClient.FRM_ChuChang_ChuChang_btnConfirm_Click(intServiceWorkBillID, strBusinessSort,
blnIfAcceptReturnVisit, DtmReturnVisitTime, intReturnVisitWay, decLeaveFactoryMileage,dtmLeaveFactoryDate);
//调用方法修改维修工单的【车辆状态】
Update = myFRM_QianTaiJieDai_ChuChangClient.FRM_ChuChang_ChuChang_btnConfirm_ClickUpdateCarStatus(intServiceWorkBillID);
//调用方法修改维修工单的【释放否】
intUpdateServiceWorkBill=myFRM_QianTaiJieDai_ChuChangClient.FRM_ChuChang_ChuChang_UpdateServiceWorkBillList(intServiceWorkBillID);
}
if (intServiceReturnVisitIntention > 0 && Update > 0)//如果方法调用成功
{
MessageBox.Show("出厂成功!");
}
this.Close();//关闭窗体
}
以上仅供学习参考,禁止用于商业用途!!!