hi,
i have this json
"TaxTotal": [
{
"TaxAmount": [
{
"_": 87.63,
"currencyID": "MYR"
}
],
"TaxSubtotal": [
{
"TaxableAmount": [
{
"_": 87.63,
"currencyID": "MYR"
}
],
"TaxAmount": [
{
"_": 87.63,
"currencyID": "MYR"
}
],
"TaxCategory": [
{
"ID": [
{
"_": "01"
}
],
"TaxScheme": [
{
"ID": [
{
"_": "OTH",
"schemeID": "UN/ECE 5153",
"schemeAgencyID": "6"
}
]
}
]
}
]
}
]
}
],
the TaxSubTotal can be repeated few times because of multiple tax.
my following jfiles codes create only one node. where is my mistake:
! TaxTotal Section
InvoiceTaxTotalQueueType QUEUE,TYPE,NAME('TaxTotal')
TaxAmountQueueType &TaxAmountQueueType,NAME('TaxAmount | queue')
TaxSubtotalQueueType &TaxSubtotalQueueType,NAME('TaxSubtotal | queue')
END
TaxAmountQueueType QUEUE,TYPE,NAME('TaxAmount')
_ REAL,NAME('_')
currencyID STRING(255),NAME('currencyID')
END
TaxSubtotalQueueType QUEUE,TYPE,NAME('TaxSubtotal')
TaxableAmountQueueType &TaxableAmountQueueType,NAME('TaxableAmount | queue')
TaxAmountQueueType &TaxAmountQueueType,NAME('TaxAmount | queue')
PercentQueueType &PercentQueueType,NAME('Percent | opt | queue')
TaxCategoryQueueType &TaxCategoryQueueType,NAME('TaxCategory | queue')
END
PercentQueueType QUEUE,TYPE,NAME('Percent')
_ REAL,NAME('_')
END
TaxableAmountQueueType QUEUE,TYPE,NAME('TaxableAmount')
_ REAL,NAME('_')
currencyID STRING(255),NAME('currencyID')
END
TaxCategoryQueueType QUEUE,TYPE,NAME('TaxCategory')
TaxCategoryIDQueueType &TaxCategoryIDQueueType,NAME('ID | queue')
TaxExemptionReasonQueueType &TaxExemptionReasonQueueType,NAME('TaxExemptionReason | opt | queue')
TaxSchemeQueueType &TaxSchemeQueueType,NAME('TaxScheme | queue')
END
TaxCategoryIDQueueType QUEUE,TYPE,NAME('TaxCategoryID')
_ STRING(255),NAME('_')
END
TaxSchemeQueueType QUEUE,TYPE,NAME('TaxScheme')
TaxSchemeIDQueueType &TaxSchemeIDQueueType,NAME('ID | queue')
END
TaxExemptionReasonQueueType QUEUE,TYPE,NAME('TaxExemptionReason')
_ STRING(255),NAME('_')
END
! Note: The TaxScheme ID structure should reference a specialized ID queue type
! with additional attributes for this specific context:
TaxSchemeIDQueueType QUEUE,TYPE,NAME('TaxSchemeID')
_ STRING(255),NAME('_')
schemeID STRING(255),NAME('schemeID')
schemeAgencyID STRING(255),NAME('schemeAgencyID')
END
TaxTotalElement ROUTINE
element.Invoice.TaxTotal.TaxAmountQueueType &= NEW TaxAmountQueueType
TaxSubTotalElement ROUTINE
element.Invoice.TaxTotal.TaxSubtotalQueueType &= NEW TaxSubtotalQueueType
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxableAmountQueueType &= NEW TaxableAmountQueueType
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxAmountQueueType &= NEW TaxAmountQueueType
element.Invoice.TaxTotal.TaxSubtotalQueueType.PercentQueueType &= NEW PercentQueueType
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType &= NEW TaxCategoryQueueType
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxCategoryIDQueueType &= NEW TaxCategoryIDQueueType
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxExemptionReasonQueueType &= NEW TaxExemptionReasonQueueType
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxSchemeQueueType &= NEW TaxSchemeQueueType
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxSchemeQueueType.TaxSchemeIDQueueType &= NEW TaxSchemeIDQueueType
do TaxTotalElement
do TaxSubTotalElement
IF INH:Tax > 0 THEN
element.Invoice.TaxTotal.TaxAmountQueueType._ = INH:Tax + INH:Tax2
element.Invoice.TaxTotal.TaxAmountQueueType.currencyID = CLIP(INH:CurrencySign)
add(element.Invoice.TaxTotal)
add(element.Invoice.TaxTotal.TaxAmountQueueType)
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxableAmountQueueType._ = INH:Tax
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxableAmountQueueType.currencyID = CLIP(INH:CurrencySign)
element.Invoice.TaxTotal.TaxSubtotalQueueType.PercentQueueType._ = INH:TaxPercentage
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxCategoryIDQueueType._ = CLIP(INH:TaxTypesCode1)
ETT:TaxTypesCode = CLIP(INH:TaxTypesCode1)
IF Access:TaxTypes.Fetch(ETT:KeyTaxTypesCode) = Level:Benign THEN
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxSchemeQueueType.TaxSchemeIDQueueType._ = CLIP(ETT:TaxTypesDesc)
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxSchemeQueueType.TaxSchemeIDQueueType.schemeID = 'UN/ECE 5153'
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxSchemeQueueType.TaxSchemeIDQueueType.schemeAgencyID = '6'
END
add(element.Invoice.TaxTotal.TaxSubtotalQueueType)
add(element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxableAmountQueueType)
add(element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxAmountQueueType)
add(element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType)
add(element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxCategoryIDQueueType)
add(element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxSchemeQueueType)
add(element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxSchemeQueueType.TaxSchemeIDQueueType)
END
IF INH:Tax2 > 0 THEN
do TaxSubTotalElement
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxableAmountQueueType._ = INH:Tax2
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxableAmountQueueType.currencyID = CLIP(INH:CurrencySign)
element.Invoice.TaxTotal.TaxSubtotalQueueType.PercentQueueType._ = INH:TaxPercentage2
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxCategoryIDQueueType._ = CLIP(INH:TaxTypesCode2)
ETT:TaxTypesCode = CLIP(INH:TaxTypesCode2)
IF Access:TaxTypes.Fetch(ETT:KeyTaxTypesCode) = Level:Benign THEN
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxSchemeQueueType.TaxSchemeIDQueueType._ = CLIP(ETT:TaxTypesDesc)
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxSchemeQueueType.TaxSchemeIDQueueType.schemeID = 'UN/ECE 5153'
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxSchemeQueueType.TaxSchemeIDQueueType.schemeAgencyID = '6'
END
add(element.Invoice.TaxTotal.TaxSubtotalQueueType)
add(element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxableAmountQueueType)
add(element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxAmountQueueType)
add(element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType)
add(element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxCategoryIDQueueType)
add(element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxSchemeQueueType)
add(element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxSchemeQueueType.TaxSchemeIDQueueType)
END
IF INH:TaxExemptionsDetails <> ' ' THEN
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxExemptionReasonQueueType._ = CLIP(INH:TaxExemptionsDetails)
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxAmountQueueType._ = 0
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxAmountQueueType.currencyID = CLIP(INH:CurrencySign)
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxCategoryIDQueueType._ = 'E'
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxSchemeQueueType.TaxSchemeIDQueueType._ = 'OTH'
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxSchemeQueueType.TaxSchemeIDQueueType.schemeID = 'UN/ECE 5153'
element.Invoice.TaxTotal.TaxSubtotalQueueType.TaxCategoryQueueType.TaxSchemeQueueType.TaxSchemeIDQueueType.schemeAgencyID = 6
END