У меня проблема с настройкой экрана AR Relase All (AR501000). Проблема заключалась в том, что я пытался передать значение номера счета-фактуры (поле заказа клиента) на экране «Счета-фактуры и заметки» (AR301000), используя экран AR «Освободить весь процесс» (AR501000) с помощью флажка.
Сначала я создаю GLTranExtension, как показано ниже:
using System;
using PX.Data;
using PX.Objects.CM;
using PX.Objects.CS;
using PX.Objects.PM;
using PX.Objects.CR;
using PX.Objects.TX;
using System.Collections.Generic;
using PX.Objects;
using PX.Objects.GL;
namespace SGLCustomizeProject
{
[Serializable]
public class GLTranExtension: PXCacheExtension<PX.Objects.GL.GLTran>
{
#region UsrInvoiceNbr
public abstract class usrInvoiceNbr : IBqlTable { }
[PXDBString(60, IsFixed = true)]
[PXUIField(DisplayName = "Vendor Ref. / Customer Order")]
public string UsrInvoiceNbr { get; set; }
#endregion
}
}
А затем я пытаюсь создать настраиваемое расширение ARReleaseProcessExtension. Это ниже моего кода настройки:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using PX.Data;
using PX.Objects.AR;
using PX.Objects.GL;
using PX.Objects.CM;
using PX.Objects.CA;
using PX.Objects.CR;
using PX.Objects.CS;
using PX.Objects.CT;
using PX.Objects.PM;
namespace SGLCustomizeProject
{
public class ARRelaseProcessExtension: PXGraphExtension<ARReleaseProcess>
{
public delegate List<ARRegister> ReleaseDocProcDel(JournalEntry je, ref ARRegister doc, PXResult<ARInvoice, CurrencyInfo, Terms, Customer, Account> res, out PMRegister pmDoc);
[PXOverride]
public List<ARRegister>ReleaseDocProc(JournalEntry je, ref ARRegister doc, PXResult<ARInvoice, CurrencyInfo, Terms, Customer, Account> res, out PMRegister pmDoc, ReleaseDocProcDel del)
{
je.RowInserting.AddHandler<GLTran>((sender, e) =>
{
GLTran glTran = e.Row as GLTran;
ARInvoice ari = PXResult<ARInvoice>.Current;
if (ari != null && ari.InvoiceNbr != null)
{
GLTranExtension glTex = PXCache<GLTran>.GetExtension<GLTranExtension>(glTran);
glTex.UsrInvoiceNbr = ari.InvoiceNbr;
}
});
return del(je, ref doc, res, out pmDoc);
}
}
}
Если перейти на экран Release AR Documents (AR501000), и мне нужно только разблокировать одну транзакцию, используя кнопку флажка. Это работает .. Но когда я пытаюсь выпустить более одной транзакции с помощью кнопки флажка, мои вторые транзакции заполняют тот же номер счета на экране транзакции журнала, я опишу это с помощью этого условия:
Если я выпущу две транзакции
- ссылочный номер = 000012 и номер счета (в поле Заказ клиента) = inv1254
- ссылочный номер = 000013 и номер счета (в поле Заказ клиента) = inv1255
Затем я отпускаю эти две транзакции, и в журнале транзакций отображается результат, подобный следующему:
- ссылочный номер = 000012 и номер счета (в поле Заказ клиента) = inv1254
- ссылочный номер = 000013 и номер счета (в поле Заказ клиента) = inv1254
Я не знаю, почему во второй транзакции отображается то же значение номера счета-фактуры на экране транзакции журнала.