Using the instruction I got here a few days ago I followed the instructions but I keep on getting the following:
(1) Line product is being repeated twice which is not correct
(2) If you check carefully, you will find that Dictionary number 2 has no name and is empty, how can name it to hold customer details information and insert customer details it
(1) Line product is being repeated twice which is not correct
(2) If you check carefully, you will find that Dictionary number 2 has no name and is empty, how can name it to hold customer details information and insert customer details it
Code:
{
"PosVendor": "Nector Prime Accounting Solutions",
"PosSoftVersion": "2.0.0.1",
"PosModel": "Cap-2017",
"PosSerialNumber": "18000032693",
"IssueTime": "20231218123609",
"TransactionType": 0,
"PaymentMode": 3,
"SaleType": 1,
"TaxLabels": "B",
"LocalPurchaseOrder": null,
"Cashier": "Admin Manager",
"OriginalInvoiceCode": null,
"OriginalInvoiceNumber": null,
"Memo": null,
"Currency-Type": "ZMW",
"Conversion-Rate": 1,
"Receipts": {
},
"itemlist": [
{
"ItemId": 1,
"Description": "MIRINDA FRUITY CAN 330 ML 24",
"BarCode": "001",
"Quantity": 1,
"UnitPrice": 63,
"Discount": 0,
"TotalAmount": 63
}
],
"ItemList": [
{
"ItemId": 1,
"Description": "MIRINDA FRUITY CAN 330 ML 24",
"BarCode": "001",
"Quantity": 1,
"UnitPrice": 63,
"Discount": 0,
"TotalAmount": 63
}
]
}
Public Sub CmdCwrite_Click()
Dim Cancel As Integer
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim fld As DAO.Field
Dim qdf As DAO.QueryDef
Dim prm As DAO.Parameter
Dim ItemId As Long
Dim Data As Dictionary
Dim transaction As Dictionary
Dim InvoiceData As Collection
Dim item As Dictionary
Dim i As Long
Dim n As Integer
Dim strdata As String
Dim itemCount As Long
Set Data = New Dictionary
Set InvoiceData = New Collection
Set db = CurrentDb
Set qdf = db.QueryDefs("QryJson")
For Each prm In qdf.Parameters
prm = Eval(prm.Name)
Next prm
Set rs = qdf.OpenRecordset(dbOpenSnapshot, dbSeeChanges)
Set qdf = Nothing
rs.MoveFirst
Do While Not rs.EOF
Set transaction = New Dictionary
transaction.Add "PosVendor", "Nector Prime Accounting Solutions"
transaction.Add "PosSoftVersion", "2.0.0.1"
transaction.Add "PosModel", "Cap-2017"
transaction.Add "PosSerialNumber", "18000032693"
transaction.Add "IssueTime", DateAdd("n", 120, Now())
transaction.Add "TransactionType", rs!ReceiptType.value
transaction.Add "PaymentMode", rs!PaymentMode.value
transaction.Add "SaleType", rs!SalesType.value
transaction.Add "TaxLabels", rs!TaxClassA.value
transaction.Add "LocalPurchaseOrder", rs!LocalPurchaseOrder.value
transaction.Add "Cashier", rs!Cashier.value
transaction.Add "OriginalInvoiceCode", rs!OrignalInvoiceCode.value
transaction.Add "OriginalInvoiceNumber", rs!OrignalInvoiceNumber.value
transaction.Add "Memo", rs!TheNotes.value
transaction.Add "Currency-Type", rs!Moneytype.value
transaction.Add "Conversion-Rate", rs!FCRate.value
transaction.Add "Receipts", Data
transaction.Add "itemlist", InvoiceData
'--- loop over all the items
itemCount = Me.txtinternalaudit
For i = 1 To itemCount
Set item = New Dictionary
InvoiceData.Add item
item.Add "ItemId", i
item.Add "Description", rs!ProductName.value
item.Add "BarCode", rs!BarCode.value
item.Add "Quantity", rs!Quantity.value
item.Add "UnitPrice", rs!UnitPrice.value
item.Add "Discount", 0
item.Add "TotalAmount", rs!TotalAmount.value
Next i
transaction.Add "ItemList", InvoiceData
rs.MoveNext
strdata = JsonConverter.ConvertToJson(transaction, Whitespace:=3)
Loop
n = FreeFile()
Open "C:\Users\chris.hankwembo\Desktop\Testing\test.txt" For Output As #n
Print #n, strdata
Close #n
rs.Close
Set rs = Nothing
Set db = Nothing
Set transaction = Nothing
Set InvoiceData = Nothing
Set item = Nothing
Set fld = Nothing
Set Data = Nothing
Set qdf = Nothing
Set prm = Nothing
Exit Sub
End Sub