Credit Note
Credit Note's Database
UI Name
Database
Type
Remarks
Doc Key
docKey
Number
E.g.: 7890
Debtor
debtorCode
String
E.g.: 300-T005
C/N No
docNo
String
E.g.: CN2410-005
Date
docDate
String
E.g.: 2024-11-20T00:00:00+08:00
Description
description
String
E.g.: SALES - SE2410009 - - SNKO160240900740
C/N Type
journalType
String
E.g.: RETURN
Inclusive
inclusiveTax
Boolean
E.g.: true
Credit Note's Table Item
UI Name
Database
Type
Remarks
Item Code
accNo
String
E.g.: 500-0005
Description
description
String
E.g.: WAREHOUSE STORAGE FEES
Qty
qty
Number
E.g.: 15
UOM
uom
String
E.g.: BOX
Unit Price
unitPrice
Number
E.g.: 300
SubTotal
subtotal
Number
E.g.: 4500
Tax Adjustment
taxAdjustment
Number
E.g.: 50
Tax Code
taxCode
String
E.g.: TX-10
Credit Note's Sample Code
Remember to change to the correct field before proceeding to run ANY script.
import clr
clr.AddReference("Newtonsoft.Json")
clr.AddReference("System.Net")
clr.AddReference("System.IO")
from System.Text import *
from Newtonsoft.Json import *
from Newtonsoft.Json.Linq import *
from System import *
clr.AddReference("System.Drawing")
from System.Drawing import Bitmap, Image
from System.Drawing.Imaging import ImageFormat
from System.IO import MemoryStream, StreamWriter
from System.Net import WebClient
import binascii
from System import BitConverter
#search
documentList = Module('{YOUR-MODULE-NAME}').findAll({ 'Audit.UpdatedDate': { '$gt': Inputs['lastSync'] }, 'Audit.UpdatedBy': { "$ne": 'External' } })
debug('documentList', documentList)
resultList = []
def prepareRow(x):
row = JObject()
row["accNo"] = x['Item Codes']['{YOUR-ITEM-CODE}']
row["description"] = x['{YOUR-DESCRIPTION}']
row["qty"] = x['{YOUR-QUANTITY}']
row["uom"] = "N/A"
row["unitPrice"] = x['{YOUR-UNIT-PRICE}']
row["subtotal"] = x['{YOUR-TOTAL}']
row["taxAdjustment"] = None
if x["{YOUR-TAX-CODE}"].Id != 0:
row["taxCode"] = x['{YOUR-TAX-CODE}']['{YOUR-TAX-CODE}']
# row["taxRate"] = x['{YOUR-TAX-CODE}']['{YOUR-PERCENTAGE}'].ToString()
return row
def preparePayload(data):
payloadData = JObject()
if data['{YOUR-IS-ARCN}'] == True:
payloadData["type"] = "ARCN"
else:
payloadData["type"] = "CN"
payloadData["cancelled"] = data['{YOUR-CANCELLED}']
payloadData["payload"] = JObject()
if data['{YOUR-CODE}'] != None and data['{YOUR-CODE}'] != 0:
payloadData["payload"]["docKey"] = data['{YOUR-CODE}']
payloadData['payload']['debtorCode'] = data['{YOUR-COMPANY-CODE}']
payloadData['payload']['docNo'] = None if data['{YOUR-RUNNING-NUMBER}'] == "" or data['{YOUR-RUNNING-NUMBER}'] is None else data['{YOUR-RUNNING-NUMBER}']
payloadData['payload']['docDate'] = data['{YOUR-CREDIT-NOTE-DATE}']
payloadData['payload']['description'] = data['{YOUR-TRANSACTION-DESCRIPTION}']
payloadData['payload']['journalType'] = "SALES"
payloadData['payload']['inclusiveTax'] = True
payloadData['payload']['details'] = JArray.FromObject(data['{YOUR-DETAILS}'].Select(lambda x: prepareRow(x)))
payloadData["LastModified"] = data.UpdatedDate
return payloadData
#end of added
for entry in documentList:
payloadData = preparePayload(entry)
if payloadData["payload"]["debtorCode"] != None and payloadData["payload"]["debtorCode"] != "":
resultList.append(payloadData)
#debug('payloadData', payloadData)
#debug('done', resultList)
outputs['results'] = JArray.FromObject(resultList)
Last updated