Acumatica: обновление статуса поставщика при изменении TaxRegistrationID - PullRequest
0 голосов
/ 06 июля 2019

Я новичок в Acumatica и мне нужно сделать что-то очень простое, но я не совсем понимаю синтаксис или как это сделать.

Я хочу обновить статус поставщика на «Удерживать», если TaxRegistrationID изменяется на вкладке «Настройки покупки». Это кажется очень простым, но я просто не делаю правильных шагов. Я начал здесь:

public class VendorMaint_Extension : PXGraphExtension<VendorMaint>
{
#region Event Handlers
    protected void LocationExtAddress_TaxRegistrationID_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e)
     {
      cache.SetValue<Vendor.Status>(e.Row, "Hold");  

      }

#endregion
}

Я думаю, что это упрощает, но не уверен, что это должно быть. Может ли кто-нибудь дать мне небольшое руководство здесь? Я могу пройти долгий путь самостоятельно, если пойму, как это работает.

1 Ответ

1 голос
/ 06 июля 2019

Вы сделали очень хорошо. У вас все еще мало вопросов. 1. В объявлениях о состоянии полей Acumatica для

[Vendor.status.List]

выглядит так:

public class ListAttribute : PXStringListAttribute
  {
    public ListAttribute()
      : base(new string[5]{ "A", "H", "P", "I", "T" }, new string[5]
      {
        "Active",
        "On Hold",
        "Hold Payments",
        "Inactive",
        "One-Time"
      })
    {
    }
  }
}

, как вы можете видеть из декларации статуса для удержания ответственного значения ключа "H".

  1. Поле TaxRegistrationID в объявлении страницы не имеет для CommitChanges значение true. Если вы хотите немедленной реакции, вам нужно установить для CommitChanges значение true в настройке.
  2. Вместо обновления объекта кэша необходимо обновить конкретного поставщика.
  3. На экране продавца используется не класс Vendor, а класс VendorR

Так что более правильная версия кода будет выглядеть так:

     public class VendorMaint_Extension : PXGraphExtension<VendorMaint>
     {
        #region Event Handlers
        protected void LocationExtAddress_TaxRegistrationID_FieldUpdated(PXCache cache, PXFieldUpdatedEventArgs e)
        {
              Base.BAccount.SetValueExt<VendorR.status>(Base.BAccount.Current, "H"); 

        }

        #endregion
     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...