48 lines
1.3 KiB
Python
48 lines
1.3 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
|
|
} for plan in incentive_plans]
|
|
|
|
return incentive_plans_list
|