12.02.2003, 16:21 | #1 |
Восставший
|
Резервирование партионного товара с FIFO по сроку хранения: делал ли кто-нибудь?
Здравствуйте все!
Есть вопрос. Внедряем партионный учет. Хотелось бы иметь отпуск (резервирование) товара с учетом даты истечения срока хранения (поле ExpiryDate таблицы InventBatch). То есть: товар с наиболее ранней этой датой должен резервироваться в первую очередь. В документации сказано, что сие поле, равно как и ProdDate, являются исключительно информационными и на логику не влияют. Крыжик "резервирование по дате" в настройках групп складских моделей рассматривает дату складской проводки. Сталкивался ли кто-либо с подобным? Если да - как победили? Если с помощью дописывания - насколько оно объемно? Если еще в придачу посоветуете классы и методы, куда смотреть - буду совсем благодарен ПыСы. Аксапта - международная, версия 2.5 SP2. Если это, конечно, имеет значение... |
|
12.02.2003, 17:58 | #2 |
SAP
|
Вопрос
Резервирование обязательно должно выполняться автоматически, или есть вариант, когда пользователь ручками выбирает партию под резервирование?
|
|
12.02.2003, 18:03 | #3 |
Восставший
|
В том-то и дело что автоматически
Партий товара - куча, и сэйлзу некогда разбираться, какая из них с каким сроком хранения. Сама дата конечно же выводится на экран в форме резервирования - но жизнь сэйлзам это не облегчает. |
|
12.02.2003, 18:06 | #4 |
SAP
|
Цитата:
Изначально опубликовано Falcon
Партий товара - куча, и сэйлзу некогда разбираться, какая из них с каким сроком хранения. Сама дата конечно же выводится на экран в форме резервирования - но жизнь сэйлзам это не облегчает. |
|
12.02.2003, 18:19 | #5 |
Восставший
|
Павел, "в-нолевых" - спасибо что отвечаешь
Во-первых, "срок службы" выводится в форме резервирования только как информационное поле. То-есть сортировать по нему низзя. Можно конечно создать аналогичное допполе в InventTrans-е, и копировать туда значения из InventBatch-а. Или заморочиться написанием собственного сортировщика... Но даже это не решит полностью проблему. Потому как сэйлз не хочет тратить время не только на разбирательство со сроками, но и вообще на проставление количеств. Ибо даже простая операция забивания цифирек отнимает его драгоценное время...Как обычно, всем хочется, чтобы "усе делалось аутоматом". Неужто это совершенно невыполнимо и никто раньше такого не делал в Аксапте? Сэйлзов нагнуть я конечно могу... в крайнем случае... тока может все-таки есть "красивое" решение? |
|
12.02.2003, 18:49 | #6 |
SAP
|
Цитата:
Изначально опубликовано Falcon
Павел, "в-нолевых" - спасибо что отвечаешь Цитата:
Изначально опубликовано Falcon
Во-первых, "срок службы" выводится в форме резервирования только как информационное поле. То-есть сортировать по нему низзя. Можно конечно создать аналогичное допполе в InventTrans-е, и копировать туда значения из InventBatch-а. Цитата:
Изначально опубликовано Falcon
Или заморочиться написанием собственного сортировщика... Цитата:
Изначально опубликовано Falcon
Но даже это не решит полностью проблему. Потому как сэйлз не хочет тратить время не только на разбирательство со сроками, но и вообще на проставление количеств. Ибо даже простая операция забивания цифирек отнимает его драгоценное время...Как обычно, всем хочется, чтобы "усе делалось аутоматом". Цитата:
Изначально опубликовано Falcon
Неужто это совершенно невыполнимо и никто раньше такого не делал в Аксапте? Цитата:
Изначально опубликовано Falcon
Сэйлзов нагнуть я конечно могу... в крайнем случае... тока может все-таки есть "красивое" решение? |
|
12.02.2003, 19:03 | #7 |
Восставший
|
Привет, Павел,
Может быть, ты в чем-то и прав... Может быть, стОит больше уделить внимание "организационным моментам"... Хотя проект еще не "под угрозой"(тьфу три раза) и меня слушают и соглашаются с моими доводами. Насчет "кто в случае ошибок будет разгребать данные" - это в точку, тут на 100% согласен. Слово в слово то же самое говорил. Задумались... Робко спросили: неужто это никак не можно автоматически? Я твердо рубанул "никак" - и побежал узнавать в форум (а также рыться в доках), как оно на самом деле |
|
12.02.2003, 19:12 | #8 |
SAP
|
Цитата:
Изначально опубликовано Falcon
Хотя проект еще не "под угрозой"(тьфу три раза) и меня слушают и соглашаются с моими доводами. Наверняка, ты это понимаешь. |
|
12.02.2003, 19:44 | #9 |
Восставший
|
Павел, спасибо за напоминание. Это очень важно. Я это понимаю. Хочу просто придерживаться "золотой середины", т.е. не впадать в крайности: "только оргметоды", или "только доработки".
Кстати, уже начал добавлять поля в InventSum. Вроде бы пока не так страшно, как казалось |
|
15.02.2003, 00:47 | #10 |
Восставший
|
И все-таки я это дело победил...
Кажется...
Кому интересно - вот чего я сделал: 1. Добавил в таблицу InventSum поле Expiry date. Сделал обновление этого поля при каждом запуске формы InventOnHandReserve. 2. Вывел добавленное поле в грид вышеуказанной формы. 3. В метод executequery датасорса InventSum указанной формы добавил пару строчек: PHP код:
Знаю, что красивее было то же самое сделать в классе InventDimCtrl_Frm_OnHand - но уж очень не хотелось в классы лезть. 4. Теперь осталось самое сложное - поменять порядок автоматического резерва. Для этого в классе InventSumSearch_Reserve (все-таки пришлось...) в методе initQuery заменил LastUpdDateExpected на ExpDate - в нескольких строчках. 4.1. Еще в InventUpd_Reservation, метод updateReserveLess во всех трех селектах добавил order by statusIssue, Expdate ,inventDimId. Только вот не знаю зачем, так на всякий случай Вроде бы все... Проверял и в SalesOrders, и в Inventory - вроде бы резервирует как надо... Правда, попутно вылезла любопытная деталь. В "толстом клиенте" все работает ОК, а в тонком последние изменения (п.4) система как бы "не видит". Я естественно первым делом почистил кэш - не помогло. Перекомпилил все - без мазы. Подумал, может я не тот АОТ правил - нет, все правильно, в тонком клиенте изменения видны в АОТ, только как бы "не работают"... Вот сижу, обхватив тыкву руками, и думаю - че ж такое может быть-то ? ))) |
|