first push

This commit is contained in:
2026-01-18 11:45:53 +03:30
commit 6bcd71d9ec
702 changed files with 272997 additions and 0 deletions

View File

@@ -0,0 +1,45 @@
from django.db.models import Sum, Q
from LiveStock.models import LiveStockAllocations
def jahad_warehousing(product):
allocations = LiveStockAllocations.objects.filter(jahad__isnull=False,product=product, trash=False)
# allocations = LiveStockAllocations.objects.filter(jahad=product.jahad, trash=False)
input_allocations = allocations.filter(union__isnull=True, cooperative__isnull=True)
output_allocations = allocations.filter(Q(union__isnull=False) | Q(cooperative__isnull=False))
input_weight = input_allocations.aggregate(total=Sum('weight'))[
'total'] or 0
output_weight = output_allocations.aggregate(total=Sum('weight'))[
'total'] or 0
product.total_weight = input_weight
product.total_receipt_weight = input_weight
product.total_allocated_weight = output_weight
product.save()
def union_warehousing(product):
allocations = LiveStockAllocations.objects.filter(union=product.union,product__parent_product__name=product.parent_product.name, trash=False)
input_allocations = allocations.filter(jahad__isnull=False)
output_allocations = allocations.filter(cooperative__isnull=False)
input_weight = input_allocations.aggregate(total=Sum('weight'))[
'total'] or 0
output_weight = output_allocations.aggregate(total=Sum('weight'))[
'total'] or 0
product.total_weight = input_weight
product.total_receipt_weight = input_weight
product.total_allocated_weight = output_weight
product.save()
def cooperative_warehousing(product):
input_allocations = LiveStockAllocations.objects.filter(cooperative=product.cooperative,product__parent_product__name=product.parent_product.name, trash=False).values_list('id',flat=True)
total_receipt_weight = input_allocations.filter(charge=False).aggregate(total=Sum('weight'))[
'total'] or 0
real_input_weight = input_allocations.filter(charge=True).aggregate(total=Sum('weight'))[
'total'] or 0
product.total_receipt_weight = total_receipt_weight
product.total_weight = real_input_weight
product.save()