If e.Form.Controls("手工关联单号").Value = "" Then
Messagebox.Show("原收费单号不能为空!","保存失败提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
Return
End If
Dim Rsum As Integer
Dim Rtotal As Integer
For Each r As Row In Tables("车辆退费_TableFYlist") ‘查询表
If r.IsNull("数量") Or r.IsNull("费用单价") Then
Messagebox.Show("数量或单价存在有零的记录,请删除或修改后再保存!","保存失败提示",MessageBoxButtons.OK,MessageBoxIcon.Error)
Return
Else
r("金额") = r("数量") * r("费用单价")
Rsum += r("数量") * r("费用单价")
Rtotal += r("数量")
End If
Next
If Rsum = 0 Then
Messagebox.Show("金额不能为零,请修改后再保存!","保存失败提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
Return
End If
If Rsum > Vars("MaxOutMoney") Then
Messagebox.Show("你修改后的单据金额大于原始单据金额,无法保存!","保存失败提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
Return
End If
With Tables("费用记录单").Current
If .IsNull("支出原因") Then
Messagebox.Show("退费原因不能为空!","保存失败提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
Return
ElseIf .IsNull("付费单位") Then
Messagebox.Show("退费单位不能为空!","保存失败提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
Return
ElseIf .IsNull("进场编号") Then
Messagebox.Show("车辆编号不能为空!","保存失败提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
Return
ElseIf .IsNull("费用方式") Then
Messagebox.Show("退费方式不能为空!","保存失败提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
Return
ElseIf e.Form.Controls("ComFFFS").Text = "银行" Then
If .IsNull("付费银行") Or .IsNull("付费银行账号") Or .IsNull("收费银行") Or .IsNull("收费银行账号") Then
Messagebox.Show("退费方式为银行时,请填全银行信息!","保存失败提示",MessageBoxButtons.OK,MessageBoxIcon.Warning)
Return
End If
End If
End With
'以上代码全部为保存前条件判断
Dim MessStr As String
Dim MNums As Integer = 0 '定义数量 用于续费倍数,建议采用此项时最好保证费用记录是一条,不然有可能计算不准
Dim MLists As String '定义进度记录,用于累计此次交费项
Try
'Tables("费用记录单").Current.Save()
For Each r As Row In Tables("车辆退费_TableFYlist")
Tables("费用记录单.费用记录").AddNew()
Tables("费用记录单.费用记录").Current("费用项目") = r("费用项目")
Tables("费用记录单.费用记录").Current("费用单价") = r("费用单价")
Tables("费用记录单.费用记录").Current("数量") = r("数量")
Tables("费用记录单.费用记录").Current("金额") = r("金额")
Tables("费用记录单.费用记录").Current("付费方式") = Tables("费用记录单").Current("费用方式")
Tables("费用记录单.费用记录").Current("对应IC卡密") = Tables("费用记录单").Current("对应IC卡密")
Tables("费用记录单.费用记录").Current("进场编号") = Tables("费用记录单").Current("进场编号")
Tables("费用记录单.费用记录").Current("费用单号") = Tables("费用记录单").Current("费用单号")
Tables("费用记录单.费用记录").Current("对应银行") = Tables("费用记录单").Current("收费银行")
Tables("费用记录单.费用记录").Current("公司银行账号") = Tables("费用记录单").Current("收费银行账号")
Tables("费用记录单.费用记录").Current("费用类型") = r("费用类型")
Tables("费用记录单.费用记录").Current("单据类别") = Tables("费用记录单").Current("单据类别")
Tables("费用记录单.费用记录").Current("收付") = -1
Tables("费用记录单.费用记录").Current("是否流程") = r("是否流程")
Tables("费用记录单.费用记录").Current("流程顺序") = r("流程顺序")
Tables("费用记录单.费用记录").Current("固定收费") = r("固定收费")
Tables("费用记录单.费用记录").Current("有效期") = r("有效期")
MLists = MLists & "," & r("费用项目")
If r("流程顺序") = -365 Or r("流程顺序") = -3 Or r("流程顺序") = -1 Or r("流程顺序") = 1 Then
MNums = MNums + r("数量") * r("有效期")
End If
Next
'MNums = MNums * -1
Dim cdr As DataRow = DataTables("车辆基本信息").SQLFind("进场编号 = '" & Tables("费用记录单").Current("进场编号") & "'")
If cdr IsNot Nothing Then
DataTables("车辆基本信息").AllowEdit = True
'流程号:-365 -3 -2 -1 0 1-255 9999说明:-365年费续交 , -3临时卡超期补费,-2未交任何费用
'-1已交临时表押金 0是不含流程 的部分项目, 1-255 是流程的顺序号, 9999是特定收费项目
'Dim Sdate As Date = Functions.Execute("ServerDate")
If MNums > 0 Then
cdr("有效期结束") = cdr("有效期结束").AddDays(MNums * - 1)
MessStr = "已进入退费流程!有效期减少" & MNums & "天,请注意调整用户流程进度!"
Else
MessStr = "已进入退费流程! 请注意调整用户流程进度!"
End If
cdr("进度记录") = cdr("进度记录") & "→ 【退费】" & MLists.Trim(",")
Tables("费用记录单").Current("手工关联单号") = e.Form.Controls("手工关联单号").Value
Tables("费用记录单").Current("退费锁定") = True
Dim TTdr As DataRow = DataTables("费用记录单").SQLFind("费用单号 = '" & e.Form.Controls("手工关联单号").Value & "'")
If TTdr IsNot Nothing Then
TTdr("退费锁定") = True
End If
DataTables("费用记录单").Save()
Tables("费用记录单.费用记录").DataTable.Save()
DataTables("车辆基本信息").Save()
DataTables("车辆基本信息").AllowEdit = False
Else
Tables("费用记录单").Current.Reject()
DataTables("费用记录").RejectChanges()
DataTables("车辆基本信息").RejectChanges()
Messagebox.Show("没找到该单对应车辆,请联系管理员查找原因,该单据未能保存!","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Error)
Return
End If
Catch ex As Exception
Tables("费用记录单").Current.Reject()
DataTables("费用记录").RejectChanges()
DataTables("车辆基本信息").RejectChanges()
Messagebox.Show("出现意外错误,该单据未能保存!","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Error)
Return
End Try
Messagebox.Show(MessStr,"保存退费单成功",MessageBoxButtons.OK,MessageBoxIcon.Information)
e.Form.Controls("手工关联单号").Enabled = False
e.Form.Controls("TextFFYH").ReadOnly = BooleanEnum.True
e.Form.Controls("TextFFYHZH").ReadOnly = BooleanEnum.True
e.Form.Controls("ComSFYH").ReadOnly = BooleanEnum.True
e.Form.Controls("TextSFYHZH").ReadOnly = BooleanEnum.True
e.Form.Controls("支出原因").ReadOnly = BooleanEnum.True
e.Form.Controls("ComFFFS").Enabled = False
e.Form.Controls("BtnSave").Enabled = False
e.Form.Controls("BtnReDo").Enabled = False
e.Form.Controls("BtnPrint").Enabled = True
e.Form.Controls("BtnClose").Enabled = True