Кажется...
Кому интересно - вот чего я сделал:
1. Добавил в таблицу InventSum поле Expiry date. Сделал обновление этого поля при каждом запуске формы InventOnHandReserve.
2. Вывел добавленное поле в грид вышеуказанной формы.
3. В метод executequery датасорса InventSum указанной формы добавил пару строчек:
PHP код:
QueryBuildDataSource qBSSum;
...
qBSSum = inventSum_DS.query().dataSourceName(inventSum_DS.name());
qBSSum.addSortField(fieldnum(InventSum,ExpDate));
Это для того,чтобы сортировка в форме шла по дате.
Знаю, что красивее было то же самое сделать в классе InventDimCtrl_Frm_OnHand - но уж очень не хотелось в классы лезть.
4. Теперь осталось самое сложное - поменять порядок автоматического резерва. Для этого в классе InventSumSearch_Reserve (все-таки пришлось...) в методе initQuery заменил LastUpdDateExpected на ExpDate - в нескольких строчках.
4.1. Еще в InventUpd_Reservation, метод updateReserveLess во всех трех селектах добавил
order by statusIssue,
Expdate ,inventDimId. Только вот не знаю зачем, так на всякий случай
Вроде бы все...
Проверял и в SalesOrders, и в Inventory - вроде бы резервирует как надо...
Правда, попутно вылезла любопытная деталь. В "толстом клиенте" все работает ОК, а в тонком последние изменения (п.4) система как бы "не видит". Я естественно первым делом почистил кэш - не помогло. Перекомпилил все - без мазы. Подумал, может я не тот АОТ правил - нет, все правильно, в тонком клиенте изменения видны в АОТ, только как бы "не работают"...
Вот сижу, обхватив тыкву руками, и думаю - че ж такое может быть-то ?
)))