учета есть документы поступления товаров (разные типы документов генерируют приход) и документы расхода товаров (тоже разнотипные типа продажи, списания и т.п.). В каждом документе указано кол-во и цена. Расход делается по методу ФИФО, соответственно тек. цена продукта должна браться из того документа поступления, на котором на данный момент находится указатель ФИФО. Пример:
+ поступило 3 шт по цене 5
+ поступило 4 шт по цене 6
- 2 шт по цене 5 (так как по ФИФО расходуем первую закупку, и в конце операции от нее еще осталась 1 шт)
- 2 шт по цене 5 и 6 (1 шт добрали из первой закупки по цене 5 и 1 шт - из второй по цене 6)
и т.д. расход всё время догоняет приход и цена рассчитывается в зависимости от того, товары какой закупки мы расходуем в каждом конкретном расходе.
Сложность задачи несколько возрастает из-за того, что юзер например может удалить любой из документов расхода-прихода, и указатель ФИФО соответственно может сдвинуться вперед или назад.
Цель: быстро уметь сводить по продукту все его приходы/расходы и определять где сейчас находится указатель.
Могли бы вы подсказать или дать направление, типичная ли это задача для КликХауза? Если да, то должен ли я использовать тут какой-то из специализированных движков (AggregatingMerge?) или дефолтный Merge тут лучше? Или может надо иметь 2 таблицы - одна со всеми приходами и другая со всеми расходами - и как-то динамически запросом накладывать все расходы на все приходы.
Спасибо.
КХ очень для этого подходит, вот только сделать партиальный учет на нем... пока не видел реализаций.
Обсуждают сегодня