【发布时间】:2020-03-30 23:47:34
【问题描述】:
需要覆盖计算逾期费用 (AR507000) 计算操作。打算尝试覆盖整个CalculateFinancialCharges,但这似乎令人生畏(甚至不确定是否可能)。在我的扩展类中,我只想做一些后期处理: 如果在运行基本计算逻辑后在 ARFinChargeRecords 上找到行,则提示用户。如果他们回答是,遍历 ARFinChargeRecords 并更新 FinChargeAmt:当前发票余额 * .02
我对 Acumatica 开发非常陌生,并且已经完成了所有 T 课程。这是我要解决的第一个现实问题,但我运气不佳。看来 Base.calculate 会调用自己?我尝试使用发票发布操作覆盖的示例,但这似乎有所不同。
这是我迄今为止在我的扩展课程中所拥有的,但到目前为止还没有真正起作用。 var row1 = row 仅用于断点/调试目的:
public PXAction<ARFinChargesApplyMaint.ARFinChargesApplyParameters> Calculate;
[PXButton]
[PXUIField(DisplayName = "Calculate")]
protected void calculate()
{
Base.calculate.Press();
//int iCachedData = 0;
//foreach (var row in Base.ARFinChargeRecords.Cache.Cached)
//{
// iCachedData++;
// yield return row;
//}
//if (iCachedData > 0)
//{
if (Base.ARSetup.Ask("Apply Special Calculation (Percent Of Open Balance)", MessageButtons.YesNo) == WebDialogResult.Yes)
{
foreach (var row in Base.ARFinChargeRecords.Cache.Cached) {
var row1 = row;
}
// update FinChargeAmount with Balance * .02
// Base.ARFinChargeRecords
// Base.ARInvoices.
}
// }
}
【问题讨论】:
-
“不起作用”的范围太广。尝试将问题缩小到一个不起作用的可操作项并完整描述问题,例如:未调用方法覆盖。
-
如果我运行计算,我会得到 2 行显示使用内置逻辑的逾期费用。我收到两次询问的提示(所以几乎就像 Base.calculate 是递归的)但是当我进入这个时我从来没有看到任何行。 row1 = row 永远不会被击中。但同样,我什至不确定 A) 计算操作是否可以被覆盖,B) 如果可以,我显然不明白该怎么做。我正在尝试参考 T300 中的实验室,但找不到任何看起来接近我需要做的示例。 (在基本操作之后运行逻辑)
标签: overriding action acumatica