From 9e04fa354f143a40e0003295716dc88a40576aff Mon Sep 17 00:00:00 2001 From: phzhik Date: Mon, 17 Jul 2023 20:48:33 +0400 Subject: [PATCH] * Round up price_rub & full_price fields --- store/models.py | 9 +++++---- store/serializers.py | 4 ++-- store/utils.py | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/store/models.py b/store/models.py index 27902d4..5795957 100644 --- a/store/models.py +++ b/store/models.py @@ -1,3 +1,4 @@ +import math import posixpath from decimal import Decimal import random @@ -341,15 +342,15 @@ class Checklist(models.Model): verbose_name_plural = 'Заказы' @property - def price_rub(self) -> Decimal: + def price_rub(self) -> int: # Prefer annotated field if hasattr(self, '_price_rub'): return self._price_rub - return GlobalSettings.load().yuan_rate * self.price_yuan + return math.ceil(GlobalSettings.load().yuan_rate * self.price_yuan) @property - def full_price(self) -> Decimal: + def full_price(self) -> int: price = self.price_rub free_delivery = False @@ -371,7 +372,7 @@ class Checklist(models.Model): if not no_comission: price += self.commission_rub - return Decimal.max(Decimal(0), price) + return max(0, math.ceil(price)) @property def delivery_price_CN_RU(self) -> Decimal: diff --git a/store/serializers.py b/store/serializers.py index c83084f..2952cd8 100644 --- a/store/serializers.py +++ b/store/serializers.py @@ -54,11 +54,11 @@ class ChecklistSerializer(serializers.ModelSerializer): currency = serializers.SerializerMethodField('get_yuan_rate') curencycurency2 = serializers.DecimalField(source='price_yuan', required=False, max_digits=10, decimal_places=2) - currency3 = serializers.DecimalField(source='price_rub', read_only=True, max_digits=10, decimal_places=2) + currency3 = serializers.IntegerField(source='price_rub', read_only=True) chinadelivery = serializers.SerializerMethodField('get_delivery_price_CN', read_only=True) chinadelivery2 = serializers.DecimalField(source='delivery_price_CN_RU', read_only=True, max_digits=10, decimal_places=2) - fullprice = serializers.DecimalField(source='full_price', read_only=True, max_digits=10, decimal_places=2) + fullprice = serializers.IntegerField(source='full_price', read_only=True) realprice = serializers.DecimalField(source='real_price', required=False, allow_null=True, max_digits=10, decimal_places=2) commission = serializers.SerializerMethodField('get_commission', read_only=True) diff --git a/store/utils.py b/store/utils.py index d4d2f98..c8ff7f1 100644 --- a/store/utils.py +++ b/store/utils.py @@ -90,7 +90,7 @@ def create_preview(source_image: str, size=None, price_rub=None, title_lines=Non # Draw price if price_rub: - price_text = f"{price_rub:.2f} ₽" + price_text = f"{price_rub} ₽" price_font = get_font(50) price_x, price_y = hor_padding + 15, preview_height - 100