ShowcaseItem: защита от двойной продажи витринных букетов
Новая архитектура: - ShowcaseItem модель - физический экземпляр букета на витрине - OneToOneField(sold_order_item) - БД-уровневая защита от двойной продажи - Поддержка создания нескольких экземпляров одного букета - Возможность продавать N из M доступных (например 2 из 5) Изменения: - inventory/models.py: добавлена модель ShowcaseItem с методами lock/unlock/mark_sold - inventory/services/showcase_manager.py: переработан для работы с ShowcaseItem - pos/views.py: API поддерживает quantity и showcase_item_ids - pos/templates/pos/terminal.html: поле "Сколько букетов создать" - pos/static/pos/js/terminal.js: выбор количества, передача showcase_item_ids Миграции: - 0007: создание модели ShowcaseItem - 0008: data migration существующих букетов - 0009: очистка ShowcaseItem для уже проданных букетов 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
@@ -169,7 +169,14 @@
|
||||
<option value="">Загрузка...</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
|
||||
<!-- Количество букетов -->
|
||||
<div class="mb-3">
|
||||
<label for="showcaseKitQuantity" class="form-label">Сколько букетов создать</label>
|
||||
<input type="number" class="form-control" id="showcaseKitQuantity" value="1" min="1" max="99">
|
||||
<small class="text-muted">Будет создано указанное количество одинаковых букетов на витрину</small>
|
||||
</div>
|
||||
|
||||
<!-- Описание -->
|
||||
<div class="mb-3">
|
||||
<label for="tempKitDescription" class="form-label">Описание (опционально)</label>
|
||||
|
||||
Reference in New Issue
Block a user