Showing posts with label Calculate MarkupTrans in D365FO. Show all posts
Showing posts with label Calculate MarkupTrans in D365FO. Show all posts

Sunday, July 24, 2022

Calculate MarkupTrans Amount in D365FO using X++

 static void calculateMarkupTrans(Args _args)
{
    SalesTable              salesTable = SalesTable::find('000854');
    SalesLine               salesLine;
    AmountCur               markupAmount;
    MarkupTrans             markupTrans;
    CurrencyExchangeHelper  curCurrencyExchangeHelper;
     
    while select salesLine
        where salesLine.SalesId == salesTable.SalesId
    {
        while select markupTrans
            where markupTrans.TransTableId  == salesLine.TableId
                && markupTrans.TransRecId    == salesLine.RecId
        {
            markupAmount = Markup::calcTrans(markupTrans, salesLine.SalesQty, salesLine.LineAmount);
            if (markupTrans.CurrencyCode != salesTable.CurrencyCode)
            {
                // To automatically conver amount Markup::calcMarkupAmount can be used
                curCurrencyExchangeHelper = CurrencyExchangeHelper::newExchangeDate(Ledger::primaryLedger(CompanyInfo::findDataArea(markupTrans.company()).RecId), systemDateGet());
                markupAmount = curCurrencyExchangeHelper.calculateAccountingToTransaction(salesTable.CurrencyCode, markupAmount, true);
            }
        }
    }
}