Вопрос больше по логике, а не по коду.
Есть в магазине категория изделий, в ней изделия со своей цена_закупки
и наценка
. Есть поле цена_розничная
вычисляемое при save, в котором хранится сумма закупки и наценки (два поля нужны, что бы менеджер всегда видел наценку и мог ориентироваться по скидкам для клиентов).
Все бы хорошо, но есть еще наценка_на_категорию
изделий (иногда нужно на время поменять цену на всю категорию). Для отображения цены клиенту используется шаблонный фильтр суммирующий цена_розничная
и наценка_на_категорию
При отображении категории изделия сортируются по `цена_розничная", наценка категории игнорируется т.к она одна на все изделия и логика сортировки не меняется, все работает правильно.
Возникла задача реализовать фильтр по цене с помощью слайдера. Но есть проблема, фильтровать нужно по цене с учетом наценки категории.
Я вижу 3 реализации.
- Запили для изделий вычисляемое поле, которое будет брать все 3 цены, суммировать и с этим работать, все просто и понятно.
- Переопределить save для категории, достаю все связанные с категорией изделия и записываю в каждое изделие сумму 3х цен в
цена_розничная
. (это самый простой в реализации способ, да и менять цену на категорию нужно не чаще раза в месяц)
- в коде фильтра вычитать из диапазон цен наценку категории (самое некрасивое решение, есть шанс запутаться в будущем и невозможно покрыть тестами).