Улучшения инвентаризации: автоматическое проведение документов, оптимизация запросов и улучшения UI
- Автоматическое проведение документов списания и оприходования после завершения инвентаризации - Оптимизация SQL-запросов: устранение N+1, bulk-операции для Stock, агрегация для StockBatch и Reservation - Изменение формулы расчета разницы: (quantity_fact + quantity_reserved) - quantity_available - Переименование поля 'По факту' в 'Подсчитано (факт, свободные)' - Добавлены столбцы 'В резервах' и 'Всего на складе' в таблицу инвентаризации - Перемещение столбца 'В системе (свободно)' после 'В резервах' с визуальным выделением - Центральное выравнивание значений в столбцах таблицы - Автоматическое выделение текста при фокусе на поле ввода количества - Исправление форматирования разницы (убраны лишние нули) - Изменение статуса 'Не обработана' на 'Не проведено' - Добавление номера документа для инвентаризаций (INV-XXXXXX) - Отображение всех типов списаний в debug-странице (WriteOff, WriteOffDocument, WriteOffDocumentItem) - Улучшение отображения документов в детальном просмотре инвентаризации с возможностью перехода к ним
This commit is contained in:
@@ -146,3 +146,17 @@ def generate_incoming_document_number():
|
||||
# Используем стандартный метод, как и другие функции
|
||||
next_number = DocumentCounter.get_next_value('incoming')
|
||||
return f"IN-{next_number:06d}"
|
||||
|
||||
|
||||
def generate_inventory_document_number():
|
||||
"""
|
||||
Генерирует уникальный номер документа инвентаризации.
|
||||
|
||||
Формат: INV-XXXXXX (6 цифр)
|
||||
Thread-safe через DocumentCounter.
|
||||
|
||||
Returns:
|
||||
str: Сгенерированный номер документа (например, INV-000001)
|
||||
"""
|
||||
next_number = DocumentCounter.get_next_value('inventory')
|
||||
return f"INV-{next_number:06d}"
|
||||
Reference in New Issue
Block a user