首页 > 解决方案 > TmpTaxWorkTrans 表中的 SourceBaseAmountCur 字段是如何计算的?

问题描述

我需要找出 SourceBaseAmountCur 是如何计算的,在我的情况下,我在 SST 窗口上的 Amount Origin 中出现错误,在需要时它不显示 0。

我来自总帐>日记帐>普通日记帐>(选择一条记录,转到行)>然后是SST窗口。然后,金额来源字段。

金额来源是一个显示字段:

display TaxBaseCur displaySourceBaseAmountCur(TmpTaxWorkTrans _tmpTaxWorkTrans)
{
       return taxTmpWorkTransForm.getSourceBaseAmountCur(_tmpTaxWorkTrans);
}

如上面的代码所示,它已经传递了一条 TmpTaxWorkTrans 记录。转到类 TaxTmpWorkTransForm 上的该方法,这是该方法:

public TaxAmountCur getSourceBaseAmountCur(TmpTaxWorkTrans _tmpTaxWorkTrans = null, TmpTaxRegulation _tmpTaxRegulation = null)
{
       if (_tmpTaxRegulation)
       {
          return _tmpTaxRegulation.SourceBaseAmountCur;
       }
      else
      {
          return _tmpTaxWorkTrans.SourceBaseAmountCur * _tmpTaxWorkTrans.taxChangeDisplaySign(accountTypeMap);
      }
}

我找到了这篇文章:https : //dynamicsuser.net/ax/f/technical/92855/how-tmptaxworktrans-populated 我从那里开始 Class\Tax\insertIntersection 不幸的是我找不到我想要的东西,一直调试了几天。

标签: axaptax++dynamics-ax-2012

解决方案


一个重要的区别是过帐与非过帐日记帐的税收计算。看来您正在查看未发布的期刊。

我没有很好的数据来测试这个,但我只是在 20 分钟内一起破解了这个 POC 作业,但它应该有足够的“位”,你可以使用它运行并获取你需要的信息。

static void Job3(Args _args)
{
    TaxCalculation          taxCalculation;
    LedgerJournalTrans      ledgerJournalTrans;
    TmpTaxWorkTrans         tmpTaxWorkTrans;
    TaxAmountCur            taxAmountCur;

    ledgerJournalTrans = LedgerJournalTrans::findRecId(5637293082, false); // Use your own journal line

    // The reason we call the below stuff is `element.getShowTax()` and is called from `\Forms\LedgerJournalTransDaily\Designs\Design\[ActionPane:ActionPane]\[ActionPaneTab:ActionPaneTab]\[ButtonGroup:ButtonGroup]\MenuItemButton:TaxTransSource\Methods\clicked`

    // This is from `\Classes\LedgerJournalEngine\getShowTax`
    taxCalculation = LedgerJournalTrans::getTaxInstance(ledgerJournalTrans.JournalNum, ledgerJournalTrans.Voucher, ledgerJournalTrans.Invoice, true, null, false, ledgerJournalTrans.TransDate);
    taxCalculation.sourceSingleLine(true, false);

    // This is from `\Classes\TaxTmpWorkTransForm\initTax`
    tmpTaxWorkTrans.setTmpData(taxCalculation.tmpTaxWorkTrans());

    // This is the temporary table that is populated
    while select tmpTaxWorkTrans
    {
        // This is from `\Classes\TaxTmpWorkTransForm\getSourceBaseAmountCur`
        taxAmountCur = (tmpTaxWorkTrans.SourceTaxAmountCur * tmpTaxWorkTrans.taxChangeDisplaySign(null)); // I pass null because the map doesn't appear used...investigate?

        // This just outputs some data
        info(strFmt("%1: %2", tmpTaxWorkTrans.TaxCode, taxAmountCur));
    }
}

推荐阅读