54 lines
2.3 KiB
Python
54 lines
2.3 KiB
Python
from django.db import transaction
|
|
from django.db.models.signals import post_save
|
|
from django.dispatch import receiver
|
|
|
|
from apps.pos_device.models import Device
|
|
from apps.warehouse.models import product_models
|
|
from .models import Notification
|
|
|
|
|
|
# @receiver(post_save, sender=InventoryEntry)
|
|
# def create_inventory_entry_notification(sender, instance, created, **kwargs):
|
|
# """ Create notification for organization after inventory entry creation """
|
|
#
|
|
# if not created:
|
|
# return
|
|
#
|
|
# def _create_notification():
|
|
# # create notification for organization on pos device
|
|
# devices = Device.objects.filter(assignment__client__organization=instance.organization)
|
|
# for device in devices:
|
|
# Notification.objects.create(
|
|
# device=device,
|
|
# organization=instance.organization,
|
|
# title=f" {instance.distribution.distribution_id} ورودی جدید به انبار از توزیع با کد ", # noqa
|
|
# message=f' مقدار {instance.distribution.weight} کیلوگرم' # noqa
|
|
# f' از توزیع با کد {instance.distribution.distribution_id} به انبار ورود خورده است ', # noqa
|
|
# type='inventory',
|
|
# )
|
|
#
|
|
# transaction.on_commit(_create_notification)
|
|
|
|
|
|
@receiver(post_save, sender=product_models.QuotaDistribution) # noqa
|
|
def create_quota_distribution_notification(sender, instance, created, **kwargs):
|
|
""" Create notification for organization for quota distribution creation """
|
|
|
|
if not created:
|
|
return
|
|
|
|
def _create_notification():
|
|
# create notification for organization on pos device
|
|
devices = Device.objects.filter(assignment__client__organization=instance.assigned_organization)
|
|
for device in devices:
|
|
Notification.objects.create(
|
|
device=device,
|
|
organization=instance.assigned_organization,
|
|
title=f" {instance.quota.quota_id} توزیع جدید به شما از سهمیه با کد ", # noqa
|
|
message=f' مقدار {instance.weight} کیلوگرم' # noqa
|
|
f' از سهمیه با کد {instance.quota.quota_id} به شما توزیع شده است ', # noqa
|
|
type='inventory',
|
|
)
|
|
|
|
transaction.on_commit(_create_notification)
|