У клиента возникают проблемы при вводе дебетовых и кредитовых корректировок в дебетовые и кредитовые корректировки, поскольку они более знакомы с терминами дебетовые и кредитовые авизо. Из-за того, что они путают их, они часто вводят корректировку по дебету, когда они хотят ввести кредитную корректировку. Как мы можем изменить внешний вид Дебетовых и Кредитных корректировок, чтобы они отображались как Кредитные и Дебетовые авизо?
Мы проследили источник, из которого APInvoice получает значения DocType, в файл PX.Objects \ AP \ Descriptor \ Messages.cs. Однако мы не уверены, как получить к нему доступ через проект настройки.
using System;
using PX.Common;
namespace PX.Objects.AP
{
[PXLocalizable(Messages.Prefix)]
public static class Messages
{
// Add your messages here as follows (see line below):
// public const string YourMessage = "Your message here.";
#region Validation and Processing Messages
#region Translatable Strings used in the code
#region Graph Names
#region DAC Names
#region Document Type
public const string Invoice = "Bill";
public const string CreditAdj = "Credit Adj.";
public const string DebitAdj = "Debit Adj.";
public const string Check = "Check";
public const string Prepayment = "Prepayment";
public const string Refund = "Vendor Refund";
Мы хотим, чтобы CreditAdj был равен "Дебетовое авизо", а DebitAdj - "Кредитового авизо". Пожалуйста, дайте нам знать, если это возможно, и если есть какие-либо известные проблемы с попыткой изменить эти значения или если это не очень хорошая практика.
Редактировать: Теперь, когда мне удалось внедрить изменения меток благодаря ответу Самвела, я попытался сделать что-то похожее для APPayment. Возникла проблема, при которой при загрузке экрана появляется ошибка:
Ошибка: длина массива значений не равна длине массива меток.
Имя параметра: позволено метки
Мой новый код выглядит следующим образом:
APPaymentEntry:
public class APPaymentEntry_Extension : PXGraphExtension<APPaymentEntry>
{
#region Event Handlers
[PXDBString(3, IsKey = true, IsFixed = true)]
[PXDefault]
[PXUIField(DisplayName = "Type", Visibility =
PXUIVisibility.SelectorVisible, Enabled = true, TabOrder = 0)]
[PXFieldDescription]
[CustomAPPaymentTypeList]
protected virtual void APPayment_DocType_CacheAttached(PXCache sender)
{
}
#endregion
}
CustomAPPaymentType:
public class CustomAPPaymentType : APPaymentType
{
public new static readonly string[] NewLabels = new string[]
{
"Check",
"Credit Memo",
"Prepayment",
"Vendor Refund",
"Voided Refund",
"Voided Check"
};
public new class ListAttribute : PXStringListAttribute
{
public ListAttribute() : base(APPaymentType.Values, CustomAPPaymentType.NewLabels )
{
}
}
}
CustomAPPaymentTypeListAttribute
public class CustomAPPaymentTypeListAttribute : CustomAPPaymentType.ListAttribute
{
public override void CacheAttached(PXCache sender)
{
this._AllowedValues = new string[]
{
"CHK",
"ADR",
"PPM",
"REF",
"VRF",
"VCK"
};
this._AllowedLabels = new string[]
{
"Check",
"Credit Memo",
"Prepayment",
"Vendor Refund",
"Voided Refund",
"Voided Check"
};
this._NeutralAllowedLabels = new string[]
{
"Check",
"Credit Memo",
"Prepayment",
"Vendor Refund",
"Voided Refund",
"Voided Check"
};
base.CacheAttached(sender);
}
}
Я не уверен, как поступить, похоже, у меня слишком много «Ярлыков» или «Ценностей», но неясно, по какому. Я пытался быть максимально точным по отношению к текущим настройкам для текущих типов оплаты APP, какой-нибудь совет, где я ошибся?