change price type int -> decimal field

This commit is contained in:
behruz-dev
2025-11-07 12:17:57 +05:00
parent c113f003df
commit 8dca5505d8
35 changed files with 584 additions and 195 deletions

View File

@@ -9,7 +9,7 @@ from core.apps.orders.serializers.order import OrderListSerializer
class OfferCreateSerializer(serializers.Serializer):
counterparty_id = serializers.UUIDField()
price = serializers.IntegerField()
price = serializers.DecimalField(max_digits=15, decimal_places=2, default=0.00)
phone = serializers.CharField(required=False)
comment = serializers.CharField(required=False)
qqs = serializers.BooleanField(required=False)
@@ -53,6 +53,7 @@ class MultipleOfferCreateSerializer(serializers.Serializer):
created_offers = Offer.objects.bulk_create(offers)
return created_offers
class OfferListSerializer(serializers.ModelSerializer):
counterparty = serializers.SerializerMethodField(method_name='get_counterparty')
order = OrderListSerializer()

View File

@@ -146,11 +146,11 @@ class MultipleOrderAddSerializer(serializers.Serializer):
wherehouse_id = serializers.UUIDField()
quantity = serializers.IntegerField()
unit_amount = serializers.IntegerField()
unit_amount = serializers.DecimalField(max_digits=15, decimal_places=2, default=0.00)
currency = serializers.ChoiceField(choices=[('uzs', 'uzs'), ('usd', 'usd')])
amount = serializers.IntegerField()
total_price = serializers.IntegerField(required=False)
qqs_price = serializers.IntegerField(required=False)
amount = serializers.DecimalField(max_digits=15, decimal_places=2, default=0.00)
total_price = serializers.DecimalField(max_digits=15, decimal_places=2, default=0.00, required=False)
qqs_price = serializers.DecimalField(max_digits=15, decimal_places=2, default=0.00, required=False)
qqs = serializers.IntegerField(required=False)
def validate(self, data):

View File

@@ -23,7 +23,7 @@ class PartyCreateSerializer(serializers.Serializer):
delivery_date = serializers.DateField()
payment_date = serializers.DateField()
comment = serializers.CharField(required=False)
discount = serializers.IntegerField(required=False)
discount = serializers.DecimalField(max_digits=15, decimal_places=2, default=0.00, required=False)
discount_currency = serializers.ChoiceField(
choices=[("uzs", "uzs"), ("usd", "usd")], required=False
)
@@ -238,9 +238,9 @@ class PartyOrderUpdateSerializer(serializers.Serializer):
wherehouse_id = serializers.UUIDField()
counterparty_id = serializers.UUIDField()
quantity = serializers.IntegerField()
unit_amount = serializers.IntegerField()
unit_amount = serializers.DecimalField(max_digits=15, decimal_places=2, default=0.00)
currency = serializers.ChoiceField(choices=[("uzs", "uzs"), ("usd", "usd")])
total_price = serializers.IntegerField()
total_price = serializers.DecimalField(max_digits=15, decimal_places=2, default=0.00)
def validate(self, data):
order = Order.objects.filter(id=data["order_id"]).first()
@@ -358,10 +358,10 @@ class PartyUpdateSerializer(serializers.ModelSerializer):
party_amount = PartyAmount.objects.get(party=instance)
party_amount.total_price = total_price
party_amount.cost_amount = (
total_price - instance.discount if instance.discount else 0
total_price - instance.discount if instance.discount else 0.00
)
party_amount.payment_amount = (
total_price - instance.discount if instance.discount else 0
total_price - instance.discount if instance.discount else 0.00
)
party_amount.save()
return instance