Добавлено разделение типов поступлений на склад
- Добавлено поле receipt_type в модель IncomingBatch с типами: supplier, inventory, adjustment - Исправлен баг в InventoryProcessor: теперь корректно создается IncomingBatch при инвентаризации - Создан IncomingAdjustmentCreateView для оприходования без инвентаризации - Обновлены формы, шаблоны и админка для поддержки разных типов поступлений - Добавлена навигация и URL для оприходования - Тип поступления отображается в списках приходов и партий
This commit is contained in:
@@ -11,10 +11,11 @@ from django.db import transaction
|
||||
from django.utils import timezone
|
||||
|
||||
from inventory.models import (
|
||||
Inventory, InventoryLine, WriteOff, Incoming,
|
||||
Inventory, InventoryLine, WriteOff, Incoming, IncomingBatch,
|
||||
StockBatch, Stock
|
||||
)
|
||||
from inventory.services.batch_manager import StockBatchManager
|
||||
from inventory.utils import generate_incoming_document_number
|
||||
|
||||
|
||||
class InventoryProcessor:
|
||||
@@ -142,21 +143,24 @@ class InventoryProcessor:
|
||||
inventory.warehouse
|
||||
)
|
||||
|
||||
# Создаем новую партию
|
||||
batch = StockBatchManager.create_batch(
|
||||
line.product,
|
||||
inventory.warehouse,
|
||||
quantity_surplus,
|
||||
cost_price
|
||||
# Генерируем номер документа для поступления
|
||||
document_number = generate_incoming_document_number()
|
||||
|
||||
# Создаем IncomingBatch с типом 'inventory'
|
||||
incoming_batch = IncomingBatch.objects.create(
|
||||
warehouse=inventory.warehouse,
|
||||
document_number=document_number,
|
||||
receipt_type='inventory',
|
||||
notes=f'Оприходование при инвентаризации {inventory.id}, строка {line.id}'
|
||||
)
|
||||
|
||||
# Создаем документ Incoming
|
||||
# Сигнал create_stock_batch_on_incoming автоматически создаст StockBatch
|
||||
Incoming.objects.create(
|
||||
batch=incoming_batch,
|
||||
product=line.product,
|
||||
warehouse=inventory.warehouse,
|
||||
quantity=quantity_surplus,
|
||||
cost_price=cost_price,
|
||||
batch=batch,
|
||||
notes=f'Инвентаризация {inventory.id}, строка {line.id}'
|
||||
)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user