feat: упростить создание заказов и рефакторинг единиц измерения
- Добавить inline-редактирование цен в списке товаров - Оптимизировать карточки товаров в POS-терминале - Рефакторинг моделей единиц измерения - Миграция unit -> base_unit в SalesUnit - Улучшить UI форм создания/редактирования товаров Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -16,14 +16,6 @@ class Product(BaseProductEntity):
|
||||
Базовый товар (цветок, упаковка, аксессуар).
|
||||
Наследует общие поля из BaseProductEntity.
|
||||
"""
|
||||
UNIT_CHOICES = [
|
||||
('шт', 'Штука'),
|
||||
('м', 'Метр'),
|
||||
('г', 'Грамм'),
|
||||
('л', 'Литр'),
|
||||
('кг', 'Килограмм'),
|
||||
]
|
||||
|
||||
# Специфичные поля Product
|
||||
variant_suffix = models.CharField(
|
||||
max_length=20,
|
||||
@@ -53,23 +45,13 @@ class Product(BaseProductEntity):
|
||||
verbose_name="Группы вариантов"
|
||||
)
|
||||
|
||||
unit = models.CharField(
|
||||
max_length=10,
|
||||
choices=UNIT_CHOICES,
|
||||
default='шт',
|
||||
verbose_name="Единица измерения (deprecated)"
|
||||
)
|
||||
|
||||
# Новое поле: ссылка на справочник единиц измерения
|
||||
# Базовая единица измерения (единица закупки/хранения)
|
||||
base_unit = models.ForeignKey(
|
||||
'UnitOfMeasure',
|
||||
on_delete=models.PROTECT,
|
||||
null=True,
|
||||
blank=True,
|
||||
related_name='products',
|
||||
verbose_name="Базовая единица",
|
||||
help_text="Единица хранения и закупки (банч, кг, шт). "
|
||||
"Если указана, используется вместо поля 'unit'."
|
||||
help_text="Единица хранения и закупки (банч, кг, шт). Товар принимается и хранится в этих единицах."
|
||||
)
|
||||
|
||||
# ЦЕНООБРАЗОВАНИЕ - переименованные поля
|
||||
@@ -183,11 +165,9 @@ class Product(BaseProductEntity):
|
||||
def unit_display(self):
|
||||
"""
|
||||
Отображаемое название единицы измерения.
|
||||
Приоритет: base_unit.code > unit
|
||||
Возвращает код базовой единицы.
|
||||
"""
|
||||
if self.base_unit:
|
||||
return self.base_unit.code
|
||||
return self.unit
|
||||
return self.base_unit.code if self.base_unit else 'шт'
|
||||
|
||||
@property
|
||||
def has_sales_units(self):
|
||||
|
||||
Reference in New Issue
Block a user