我有一个模板的合同,可以选择“启用模板项替代”。因此,我使用该模板创建合同。然后,当我运行“合同开票”时,它使用特定的明细,并使用“明细中的重复价格”来计算发票和备忘单中的金额。
现在,如果我使用不同的合同项目更新特定的合同明细并保存具有不同重复价格的项目。现在,如果我运行“运行合同开票”,则会从相同的旧合同明细中获得计算结果,并且它没有使用更新的合同明细,即使合同现在具有新的合同明细。
每次更新“合同明细”中的“合同项目”或“运行合同开票”时,我都要查看数据库,我看到合同明细是重复的。我在BillEngine的Bill方法中找到该代码,并在该代码中复制Contract Detail实例。
我尝试将LineNbr和RevID从旧合同明细交换到新明细记录,它仍显示带有新合同项目的新合同明细,但仍在发票和备忘录中使用相同的旧合同项目。
这是我在更新“合同详细信息”网格中的“合同项目”字段以具有更新的详细信息时要做的事情。
protected virtual void ContractDetail_ContractItemID_FieldUpdated(PXCache sender, PXFieldUpdatedEventArgs e, PXFieldUpdated InvokeBaseHandler)
{
if (InvokeBaseHandler != null)
InvokeBaseHandler(sender, e);
ContractDetail row = e.Row as ContractDetail;
if (row != null)
{
ContractItem item = PXSelect<ContractItem, Where<ContractItem.contractItemID, Equal<Required<ContractItem.contractItemID>>>>.Select(Base, row.ContractItemID);
if (item != null)
{
row.Description = item.Descr;
row.Qty = item.DefaultQty;
row.RecurringDiscountPct = 0;
row.FixedRecurringPriceVal = item.FixedRecurringPriceVal;
}
}
}