Downloading Customer data from Intact Business Accounting
Intact Business Accounting has an SDK which is exposed for all developers and available in the system. The following sample shows how we load the customer data into an Access database for use with our MASC Product. IF you are using Intact and have any questions leave me a comment and I will reply.
Function LoadCust()
On Error GoTo Intact_Error
Dim IntactTable As New INTACTSDKTable
Dim tmpLastRecord, r, tmpCount, tmpCompany, tmpRcode
tmpRcode = GetPref("RouteCode Field Name")
Application.Echo True, "Linking to selected Intact Company"
tmpCompany = GetPref("Intact Company")
IntactTable.CompanyDirectory (tmpCompany)
IntactTable.TableName ("CUSTS")
'Clear customers and set reference to table
CurrentDb.Execute ("Delete * from tblCustomers")
CurrentDb.Execute ("Delete * from tblCustMemo")
Dim rstCust As Recordset
Set rstCust = CurrentDb.OpenRecordset("tblCustomers")
r = IntactTable.First
tmpLastRecord = True
tmpCount = 1
Do
rstCust.AddNew
'Assign details
rstCust!ID = IntactTable.fieldvalueasstring("CODE")
Application.Echo True, "Adding Customer Seq:" & tmpCount & " :" & IntactTable.fieldvalueasstring("CODE")
tmpCount = tmpCount + 1
rstCust!CustBarcode = IntactTable.fieldvalueasstring("CODE")
rstCust!CompanyName = IntactTable.fieldvalueasstring("NAME")
rstCust!Add1 = IntactTable.fieldvalueasstring("ADR1")
rstCust!Add2 = IntactTable.fieldvalueasstring("ADR2")
rstCust!Add3 = IntactTable.fieldvalueasstring("ADR3")
rstCust!Town = IntactTable.fieldvalueasstring("ADR4")
rstCust!County = IntactTable.fieldvalueasstring("ADR5")
rstCust!Phone = IntactTable.fieldvalueasstring("PHONE1")
rstCust!CPriceCode = IIf(Len(IntactTable.fieldvalueasstring("LISTCODE") & "") = 0, IntactTable.fieldvalueasstring("CODE"), IntactTable.fieldvalueasstring("LISTCODE"))
'Check Delivery Address
If Len(IntactTable.fieldvalueasstring("HOCODE") & "") > 0 Then
rstCust!MasterAccount = IntactTable.fieldvalueasstring("HOCODE")
rstCust!DeliveryAddress = -1
Else
rstCust!DeliveryAddress = 0
End If
rstCust!RouteCode = IntactTable.fieldvalueasstring("Repcode") 'tmpRcode) 'repcode
'Frequency Check
If Len(IntactTable.fieldvalueasstring("XXFREQ") & "") <> 0 And IntactTable.fieldvalueasstring("XXFREQ") <> "INVALID" Then
rstCust!Frequency = IntactTable.fieldvalueasstring("XXFREQ")
Else
rstCust!Frequency = "Docket"
End If
'Priced Check
If IntactTable.fieldvalueasstring("XXPRICED") = "t" Then
rstCust!Priced = -1
Else
rstCust!Priced = 0
End If
'Active Check
If IntactTable.fieldvalueasstring("XXACTIVE") = "t" Or IntactTable.fieldvalueasstring("XXACTIVE") = "INVALID" Or IntactTable.fieldvalueasstring("XXACTIVE") = "" Then
rstCust!Active = -1
Else
rstCust!Active = 0
End If
If IntactTable.fieldvalueasstring("ForceVat") = "T" Then
rstCust!C_Vol1 = 1
rstCust!C_Vol2 = IntactTable.fieldvalueasstring("DefVatCode")
Else
rstCust!C_Vol1 = 0
End If
'Other Fields
rstCust!InvoiceMovements = -1
rstCust!Currency = "EUR"
rstCust!Orders = 0
rstCust!MESSCHK = 0
rstCust!CustType = "RET"
'Update record
rstCust.Update
r = IntactTable.Next
If r = -90 Then tmpLastRecord = False
If IntactTable.fieldvalueasstring("CODE") = "" Then
tmpLastRecord = False
End If
Loop While tmpLastRecord
Set rstCust = Nothing
Set IntactTable = Nothing
Exit Function
Intact_Error:
MsgBox "Intact Customer List Refresh " & Err.Number & vbCrLf & "Details " & Err.Description & vbCrLf & "Intact Msg:" & GetIntactMsg(Err.Number)
Set rstCust = Nothing
Set IntactTable = Nothing
End Function
Leave a Reply
Want to join the discussion?Feel free to contribute!