Вес хранится на SO линии в базе данных и автоматически вычисляемый по выбору пункта инвентаризации. Acumatica автоматически обновит значение по умолчанию при обновлении InvendoryItemID или UOM.
Не уверен, что это лучший подход, но я могу предложить 2 способа:
1) Если вам это нужно с неавтоматизированном образом, вы можете использовать экспортные сценарии для обновления единицы измерения (и чем изменить его обратно) для всех ордеров Open/Hold.
2) Еще один способ настройки - создать действие, которое будет обновлять wheigt. Вы можете щелкнуть это действие автоматически с использованием тех же сценариев импорта или массовых действий GI.
public class SOOrderEntry_Extension:PXGraphExtension<SOOrderEntry>
{
public PXAction<SOOrder> recalculateWeight;
[PXUIField(DisplayName = "Recalculate Weight", MapEnableRights = PXCacheRights.Update, MapViewRights = PXCacheRights.Update, Visible = false)]
[PXButton(SpecialType = PXSpecialButtonType.Process)]
public virtual void RecalculateWeight()
{
foreach(SOLine line in Base.Transactions.Select())
{
Base.Transactions.Cache.SetDefaultExt<SOLine.unitWeigth>(line);
Base.Transactions.Update(line);
}
}
}
Пожалуйста, смотрите [Как Ask] (http://stackoverflow.com/questions/how-to-ask) и [Идеальный вопрос] (http://codeblog.jonskeet.uk/2010/08/29/письма-заместитель совершенного вопрос /). –
Насколько я знаю, это правильное поведение. Если вы измените параметры товарной позиции, уже созданные заказы на продажу не должны быть изменены. –