在 Acumatica ERP 中为 'Bill' 交易类型在支票和付款到账单和调整的详细交易中传递供应商参考值

Passing value of Vendor Ref in detail transactions of Check and Payment to Bill and Adjusment for 'Bill' transaction type in Acumatica ERP

我已经在 Acumatica ERP 的屏幕支票和付款 (AP302000) 中使用类型 = 'check' 创建了一个文档并发布了它。请参考下面的截图。

然后我会用账单来抵销这笔款项。请参考下面的截图。

当我使用同一供应商创建账单时,我想将支票和付款屏幕中详细交易的供应商编号传递到账单和调整屏幕的应用程序选项卡菜单中的新附加字段。

我应该创建新的附加字段吗?然后我应该在 Release 操作中创建 APPaymentEntryExtension 以将 APAdjust 的供应商参考传递到 Bill 屏幕的应用程序选项卡菜单中的新附加字段吗? 或者有没有另一种方法可以不创建新的附加字段?

谢谢,

看起来足以为 APAdjust DAC 声明自定义未绑定字段并将其填充到 RowSelecting(对于 0 支付金额 的记录)和 RowInserting(对于 [=13 的记录) =]支付金额大于 0) APInvoiceEntry BLC 扩展中的处理程序:

public class APAdjustExt : PXCacheExtension<APAdjust>
{
    public abstract class invoiceNbr : IBqlField
    { }

    [PXString]
    [PXUIField(DisplayName = "Vendor Ref.")]
    public string InvoiceNbr { get; set; }
}

public class APInvoiceEntryExt : PXGraphExtension<APInvoiceEntry>
{
    protected void APAdjust_RowSelecting(PXCache sender, PXRowSelectingEventArgs e)
    {
        APAdjust row = e.Row as APAdjust;
        if (row == null) return;

        using (var connScope = new PXConnectionScope())
        {
            row.GetExtension<APAdjustExt>().InvoiceNbr = GetInvoiceNbr(row);
        }
    }

    protected void APAdjust_RowInserting(PXCache sender, PXRowInsertingEventArgs e)
    {
        APAdjust row = e.Row as APAdjust;
        if (row != null)
        {
            row.GetExtension<APAdjustExt>().InvoiceNbr = GetInvoiceNbr(row);
        }
    }

    private string GetInvoiceNbr(APAdjust adjustment)
    {
        string invoiceNbr = null;

        var doc = (APInvoice)PXSelect<APInvoice,
            Where<APInvoice.docType, Equal<Required<APInvoice.docType>>,
                And<APInvoice.refNbr, Equal<Required<APInvoice.refNbr>>>>>
            .Select(Base, adjustment.AdjgDocType, adjustment.AdjgRefNbr);
        if (doc != null)
        {
            invoiceNbr = doc.InvoiceNbr;
        }

        return invoiceNbr;
    }
}