?? account.bas
字號:
Attribute VB_Name = "mdlAccount"
'作者:蔡奇科白扳3
'說明:
'本模塊提供三種類型的接口:
'***********************************
'修改人:肖志華 (Oracle 版) 1998/10/09
'***********************************
'各列表窗口對應編輯權限ID(王成USE)
Option Explicit
Public Enum frmRightsID
frmListPurchaseOrderID = 50 '采購訂單
frmListPurchaseID_1 = 52 '商品采購
frmListPurchaseID_2 = 54 '直運采購
frmListPurchaseID_3 = 56 '受托入庫
frmListPurchaseID_4 = 58 '受托結算
frmListPurchaseID_5 = 106 '加工入庫
frmListPurchaseID_6 = 108 '加工費用
frmListPurchaseID_7 = 62 '采購發票
frmListPurchaseID_8 = 96 '自制入庫
frmListPurchaseID_9 = 129 '盤盈入庫
frmListPurchaseID_10 = 98 '其他入庫
frmListSalesOrderID = 68 '銷售訂單
frmListSalesID_11 = 70 '商品銷售
frmListSalesID_12 = 72 '直運銷售
frmListSalesID_13 = 74 '委托出庫
frmListSalesID_14 = 76 '委托結算
frmListSalesID_15 = 104 '加工出庫
frmListSalesID_16 = 82 '分期出庫
frmListSalesID_17 = 84 '分期結算
frmListSalesID_18 = 124 '銷售發票
frmListSalesID_19 = 100 '領用出庫
frmListSalesID_20 = 126 '成本調整
frmListSalesID_21 = 130 '盤虧出庫
frmListSalesID_22 = 102 '其他出庫
frmListConsigneeID = 60 '受托調價
frmListLendAdjustID = 80 '代銷調撥
frmListLendAdjustPriceID = 78 '代銷調價
frmListAdjustID = 88 '商品調撥
frmListAdjustPriceID = 90 '商品調價
frmListComposeID = 94 '商品組裝 & 商品拆卸
frmListCostPriceID = 110 '入庫成本
frmListStockTakingID = 92 '商品盤點
frmInvoiceListID = 36 '應收業務
frmPayableListID = 40 '應付業務
frmReceiveListID = 45 '付款單
frmPaymentListID = 43 '收款單
frmVoucherListID = 28 '記帳憑證
frmListTransID = 31 '通用轉帳消息
doTransID = 132 '執行轉帳
End Enum
Public frmR(1) As Form '銷售收款,采購付款
'參數:
'strOP :“I”插入,“D”刪除
'**** 要實現修改功能,請先刪除在新增 ****
'第1類:提供ItemActivity的ID 或 ItemActivityDeatilID 的ID 將一次全部處理本模塊所涉及的2個余額(發生額)表
'Public Function ChangeAllAccount_from_Activity(strOP As String, lngActivityID As Long) As Boolean
'第2類:數據直接從數據庫(ItemActivityDetail)中獲得后改變余額表(或發生額表)
'Public Function ChangeAccountDaily(strOP As String, lngActivityDetailID As Integer) As Boolean
'第3類:數據不從數據庫(ItemActivityDetail)中獲得,數據由用戶自己設置后改變余額表(或發生額表)
'(第二類接口被第一類接口從程序內部調用)
Public Function TableName(ByVal ReceiptType As Long) As String
Select Case ReceiptType
Case 56
TableName = "Receive"
Case 57
TableName = "Polic"
Case 58
TableName = "Repair"
Case 59
TableName = "AccOpen"
Case 60
TableName = "AccClose"
Case 61
TableName = "Move"
Case 62
TableName = "Halt"
Case 63
TableName = "Enable"
Case 64
TableName = ""
Case 65
TableName = ""
End Select
End Function
Public Sub ShowR_P(ByVal blnPayable As Boolean, Optional ByVal lngActivityID As Long = 0, Optional ByVal blnCancel As Boolean = False, Optional ByVal lngCustomerID As Long = 0, Optional ByVal lngItemActivityID As Long = 0)
If blnPayable Then
If frmR(1) Is Nothing Then
Set frmR(1) = New frmR_P
End If
If lngActivityID > 0 Then
frmR(1).ShowAOldBill 39, lngActivityID, blnCancel
Else
frmR(1).ShowANewTypeBill 39, lngCustomerID, lngItemActivityID
' frmR(1).ShowANewTypeBill 39, 121, 142 ' lngCustomerID, lngItemActivityID
End If
Else
If frmR(0) Is Nothing Then
Set frmR(0) = New frmR_P
End If
If lngActivityID > 0 Then
frmR(0).ShowAOldBill 40, lngActivityID, blnCancel
Else
frmR(0).ShowANewTypeBill 40, lngCustomerID, lngItemActivityID
End If
End If
End Sub
Public Function ChangeAllAccount_from_Activity(strOP As String, lngActivityID As Long) As Boolean
Dim SqlStr As String
Dim TmpQ As New rdoQuery
Dim rec As Boolean
On Error GoTo EndProc
SqlStr = "{ ? = CALL " & gclsBase.UID & ".ChangeAllAccount_from_Activity( '" & strOP & "', " & lngActivityID & ") } "
Set TmpQ.ActiveConnection = gclsBase.BaseDB
TmpQ.SQL = SqlStr
TmpQ(0).Type = rdTypeNUMERIC
TmpQ(0).Direction = rdParamReturnValue
TmpQ.Execute
rec = IIf(TmpQ(0).Value = 0, True, False)
EndProc:
Set TmpQ = Nothing
ChangeAllAccount_from_Activity = rec
End Function
'改變一張憑證,自動處理Account 和 AccountBalance
Public Function ChangeAllAccount_from_Voucher(strOP As String, lngVoucherID As Long) As Boolean
Dim SqlStr As String
Dim TmpQ As New rdoQuery
Dim rec As Boolean
On Error GoTo EndProc
If gclsBase.ControlAccount Then
SqlStr = "{ ? = CALL " & gclsBase.UID & ".ChangeAllAccount_from_Voucher( '" & strOP & "', " & lngVoucherID & ",1) } "
Else
SqlStr = "{ ? = CALL " & gclsBase.UID & ".ChangeAllAccount_from_Voucher( '" & strOP & "', " & lngVoucherID & ",0) } "
End If
Set TmpQ.ActiveConnection = gclsBase.BaseDB
TmpQ.SQL = SqlStr
TmpQ(0).Type = rdTypeNUMERIC
TmpQ(0).Direction = rdParamReturnValue
TmpQ.Execute
rec = IIf(TmpQ(0).Value = 0, True, False)
EndProc:
Set TmpQ = Nothing
ChangeAllAccount_from_Voucher = rec
End Function
Public Function ChangeAllAccount_From_VoucherDetail(ByVal strOP As String, ByVal lngDetailID As Long) As Boolean
Dim SqlStr As String
Dim TmpQ As New rdoQuery
Dim rec As Boolean
On Error GoTo EndProc
If gclsBase.ControlAccount Then
SqlStr = "{ ? = CALL " & gclsBase.UID & ".ChangeAccount_from_VDetail( '" & strOP & "', " & lngDetailID & ",1) } "
Else
SqlStr = "{ ? = CALL " & gclsBase.UID & ".ChangeAccount_from_VDetail( '" & strOP & "', " & lngDetailID & ",0) } "
End If
Set TmpQ.ActiveConnection = gclsBase.BaseDB
TmpQ.SQL = SqlStr
TmpQ(0).Type = rdTypeNUMERIC
TmpQ(0).Direction = rdParamReturnValue
TmpQ.Execute
rec = IIf(TmpQ(0).Value = 0, True, False)
EndProc:
Set TmpQ = Nothing
ChangeAllAccount_From_VoucherDetail = rec
End Function
'改變一張應收/應付,收款/付款單,自動處理AccountDaily& AccountBanlance表
Public Function ChangeAllAccount_from_Invoice(strOP As String, lngActivityID As Long) As Boolean
Dim SqlStr As String
Dim TmpQ As New rdoQuery
Dim rec As Boolean
On Error GoTo EndProc
SqlStr = "{ ? = CALL " & gclsBase.UID & ".ChangeAllAccount_from_Invoice( '" & strOP & "', " & lngActivityID & ") } "
Set TmpQ.ActiveConnection = gclsBase.BaseDB
TmpQ.SQL = SqlStr
TmpQ(0).Type = rdTypeNUMERIC
TmpQ(0).Direction = rdParamReturnValue
TmpQ.Execute
rec = IIf(TmpQ(0).Value = 0, True, False)
EndProc:
Set TmpQ = Nothing
ChangeAllAccount_from_Invoice = rec
End Function
''參數:
''intDirection: 1:改變AccountBalance的借方 -1:改變AccountBalance的貸方
''intFlag: 0:無憑證 1:未復核 2:已復核 3:已記帳
''dblCurrMoney 原幣金額
''dblMoney As 本幣金額
''dblQuantity 數量
''intYear
''lngAccountID
''lngCurrencyID
''lngJobID
''lngClassID1
''lngClassID2
''lngCustomerID
''lngDepartmentID
''lngEmployeeID
'Public Function NewAccountDaily(intDirection As Integer, intFlag As Integer, _
' strDate As String, lngAccountID As Long, lngCurrencyID As Long, _
' lngJobID As Long, lngClassID1 As Long, lngClassID2 As Long, _
' lngCustomerID As Long, lngDepartmentID As Long, _
' lngEmployeeID As Long, dblQuantity As Double, _
' dblCurrMoney As Double, dblMoney As Double) As Boolean
' Dim SqlStr As String
' Dim TmpQ As New rdoQuery
' Dim rec As Boolean
'
' SqlStr = "{ ? = CALL NewAccountDaily( " & intDirection & ", " & intFlag & ", " & dblQuantity & " , " _
' & dblCurrMoney & " , " & dblMoney & ", '" & strDate & "' , " & lngAccountID & " , " & lngCurrencyID & " , " _
' & lngJobID & " , " & lngClassID1 & " , " & lngClassID2 & " , " & lngCustomerID & " , " _
' & lngDepartmentID & " , " & lngEmployeeID & ") }"
' Set TmpQ.ActiveConnection = gclsBase.BaseDB
' TmpQ.sql = SqlStr
' TmpQ(0).Type = rdTypeNUMERIC
' TmpQ(0).Direction = rdParamReturnValue
' TmpQ.Execute
' rec = IIf(TmpQ(0).Value = 0, True, False)
' Set TmpQ = Nothing
' NewAccountDaily = rec
'End Function
'
'Public Function DeleteAccountDaily(intDirection As Integer, intFlag As Integer, strDate As String, lngAccountID As Long, lngCurrencyID As Long, lngJobID As Long, lngClassID1 As Long, lngClassID2 As Long, lngCustomerID As Long, lngDepartmentID As Long, lngEmployeeID As Long, dblQuantity As Double, dblCurrMoney As Double, dblMoney As Double) As Boolean
''On Error GoTo theErr
' If NewAccountDaily(intDirection, intFlag, strDate, lngAccountID, lngCurrencyID, lngJobID, lngClassID1, lngClassID2, lngCustomerID, lngDepartmentID, lngEmployeeID, -1 * dblQuantity, -1 * dblCurrMoney, -1 * dblMoney) = False Then Exit Function
' DeleteAccountDaily = True
' Exit Function
'theErr:
'End Function
'
'' *********************************
'' * AccountBalance *
'' *********************************
'
''當發生針對某會計科目的業務時,首先將業務發生額填入AccountDaily中,同時判斷本次的發生額是否對會計科目余額表造成影響
''如果影響,則應改變會計科目余額表(accountBalance)
''注意:本次發生額僅可能影響本會計年的下面的會計年(不影響當前會計年)
''注意:發生額對會計余額的影響,可通過函數GetChangedInitValues_AccountBalance獲得
'
''arrField_InitChange()arrValue_InitChange():要改變下一會計年余額的字段和對應的值
''說明:
''----------------------------------------------------------------------------------------------------------------
''以下為刪除期初單專用模塊
''----------------------------------------------------------------------------------------------------------------
'
''//////////////////////////////////////////////////////////////
''應收、應付、收款、付款單中對余額處理程序
''/////////////////////////////////////////////////////////////
''新增或修改本期期初余額庫
'Public Function NewBalance(ByVal lngActivityID As Long, ByVal lngReceiptTypeID As Long) As Boolean
' Dim SqlStr As String
' Dim TmpQ As New rdoQuery
' Dim rec As Boolean
'
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -