Добавлено разделение типов поступлений на склад

- Добавлено поле receipt_type в модель IncomingBatch с типами: supplier, inventory, adjustment
- Исправлен баг в InventoryProcessor: теперь корректно создается IncomingBatch при инвентаризации
- Создан IncomingAdjustmentCreateView для оприходования без инвентаризации
- Обновлены формы, шаблоны и админка для поддержки разных типов поступлений
- Добавлена навигация и URL для оприходования
- Тип поступления отображается в списках приходов и партий
This commit is contained in:
2025-12-20 23:47:13 +03:00
parent f1798291e0
commit 78dc9e9801
12 changed files with 238 additions and 20 deletions

View File

@@ -94,13 +94,13 @@ class StockBatchAdmin(admin.ModelAdmin):
# ===== INCOMING BATCH =====
@admin.register(IncomingBatch)
class IncomingBatchAdmin(admin.ModelAdmin):
list_display = ('document_number', 'warehouse', 'supplier_name', 'items_count', 'created_at')
list_filter = ('warehouse', 'created_at')
list_display = ('document_number', 'warehouse', 'receipt_type_display', 'supplier_name', 'items_count', 'created_at')
list_filter = ('warehouse', 'receipt_type', 'created_at')
search_fields = ('document_number', 'supplier_name')
date_hierarchy = 'created_at'
fieldsets = (
('Партия поступления', {
'fields': ('document_number', 'warehouse', 'supplier_name', 'notes')
'fields': ('document_number', 'warehouse', 'receipt_type', 'supplier_name', 'notes')
}),
('Даты', {
'fields': ('created_at', 'updated_at'),
@@ -113,6 +113,20 @@ class IncomingBatchAdmin(admin.ModelAdmin):
return obj.items.count()
items_count.short_description = 'Товаров'
def receipt_type_display(self, obj):
colors = {
'supplier': '#0d6efd', # primary (синий)
'inventory': '#0dcaf0', # info (голубой)
'adjustment': '#198754', # success (зеленый)
}
color = colors.get(obj.receipt_type, '#6c757d')
return format_html(
'<span style="color: {}; font-weight: bold;">{}</span>',
color,
obj.get_receipt_type_display()
)
receipt_type_display.short_description = 'Тип поступления'
# ===== INCOMING =====
@admin.register(Incoming)