incentive plan structure in quota serializer - V3

This commit is contained in:
2025-09-02 15:54:42 +03:30
parent 136e650e50
commit e6192928ec

View File

@@ -20,17 +20,28 @@ class QuotaSerializer(serializers.ModelSerializer):
).data ).data
representation['product'] = {"product": instance.product.name, "product_id": instance.product.id} representation['product'] = {"product": instance.product.name, "product_id": instance.product.id}
plans = [{ # quota incentive plan data
"id": item.id, incentive_plan_map = {}
"quota": item.quota.id, for assign in instance.incentive_assignments.all():
"incentive_plan": item.incentive_plan.id, plan_id = assign.incentive_plan.id
"livestock_type": item.livestock_type.id, if plan_id not in incentive_plan_map:
"quantity_kg": item.quantity_kg incentive_plan_map[plan_id] = {
} for item in instance.incentive_assignments.all()] "id": assign.id,
"name": assign.incentive_plan.name,
"incentive_plan": plan_id,
"live_stocks": []
}
representation['incentive_plan'] = plans if assign.livestock_type:
incentive_plan_map[plan_id]['live_stocks'].append({
"id": assign.livestock_type.id,
"name": assign.livestock_type.name,
"quantity": assign.quantity_kg
})
representation['attribute_values'] = product_serializers.AttributeValueSerializer( # noqa representation['incentive_plan'] = list(incentive_plan_map.values())
representation['attribute_values'] = product_serializers.AttributeValueSerializer(
instance.attribute_values.all(), instance.attribute_values.all(),
many=True many=True
).data ).data