Реализован сервис управления документами списания
- Создан WriteOffDocumentService с методами работы с документами списания - create_document() - создание документа с автогенерацией номера (WO-XXXXXX) - add_item() - добавление позиции с автоматическим созданием резерва - update_item() - обновление позиции с пересчетом резерва - remove_item() - удаление позиции с освобождением резерва - confirm_document() - проведение документа (создание WriteOff записей по FIFO) - cancel_document() - отмена с освобождением всех резервов - Добавлена валидация доступного количества товара при создании/обновлении позиций - Добавлена функция generate_writeoff_document_number() для генерации номеров документов
This commit is contained in:
@@ -5,6 +5,20 @@
|
||||
from inventory.models import DocumentCounter
|
||||
|
||||
|
||||
def generate_writeoff_document_number():
|
||||
"""
|
||||
Генерирует уникальный номер документа списания.
|
||||
|
||||
Формат: WO-XXXXXX (6 цифр)
|
||||
Thread-safe через DocumentCounter.
|
||||
|
||||
Returns:
|
||||
str: Сгенерированный номер документа (например, WO-000001)
|
||||
"""
|
||||
next_number = DocumentCounter.get_next_value('writeoff')
|
||||
return f"WO-{next_number:06d}"
|
||||
|
||||
|
||||
def generate_transfer_document_number():
|
||||
"""
|
||||
Генерирует уникальный номер документа перемещения.
|
||||
|
||||
Reference in New Issue
Block a user