L_RESERVE
Краткое описание :
Резервирование во время пересчет резервовОписание :
Пересчет резервовЧто измененно :
Резервирование во время пересчета резервов
Управление сбытом - Операции - Операции с резервами - Пересчет резервов
На настоящий момент судя по журналам изменения БД данный алгоритм работает так
1. обнуляет все резервы в текущих остатках всех расчетных МЦ
2. Бежит по всем резервам и последовательно добавляет к резервам в остатках найденное
это может длиться несколько минут, а в случае пересчета резервов по всем МЦ - около 2-х часов
в это время МЦ по сути свободны от резерва и пользователи умудряются в это время поставить еще дополнительные резервы. в итоге после пересчета получаем неверные свободные остатки
Предлагается для данного расчета сделать режим пост-расчетной модификации остатков (без обнуления)
1. сначала ищем все резервы, сохраняем их во времянку
2. после всех расчетов записываем обновленную информацию в остатки
и лучше бы считать по 1 разрезу, одной МЦ, а не скопом, чтобы сократить до минимума промежуток времени межу началом расчета и записью в остатки по 1 МЦ в 1 разрезе. пусть это будет в 1,5 раза дольше, но надежнее.
Текущим режим хотелось бы оставить, как как сложно предугадать проблемы, которые могут возникнуть если во время 1 го этапа кто то изменит остатки/резервы
Как измененно :
При пересчете резервов по текущей МЦ ставится семафор на изменение остатков. Обнуление и пересчет резерва по ДО производится последовательно.