12.08.2009, 17:43 | #1 |
Участник
|
Изменение авторезервирования.
Поставлена задача изменить сортировку партий при автоматическом резервировании. Модель FIFO. Очередность должна задаваться полем InventBatch.ExpDate. Другими словами, сначала должны резервироваться партии с меньшей ExpDate...
В методе InventUpd_Reservation.updateReserveMore() формируется Query (основные датасорсы QuerySum и InventDim). Попытка заджойнить InventBatch ничего не дает, ибо поле InventBatchId указано как группируемое в Query. Как будет правильнее решить такую задачу? Тащить поле ExpDate на InventSum ну очень уж не хочется.... |
|
12.08.2009, 18:24 | #2 |
Участник
|
Поиск до создания темы юзал, но умудрился пропустить аналогичную тему:
Резервирование партионного товара с FIFO по сроку хранения: делал ли кто-нибудь? Похоже таки ExpDate придется дублировать в проводках... |
|
12.08.2009, 19:15 | #3 |
Member
|
Я бы подумал над тем, чтобы образно говоря отказаться от авторезервирования и написать специальзированную функцию резервирования, которая к InventSum прикрутит InventBatch, отсортирует по возрастанию срока годности, переберет все и поставит резерв на конкретную партию (для установки резерва есть специализированное API).
Как не самый лучший, но все же вариант — можно влезть во вход авторезервирования и по параметру какому-нибудь уйти от авторезервирования стандартного и перенаправить работу на такой механизм. Идея — поменьше корежить фундаментальный функционал, реализовывать все как будто бы автоматизацию действий пользователей. Описанный выше алгоритм аналогичен тому, как если бы я открыл запрос по остаткам для номенклатуры с детализацией по партиям, отсортировал по возрастанию срока годности (предположим, в Эксельке), поставил резерв, вручную указав партию.
__________________
С уважением, glibs® |
|
12.08.2009, 22:46 | #4 |
NavAx
|
А нельзя ExpDate закодировать в коде партии (в первых символах)? (это может быть как дата в текстовом виде, или разница в днях с какой нибудь датой переведенная в текст)
|
|