From 44454eb80d084994df719d60f7127bcc72604f8e Mon Sep 17 00:00:00 2001 From: Parsa Nazer Date: Mon, 22 Dec 2025 13:45:06 +0330 Subject: [PATCH 1/3] fix ProductVariantSerialzier --- backend/product/serializers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/product/serializers.py b/backend/product/serializers.py index b1be0ef..a9f6821 100644 --- a/backend/product/serializers.py +++ b/backend/product/serializers.py @@ -78,7 +78,7 @@ class ProductVariantSerialzier(serializers.ModelSerializer): self.fields.pop('in_pack_items', None) def get_price_after_discount(self, obj): - return f'{obj.get_price_after_discount():,.0f} تومانءءء' + return f'{obj.price_after_discount():,.0f} تومانءءء' def get_cart_quantity(self, obj): request = self.context.get('request') From a9d4fbe3db6c38d7caad084e0da7bcde7026555f Mon Sep 17 00:00:00 2001 From: Parsa Nazer Date: Mon, 22 Dec 2025 13:53:08 +0330 Subject: [PATCH 2/3] fix ProductVariantSerialzier --- backend/product/serializers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/product/serializers.py b/backend/product/serializers.py index a9f6821..d887e6d 100644 --- a/backend/product/serializers.py +++ b/backend/product/serializers.py @@ -78,7 +78,7 @@ class ProductVariantSerialzier(serializers.ModelSerializer): self.fields.pop('in_pack_items', None) def get_price_after_discount(self, obj): - return f'{obj.price_after_discount():,.0f} تومانءءء' + return f'{obj.price_after_discount:,.0f} تومانءءء' def get_cart_quantity(self, obj): request = self.context.get('request') From 46d4019ca8a745753d2e50b3144f004b3057c58c Mon Sep 17 00:00:00 2001 From: Parsa Nazer Date: Mon, 22 Dec 2025 14:01:42 +0330 Subject: [PATCH 3/3] defualt for currency type --- ..._alter_productvariant_currency_and_more.py | 43 +++++++++++++++++++ backend/product/models.py | 2 +- 2 files changed, 44 insertions(+), 1 deletion(-) create mode 100644 backend/product/migrations/0066_alter_productvariant_currency_and_more.py diff --git a/backend/product/migrations/0066_alter_productvariant_currency_and_more.py b/backend/product/migrations/0066_alter_productvariant_currency_and_more.py new file mode 100644 index 0000000..64f842f --- /dev/null +++ b/backend/product/migrations/0066_alter_productvariant_currency_and_more.py @@ -0,0 +1,43 @@ +# Generated by Django 5.1.2 on 2025-12-22 10:31 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('product', '0065_alter_productvariant_input_price_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='productvariant', + name='currency', + field=models.CharField(choices=[('dollor', 'با نوسان دلاری'), ('toman', 'بدون نوسان')], default='dollor', max_length=20, verbose_name='نوع نوسان'), + ), + migrations.AlterField( + model_name='productvariant', + name='discount', + field=models.SmallIntegerField(default=0, help_text='این درصد از قیمت نهایی محصول کسر میگردد', verbose_name='درصد تخفیف'), + ), + migrations.AlterField( + model_name='productvariant', + name='in_stock', + field=models.PositiveIntegerField(default=0, help_text='تعداد موجودی برای این تنوع محصول', verbose_name='تعداد موجود'), + ), + migrations.AlterField( + model_name='productvariant', + name='input_price', + field=models.PositiveBigIntegerField(default=0, help_text='قیمت محصول با سودش در صورتی که نوسان دلاری روشن باشد قیمت به دلار محسابه و ذخیره می شود و قیمت نهایی در قیمت محاسبه شده ذخیره میشود', verbose_name='قیمت ورودی محصول'), + ), + migrations.AlterField( + model_name='productvariant', + name='min_price', + field=models.PositiveBigIntegerField(help_text='این قیمت برای کف قیمتی محصول در نظر گرفته میشود و حتی با نوسان دلاری قیمت از این کمتر نخواهد شد', verbose_name='قیمت کف'), + ), + migrations.AlterField( + model_name='productvariant', + name='profit', + field=models.PositiveBigIntegerField(default=0, help_text='مقدار سود به ازای این محصول (نکته این مقدار به قیمت اصلی اضافه نخواهد شد و فقط برای محاسبه ی تخفیف ها میباشد)', verbose_name='سود (تومان)'), + ), + ] diff --git a/backend/product/models.py b/backend/product/models.py index b3c704d..3b75545 100644 --- a/backend/product/models.py +++ b/backend/product/models.py @@ -381,7 +381,7 @@ class ProductVariant(DirtyFieldsMixin, models.Model): InPackItems, blank=True, verbose_name='ایتم های داخل پک') sell = models.IntegerField(default=0, verbose_name='فروش') currency = models.CharField( - verbose_name='نوع نوسان', max_length=20, choices=currency_type) + verbose_name='نوع نوسان', max_length=20, choices=currency_type, default='dollor') price_in_dollor = models.DecimalField( max_digits=15, decimal_places=8, blank=True, null=True, verbose_name='قیمت به دلار', help_text='قیمت محصول به دلار (محاسبه خودکار)')