【发布时间】:2022-12-03 04:18:31
【问题描述】:
你好朋友我需要帮助: 在这里我指定我在做什么:
1.- 我重写了Employee Timecard 的release 方法,进行验证以获取项目的默认分支代码,然后将其插入到项目的事务屏幕中。
public class TimeCardMaint_Extension : PXGraphExtension<TimeCardMaint>
{
#region Event Handlers
public delegate IEnumerable ReleaseDelegate(PXAdapter a);
[PXOverride]
public IEnumerable Release(PXAdapter adapter, ReleaseDelegate InvokeBase)
{
PXGraph.InstanceCreated.AddHandler<RegisterEntry>((graph) =>
{
graph.RowInserted.AddHandler<PMTran>((sender, e) =>
{
EPTimecardDetail detail = PXResult<EPTimecardDetail>.Current;
if (detail != null)
{
var tran = (PMTran)e.Row;
PMProject project = PXSelect<PMProject,
Where<PMProject.contractID, Equal<Required<PMProject.contractID>>>>.Select(Base, detail.ProjectID);
if (project != null)
{
tran.BranchID = project.DefaultBranchID;
}
}
});
});
return InvokeBase(adapter);
}
#endregion
}
在这里我们看到项目的交易屏幕,进行正确的更改。
但是,如果我检查 Journal Transactions 屏幕,它会生成两个新条目,它实际上应该只生成一个日记条目,因为它在 acumatica 中默认情况下会这样做。
由于这些后果,是因为我修改了员工的考勤卡,在发布方法中,我不知道发生了什么:
我需要你告诉我我应该做什么或我做错了什么,真的我只需要修改项目交易屏幕,其他不应该影响我希望我已经清楚了..
【问题讨论】:
标签: c# acumatica acumatica-kb