E-Invoice
E-Invoice Database
UI Name
Database
Type
Remarks
Doc Key
DocKey
String
E.g.: 1234567
Doc No
DocNo
String
E.g.: IV00001
Submit E-Invoice
SubmitEInvoice
String
E.g.: T
E-Invoice Unique Id
EInvoiceUuid
String
E.g.: A1B2C3...
EInvoice Validated Date Time
LastModified
Timestamp
E.g.:
2025-01-01T00:00:00.000
EInvoice Validation Link
EInvoiceValidationLink
String
E.g.:
https://myinvois.hasil.gov.my/......
E-Invoice's Sample Code
Remember to change to the correct field before proceeding to run ANY script.
moduleName = '{YOUR-MODULE-NAME}'
list = inputs["list"]
def data_has_change(data, input):
formatedFormTime = format(data['E-Invoice Validated Date'], "yyyy-MM-ddTHH:mm:ss") if data['E-Invoice Validated Date'] is not None else None;
formatedInputTime = format(input['LastModified'], "yyyy-MM-ddTHH:mm:ss")
has_change = (
formatedFormTime != formatedInputTime or
data['E-Invoice Unique Id'].ToString() != input['EInvoiceUuid'].ToString() or
data['E-Invoice Validation Link'].ToString() != input['EInvoiceValidationLink'].ToString() or
data['E-Invoice Status'].ToString() != input['EInvoiceStatus'].ToString()
)
return has_change
for item in list:
entry = Module(moduleName).find({
'Dynamic.Extension.{keyField}': item['DocNo'] # Running Number
})
form = Module(moduleName).execute('sync', entry)
if entry and data_has_change(entry,item):
form['E-Invoice Validated Date'] = item['LastModified']
form['E-Invoice Unique Id'] = item['EInvoiceUuid']
if item['EInvoiceValidationLink'] is not None:
sign_id = item['EInvoiceValidationLink'].ToString().split("/")[-1]
form['E-Invoice Digital Sign Id'] = sign_id
form['E-Invoice Validation Link'] = item['EInvoiceValidationLink']
form['E-Invoice Status'] = item['EInvoiceStatus']
Module(moduleName).submit(entry, form)
Last updated