axapta - 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 不幸的是我找不到我想要的东西,一直调试了几天。
解决方案
一个重要的区别是过帐与非过帐日记帐的税收计算。看来您正在查看未发布的期刊。
我没有很好的数据来测试这个,但我只是在 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));
}
}
推荐阅读
- leaflet - 向多个图层组添加标记
- wpf - 如何将样式和模板都添加到按钮?
- html - 自动调整子 div 的大小以填充父 div 的可用空间
- amazon-web-services - 如何将 S3 存储桶挂载到 ecs fargate 容器
- angular - 日期管道错误 - 升级到 Angular 11 时无法读取未定义的属性“toLowerCase”
- sql-server - 根据销售额将数据分配到存储桶中
- python-3.x - 按下按钮时在mac上将文本转换为语音
- python - 如何自动下载网站生成的电子表格?
- java - 我收到了一份关于 crushes java.lang.RuntimeException 的报告:
- javascript - 如何在移动版专注于输入的同时保持聊天的滚动水平?