Я пишу переопределение для CalculateSalesPriceInt () (функция, которая рассчитывает цену продажи для элемента). Вот код, о котором идет речь
[PXOverride]
public virtual decimal? CalculateSalesPriceInt(PXCache sender, string custPriceClass, int? customerID, int? inventoryID, int? siteID, CurrencyInfo currencyinfo, decimal? quantity, string UOM, DateTime date, bool alwaysFromBaseCurrency,
Func<PXCache, string, int?, int?, int?, CurrencyInfo, decimal?, string, DateTime, bool, decimal?> del)
{
Customer cust =
PXSelect<Customer, Where<Customer.bAccountID, Equal<Required<Customer.bAccountID>>>>.Select(
Base, customerID);
InventoryItem item =
PXSelect<InventoryItem,
Where<InventoryItem.inventoryID, Equal<Required<InventoryItem.inventoryID>>>>
.Select(Base, inventoryID);
var itemExt = item.GetExtension<Arctc001InventoryItem>();
var custExt = cust.GetExtension<Arctc001Customer>();
Проблема связана с InventoryItem, и клиент выбирает.Процесс такой:
- Создать новый заказ клиента для клиента
- Вставить элемент A в SOLines
- Решить, что мне не нравится Descr (или любое другое поле)для элемента A и нажмите на гиперссылку, чтобы открыть экземпляр страницы StockItemMaint
- Редактировать поле Descr, чтобы оно изменилось
- Нажмите Сохранить и закройте страницу StockItemMaint
- Удалите указанный InventoryItem из SOLines
- Повторно добавьте тот же InventoryItem обратно в
- Вычисление SalesPriceInt отключается при добавлении элемента обратно в
- В режиме отладки посмотрите нарезультаты PXSelect и несмотря на то, что я сохранил свои изменения в окне, старые значения все еще появляются.
Я пытался использовать PXSelect или PXSelectReadonly, и независимо от того, какие старые значения были доизмененная запись инвентаризации все еще возвращается в результате
Как я могу работать с кешем, чтобы получить эти постоянные значения?
Спасибо