Dear All ,
I need to know how to calculate withholding tax value before posting the journal through x++ code in AX 2012 R3.
I need the withholding tax value in form “LedgerJournalTransDaily” in GJ journal through display method.
Thanks …
Mintu
Dear All ,
I need to know how to calculate withholding tax value before posting the journal through x++ code in AX 2012 R3.
I need the withholding tax value in form “LedgerJournalTransDaily” in GJ journal through display method.
Thanks …
Mintu
static void WithHoldTaxSample(Args _args)
{
PurchLine PurchLine;
Map mapOfTaxesToCalculate = new Map(Types::Container, Types::Real);
TaxWithholdOnItem_TH taxWithholdOnItem_TH;
TaxWithholdGroupData taxWithholdGroupData;
TaxWithholdBase taxWithholdBase;
container key;
MapEnumerator mapEnumerator;
TaxWithholdCode taxWithholdCode;
TaxWithholdTable taxWithholdTable;
TaxWithholdData taxWithholdData;
TmpTaxWithhold tmpTaxWithhold;
AmountMST taxBaseAmount;
while select LineAmount
, TaxWithholdItemGroupHeading_TH
, TaxWithholdGroup_TH
from PurchLine
where PurchLine.PurchId == “PO-123456”
{
while select TaxWithholdCode
from taxWithholdOnItem_TH
where taxWithholdOnItem_TH.TaxWithholdItemGroupHeading_TH == PurchLine.TaxWithholdItemGroupHeading_TH
join TaxWithholdGroup from taxWithholdGroupData
where taxWithholdGroupData.TaxWithholdGroup == PurchLine.TaxWithholdGroup_TH
&& taxWithholdOnItem_TH.TaxWithholdCode == taxWithholdGroupData.TaxWithholdCode
{
key = [taxWithholdGroupData.TaxWithholdGroup, taxWithholdOnItem_TH.TaxWithholdCode];
if (!mapOfTaxesToCalculate.exists(key))
{
mapOfTaxesToCalculate.insert(key, PurchLine.LineAmount);
}
else
{
taxWithholdBase = mapOfTaxesToCalculate.lookup(key);
taxWithholdBase += PurchLine.LineAmount;
mapOfTaxesToCalculate.insert(key, taxWithholdBase);
}
}
}
mapEnumerator = mapOfTaxesToCalculate.getEnumerator();
while (mapEnumerator.moveNext())
{
taxWithholdCode = conPeek(mapEnumerator.currentKey(), 2);
taxBaseAmount = mapEnumerator.currentValue();
taxWithholdTable = TaxWithholdTable::find(taxWithholdCode);
taxWithholdData = TaxWithholdData::find(taxWithholdTable.TaxWithholdCode,
today(),
taxBaseAmount);
if(taxWithholdData)
{
tmpTaxWithhold.TaxWithholdCode = taxWithholdTable.TaxWithholdCode;
tmpTaxWithhold.TaxWithholdValue = taxWithholdData.TaxWithholdValue;
tmpTaxWithhold.TaxWithholdBase = taxBaseAmount;
tmpTaxWithhold.TaxWithholdAmount = taxBaseAmount * tmpTaxWithhold.TaxWithholdValue / 100;
//tmpTaxWithhold.TaxWithholdTransId = _custVendTrans.RecId;
tmpTaxWithhold.insert();
}
}
while select tmpTaxWithhold
{
info(strFmt(“Code: %1, Aliquot: %1, Base amount: %3, Tax Amount: %4”,
tmpTaxWithhold.TaxWithholdCode,
tmpTaxWithhold.TaxWithholdValue,
tmpTaxWithhold.TaxWithholdBase,
tmpTaxWithhold.TaxWithholdAmount));
}
}
Hope it Helps