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 } 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