Files
RasadDam_Backend/apps/product/services/services.py

51 lines
1.6 KiB
Python

from apps.product.models import Quota, QuotaLivestockAllocation
from apps.warehouse.models import InventoryEntry
import typing
def get_products_in_warehouse(organization_id):
""" get list of products from organization warehouse """
entries = InventoryEntry.objects.select_related(
'distribution__quota__product'
)
product_objects = [
entry.distribution.quota.product for entry in entries
]
return list(set(product_objects))
def quota_live_stock_allocation_info(quota: Quota) -> typing.Any:
""" information of quota live stock allocations """
allocations = quota.livestock_allocations.filter(quota=quota)
if allocations:
allocations_list = [{
"name": alloc.livestock_type.name,
"quantity": alloc.quantity_kg,
"type": alloc.livestock_type.weight_type
} for alloc in allocations]
return allocations_list
def quota_incentive_plans_info(quota: Quota) -> typing.Any:
""" information of quota incentive plans """
incentive_plans = quota.incentive_assignments.all()
if incentive_plans:
incentive_plans_list = [{
'name': plan.incentive_plan.name,
'heavy_value': plan.heavy_value,
'light_value': plan.light_value,
'livestock_type': plan.livestock_type.name if plan.livestock_type else "",
'livestock_weight_type': plan.livestock_type.weight_type if plan.livestock_type else "",
'quantity_kg': plan.quantity_kg
} for plan in incentive_plans]
return incentive_plans_list