You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

25 lines
1.2 KiB

from django.db.models.signals import post_save
from django.dispatch import receiver
from goods_reception.models import GoodsReception
from warehouse.models import StockOperation, Warehouse, StorageLocation
@receiver(post_save, sender=GoodsReception)
def handle_goods_reception(sender, instance, created, **kwargs):
if created and instance.is_accepted:
# операция прихода
operation = StockOperation.objects.create(
product=instance.product,
warehouse=Warehouse.objects.get(name="Основной склад"),
storage_location=StorageLocation.objects.filter(warehouse__name="Основной склад").first(),
operation_type='Incoming',
quantity=instance.quantity,
expiration_date=None # Укажите срок годности, если известно
)
# логика распределения по местам хранения
if instance.product.storage_temperature == "+4C":
cold_storage = StorageLocation.objects.filter(warehouse=operation.warehouse, temperature_control=True).first()
if cold_storage:
operation.storage_location = cold_storage
operation.save()