fix agencie share on pos device - fix validation bug of free product pos
This commit is contained in:
@@ -259,3 +259,15 @@ class QuotaLiveStockAgeLimitationSerializer(serializers.ModelSerializer):
|
||||
instance.save()
|
||||
|
||||
return instance
|
||||
|
||||
|
||||
class QuotaPriceCalculationPriceItemsSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = product_models.QuotaPriceCalculationItems
|
||||
fields = '__all__'
|
||||
|
||||
|
||||
class QuotaFinalPriceTypeSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = product_models.QuotaFinalPriceTypes
|
||||
fields = '__all__'
|
||||
|
||||
@@ -17,6 +17,8 @@ router.register(r'incentive_plan', product_api.IncentivePlanViewSet, basename='i
|
||||
router.register(r'rancher_incentive_plan', product_api.IncentivePlanRancherViewSet, basename='rancher_incentive_plan')
|
||||
router.register(r'stats', product_api.ProductStatsViewSet, basename='stats')
|
||||
router.register(r'quota', quota_api.QuotaViewSet, basename='quota')
|
||||
router.register(r'quota_pricing_items', quota_api.QuotaPriceCalculationItemsViewSet, basename='quota_pricing_items')
|
||||
router.register(r'quota_final_price_type', quota_api.QuotaFinalPriceTypeViewSet, basename='quota_final_price_type')
|
||||
router.register(r'quota_distribution', distribution_apis.QuotaDistributionViewSet, basename='quota_distribution')
|
||||
|
||||
urlpatterns = [
|
||||
|
||||
@@ -128,13 +128,26 @@ class QuotaViewSet(SoftDeleteMixin, viewsets.ModelViewSet, DynamicSearchMixin):
|
||||
)
|
||||
livestock_age_limits.append(age_limit_creation_object)
|
||||
|
||||
# create quota price calculation items for final price types
|
||||
price_calculation_items = []
|
||||
if 'price_calculation_items' in request.data.keys():
|
||||
for price_item in request.data['price_calculation_items']:
|
||||
price_item.update({'quota': quota.id})
|
||||
price_item_creation_object = CustomOperations().custom_create(
|
||||
request=request,
|
||||
view=QuotaPriceCalculationItemsViewSet(),
|
||||
data=price_item
|
||||
)
|
||||
price_calculation_items.append(price_item_creation_object)
|
||||
|
||||
data = {
|
||||
'quota': serializer.data,
|
||||
'incentive_plan': plans_list, # noqa
|
||||
'attribute_values': attributes_value_list,
|
||||
'broker_values': broker_data_list,
|
||||
'live_stock_allocations': allocations_list,
|
||||
'livestock_age_limitations': livestock_age_limits
|
||||
'livestock_age_limitations': livestock_age_limits,
|
||||
'price_calculation_items': price_calculation_items
|
||||
}
|
||||
|
||||
# call save method to generate id & calculate quota final price
|
||||
@@ -241,13 +254,30 @@ class QuotaViewSet(SoftDeleteMixin, viewsets.ModelViewSet, DynamicSearchMixin):
|
||||
)
|
||||
livestock_age_limits.append(age_limit_creation_object)
|
||||
|
||||
# create quota price calculation items for final price types
|
||||
price_calculation_items = []
|
||||
if 'price_calculation_items' in request.data.keys():
|
||||
|
||||
# remove live stock age limit relations
|
||||
quota.pricing_items.all().delete()
|
||||
|
||||
for price_item in request.data['price_calculation_items']:
|
||||
price_item.update({'quota': quota.id})
|
||||
price_item_creation_object = CustomOperations().custom_create(
|
||||
request=request,
|
||||
view=QuotaPriceCalculationItemsViewSet(),
|
||||
data=price_item
|
||||
)
|
||||
price_calculation_items.append(price_item_creation_object)
|
||||
|
||||
data = {
|
||||
'quota': serializer.data,
|
||||
'incentive_plan': plans_list, # noqa
|
||||
'attribute_values': attributes_value_list,
|
||||
'broker_values': broker_data_list,
|
||||
'live_stock_allocations': allocations_list,
|
||||
'livestock_age_limitations': livestock_age_limits
|
||||
'livestock_age_limitations': livestock_age_limits,
|
||||
'price_calculation_items': price_calculation_items
|
||||
}
|
||||
|
||||
# call save method to generate id & calculate quota final price
|
||||
@@ -602,3 +632,13 @@ class QuotaLiveStockAgeLimitation(SoftDeleteMixin, viewsets.ModelViewSet):
|
||||
return Response(status=status.HTTP_200_OK)
|
||||
except APIException as e:
|
||||
return Response(e, status=status.HTTP_204_NO_CONTENT)
|
||||
|
||||
|
||||
class QuotaPriceCalculationItemsViewSet(viewsets.ModelViewSet):
|
||||
queryset = product_models.QuotaPriceCalculationItems.objects.all().select_related('quota', 'pricing_type')
|
||||
serializer_class = quota_serializers.QuotaPriceCalculationPriceItemsSerializer
|
||||
|
||||
|
||||
class QuotaFinalPriceTypeViewSet(viewsets.ModelViewSet):
|
||||
queryset = product_models.QuotaFinalPriceTypes.objects.all()
|
||||
serializer_class = quota_serializers.QuotaFinalPriceTypeSerializer
|
||||
|
||||
Reference in New Issue
Block a user