?? bos_wipe1bill_plugins.cls
字號:
sConBound1 = " substring(convert(varchar(7),FBillDate,21),1,4)= '" & CStr(iYear) & "'"
Case 3
Case 4
If iPeriod <= 3 Then
sConBound = "FYear= " & iYear & " and FPeriod<=3 " ' in (1,2,3)"
sConBound1 = " substring(convert(varchar(7),FBillDate,21),1,4)='" & CStr(iYear) & "' and substring(convert(varchar(7),FBillDate,21),6,2)<='03'"
ElseIf iPeriod >= 4 And iPeriod <= 6 Then
sConBound = "FYear= " & iYear & " and FPeriod <=6 " 'in (4,5,6)"
sConBound1 = " substring(convert(varchar(7),FBillDate,21),1,4)='" & CStr(iYear) & "' and substring(convert(varchar(7),FBillDate,21),6,2)<='06'"
ElseIf iPeriod >= 7 And iPeriod <= 9 Then
sConBound = "FYear= " & iYear & " and FPeriod <=9 " 'in (7,8,9)"
sConBound1 = " substring(convert(varchar(7),FBillDate,21),1,4)='" & CStr(iYear) & "' and substring(convert(varchar(7),FBillDate,21),6,2)<='09'"
ElseIf iPeriod >= 10 And iPeriod <= 12 Then
sConBound = "FYear= " & iYear & " and FPeriod <=12 " 'in (10,11,12)"
sConBound1 = " substring(convert(varchar(7),FBillDate,21),1,4)='" & CStr(iYear) & "' and substring(convert(varchar(7),FBillDate,21),6,2)<='12'"
End If
Case 5
If iPeriod < 7 Then
sConBound = "FYear= " & iYear & " and FPeriod <=6" 'in (1,2,3,4,5,6)"
sConBound1 = " substring(convert(varchar(7),FBillDate,21),1,4)='" & CStr(iYear) & "' and substring(convert(varchar(7),FBillDate,21),6,2)<='06'"
ElseIf iPeriod >= 7 Then
sConBound = "FYear= " & iYear & " and FPeriod <=12" ' in (7,8,9,10,11,12)"
sConBound1 = " substring(convert(varchar(7),FBillDate,21),1,4)='" & CStr(iYear) & "' and substring(convert(varchar(7),FBillDate,21),6,2)<='12'"
End If
End Select
'本年的到目前為止的預算
sSql = "SELECT sum(case when Acct.FDC=1 then isnull(Budd.FDebitMoney,0) else IsNull(Budd.FCreditMoney,0) end) as FBudMoney" & _
" FROM t_MgBudGetDetail As BudD" & _
" Inner join t_MgBudGet as Bud on Bud.FBudGetID= Budd.FBudgetID" & _
" Inner join t_MgBudgetSet As BudSet On Bud.FProjectID=BudSet.FProjectID" & _
" Inner Join t_MgAcct as Acct ON Acct.FMgAcctID=Bud.FMgAcctID" & _
" Where BudSet.FExec = 1 And Bud.FItemID = 0 And Acct.FDelete = 0 And Bud.FCyID = 1" & _
" And Acct.FMgAcctID = '" & lBudgetAccId & "'"
sSql = sSql & " and " & sConBound
Set rs = .K3Lib.GetData(sSql)
If rs.State = adStateOpen And rs.RecordCount > 0 Then
lbudget = CNulls(rs("FBudMoney"), 0)
Else
lbudget = 0
End If
If rs.State = adStateOpen Then rs.Close
' '計算的到目前為止的本年調整金額
' sSql = "SELECT isnull(sum(case when Acct.FDC=1 then isnull(BudModD.FDebitMoney,0) else IsNull(BudModD.FCreditMoney,0) end),0) as FBudMoney " & _
' " FROM t_MgBudModifyDetail As BudModD" & _
' " Inner join t_MgBudGetModify as BudMod on BudMod.FModifyid= BudModD.FModifyid" & _
' " inner join T_MgBudGet as Bud on Bud.FBudGetID =BudMod.FBudGetID" & _
' " Inner join t_MgBudgetSet As BudSet On Bud.FProjectID=BudSet.FProjectID" & _
' " Inner Join t_MgAcct as Acct ON Acct.FMgAcctID=Bud.FMgAcctID" & _
' " Where BudSet.FExec = 1 And Bud.FItemID = 0 And Acct.FDelete = 0 And Bud.FCyID = 1" & _
' " And Acct.FMgAcctID = '" & lBudgetAccId & "'"
' sSql = sSql & " and " & sConBound
' Set rs = .K3Lib.GetData(sSql)
' If rs.State = adStateOpen And rs.RecordCount > 0 Then
' lbudget = lbudget + CCur(CNulls(rs("FBudMoney"), 0))
' Else
' lbudget = 0
' End If
' If rs.State = adStateOpen Then rs.Close
'計算預算科目的已經用金額-本年
'取對應預算科目所對應的全部 --會計科目
sSql = "select * from t_EP_ER_AccToMgAccEntry1 t1 " & _
" inner join t_EP_ER_AccToMgAcc t2 on t1.fid=t2.fid " & _
" where FBudgetItem ='" & lBudgetAccId & "'"
Set rs = .K3Lib.GetData(sSql)
If rs.State = adStateOpen And rs.RecordCount > 0 Then
j = 1
sAccIdDepId = ""
rs.MoveFirst
While j <= rs.RecordCount
If sAccIdDepId = "" Then
sAccIdDepId = sAccIdDepId & " (FReqDept= '" & CStr(rs("FDepID")) & "' and FLoanItem='" & CStr(rs("FAcctID")) & "')"
Else
sAccIdDepId = sAccIdDepId & " or " & " (FReqDept= '" & CStr(rs("FDepID")) & "' and FLoanItem='" & CStr(rs("FAcctID")) & "')"
End If
j = j + 1
rs.MoveNext
Wend
Else
End If
'1. 借款申請的金額,只取沒有與報銷單勾銷的
sFid_src = ""
If Trim(.Data("Page2").Item(i)(.DataSrv.TableInfo("map")("FID_SRC"))("FFLD")) <> "" Then
sFid_src = " AND t1.fid<>" & .Data("Page2").Item(i)(.DataSrv.TableInfo("map")("FID_SRC"))("FFLD")
End If
sSql = " select isnull(sum(FCtlAmt),0) as FCtlAmt from t_EP_ER_Loan t1 " & _
" LEFT JOIN T_ITEM T2 ON T2.FItemClassid=2 and t1.FReqDept=t2.fitemid " & _
" where Fclose=0 " & _
" and " & sConBound1 & sFid_src
If sAccIdDepId <> "" Then sSql = sSql & " AND (" & sAccIdDepId & ")"
Set rs = .K3Lib.GetData(sSql)
If rs.State = adStateOpen And rs.RecordCount > 0 Then
lUseAmt1 = CNulls(rs("FCtlAmt"), 0)
Else
lUseAmt1 = 0
End If
If rs.State = adStateOpen Then rs.Close
'2. 報銷的金額
'支出憑單中的金額
sSql = "select ISNULL(sum(t1.FWipeAmt),0) as FWipeAmt from t_EP_ER_WipeOff1Entry1 t1 " & _
" INNER JOIN t_EP_ER_WipeOff1 t2 on t1.Fid=t2.Fid " & _
" AND " & sConBound1 & " AND T2.FID <> " & .CurBillID
If sAccIdDepId <> "" Then
sAccIdDepId = Replace(sAccIdDepId, "FReqDept", "FDivideDep")
sAccIdDepId = Replace(sAccIdDepId, "FLoanItem", "FWipeItem")
sSql = sSql & " AND (" & sAccIdDepId & ")"
End If
Set rs = .K3Lib.GetData(sSql)
If rs.State = adStateOpen And rs.RecordCount > 0 Then
lUseAmt21 = CNulls(rs("FWipeAmt"), 0)
Else
lUseAmt21 = 0
End If
If rs.State = adStateOpen Then rs.Close
'支出證明單中的金額
sSql = "select ISNULL(sum(t1.FWipeAmt),0) as FWipeAmt from t_EP_ER_WipeOff2Entry1 t1 " & _
" INNER JOIN t_EP_ER_WipeOff2 t2 on t1.Fid=t2.Fid " & _
" AND " & sConBound1 & " AND T2.FID <> " & .CurBillID
If sAccIdDepId <> "" Then
sAccIdDepId = Replace(sAccIdDepId, "FReqDept", "FDivideDep")
sAccIdDepId = Replace(sAccIdDepId, "FLoanItem", "FWipeItem")
sSql = sSql & " AND (" & sAccIdDepId & ")"
End If
Set rs = .K3Lib.GetData(sSql)
If rs.State = adStateOpen And rs.RecordCount > 0 Then
lUseAmt22 = CNulls(rs("FWipeAmt"), 0)
Else
lUseAmt22 = 0
End If
If rs.State = adStateOpen Then rs.Close
'3計算本次的該項目的報銷金額 .Data("Page2").Item(i)(.DataSrv.TableInfo("map")("FWipeAmt"))("FFLD")
lUseAmt3 = 0
For j = 1 To .Data("page2").Size
If .Data("Page2").Item(j)(.DataSrv.TableInfo("map")("FWipeITEM"))("FFLD") = lAcctId _
And .Data("Page2").Item(j)(.DataSrv.TableInfo("map")("FDivideDep"))("FFLD") = lDepId Then
lUseAmt3 = lUseAmt3 + .Data("Page2").Item(j)(.DataSrv.TableInfo("map")("FWipeAmt"))("FFLD")
End If
Next j
'借款金額 加上報銷金額 加上本次報銷金額
If iType <> 1 Then
lUseAmt = lUseAmt1 + lUseAmt21 + lUseAmt22 + lUseAmt3
Else
lUseAmt = lUseAmt1 + lUseAmt21 + lUseAmt22
End If
'判斷余額是否大于借款金額
If lbudget < lUseAmt Then
'計算余額
lBalanceAmt = lbudget - lUseAmt1 - lUseAmt21 - lUseAmt22
sErr = sErr & "報銷項目: '" & .GetFieldValue("FWipeItem", i, Enu_ValueType_FFND) & "-" & _
.GetFieldValue("FWipeItem", i, Enu_ValueType_FDSP) & "',部門 :'" & _
.GetFieldValue("FDivideDep", i, Enu_ValueType_FFND) & "-" & .GetFieldValue("FDivideDep", i, Enu_ValueType_FDSP) & _
"',預算余額:" & lBalanceAmt & ",當前報銷金額:" & lUseAmt3 & "已經超過預算金額!" & vbCrLf
End If
i = i + 1
Wend
If sErr <> "" Then
compareNum = False
sRet = sErr
Else
compareNum = True
End If
End With
Set rs = Nothing
Exit Function
ERR:
Set rs = Nothing
compareNum = False
lBalanceAmt = 0
sErr = "比較預算余額失敗,原因:" & ERR.Number & ERR.Description
End Function
Private Sub m_BillInterface_MenuBarClick(ByVal BOSTool As K3ClassEvents.BOSTool, Cancel As Boolean)
If BOSTool.ToolName = "mnuEditDelRow" Then
If tmpFloanItem <> "" Then
Cancel = True
MsgBox "關聯借款申請單的記錄行不能刪除!", vbOKOnly + vbInformation, HINTINFO
End If
End If
If BOSTool.ToolName = "mnuCopyRow" Then
If tmpFloanItem <> "" Then
Cancel = True
MsgBox "關聯借款申請單的記錄行不能復制!", vbOKOnly + vbInformation, HINTINFO
End If
End If
With m_BillInterface
If BOSTool.ToolName = "mnuFilePreview" Or BOSTool.ToolName = "mnuFilePrint" Then
If .BillStatus = Enu_BillStatusExt_New Then
MsgBox "請先保存單據,再進行打印操作!", vbOKOnly + vbInformation, HINTINFO
Cancel = True
End If
End If
End With
End Sub
Private Function getBudgetid() As Boolean
'-------------------------------------------------------------------
'新增單據后,取當前的預算方案編號
'-------------------------------------------------------------------
Dim rs As New ADODB.Recordset
With m_BillInterface
Set rs = .K3Lib.GetData("select FProjectID,FName from t_mgBudgetSet where fexec=1")
If rs.State = adStateOpen And rs.RecordCount > 0 Then
.SetFieldValue "FBudgetScheme", rs("FName")
lBudgetProjectID = rs("FProjectID")
getBudgetid = True
Else
MsgBox "當前沒有正在執行的預算!", vbOKOnly + vbExclamation, HINTINFO
lBudgetProjectID = 0
getBudgetid = False
End If
End With
Set rs = Nothing
End Function
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -