add special_discount_code to order model
This commit is contained in:
@@ -137,7 +137,7 @@ class OrderAdmin(ModelAdmin, ImportExportModelAdmin):
|
|||||||
list_filter = ['is_paid', 'status']
|
list_filter = ['is_paid', 'status']
|
||||||
actions_list = ['redirect_to_learn', 'udpate_bank_status']
|
actions_list = ['redirect_to_learn', 'udpate_bank_status']
|
||||||
list_display = ['order_id', 'user', 'is_paid', 'status', 'discount_code', 'address', 'download_invoice_button']
|
list_display = ['order_id', 'user', 'is_paid', 'status', 'discount_code', 'address', 'download_invoice_button']
|
||||||
readonly_fields = ('created_at', 'tax', 'final_price', 'cart_total', 'discount_amount', 'discount_code', 'user', 'address', 'is_paid', 'download_invoice_link')
|
readonly_fields = ('created_at', 'tax', 'final_price', 'cart_total', 'discount_amount', 'discount_code', 'user', 'address', 'is_paid', 'special_discount_code','download_invoice_link')
|
||||||
compressed_fields = True
|
compressed_fields = True
|
||||||
warn_unsaved_form = True
|
warn_unsaved_form = True
|
||||||
# exclude = ('bank_records',)
|
# exclude = ('bank_records',)
|
||||||
|
|||||||
@@ -0,0 +1,25 @@
|
|||||||
|
# Generated by Django 5.1.2 on 2026-01-04 06:13
|
||||||
|
|
||||||
|
import django.db.models.deletion
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('account', '0034_add_telegram_chat_id_to_shop'),
|
||||||
|
('order', '0041_shopordermodel_address_shopordermodel_address_city_and_more'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='ordermodel',
|
||||||
|
name='special_discount_code',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='account.specialdiscountcode', verbose_name='کدتخفیف خاص'),
|
||||||
|
),
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='shopordermodel',
|
||||||
|
name='special_discount_code',
|
||||||
|
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='account.specialdiscountcode', verbose_name='کدتخفیف خاص'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -173,6 +173,8 @@ class OrderModel(models.Model):
|
|||||||
is_paid = models.BooleanField(default=False, verbose_name="وضعیت پرداخت")
|
is_paid = models.BooleanField(default=False, verbose_name="وضعیت پرداخت")
|
||||||
discount_code = models.ForeignKey(
|
discount_code = models.ForeignKey(
|
||||||
DiscountCode, on_delete=models.PROTECT, null=True, blank=True, verbose_name="کدتخفیف")
|
DiscountCode, on_delete=models.PROTECT, null=True, blank=True, verbose_name="کدتخفیف")
|
||||||
|
special_discount_code = models.ForeignKey(
|
||||||
|
SpecialDiscountCode, on_delete=models.PROTECT, null=True, blank=True, verbose_name="کدتخفیف خاص")
|
||||||
status = models.CharField(max_length=20, choices=STATUS_CHOICES,
|
status = models.CharField(max_length=20, choices=STATUS_CHOICES,
|
||||||
default='ADMIN_PENDING', verbose_name="وضعیت سفارش")
|
default='ADMIN_PENDING', verbose_name="وضعیت سفارش")
|
||||||
discount_amount = models.BigIntegerField(
|
discount_amount = models.BigIntegerField(
|
||||||
@@ -290,6 +292,8 @@ class ShopOrderModel(models.Model):
|
|||||||
subtotal = models.BigIntegerField(verbose_name='جمع جزئیات', default=0)
|
subtotal = models.BigIntegerField(verbose_name='جمع جزئیات', default=0)
|
||||||
items_count = models.PositiveIntegerField(default=0)
|
items_count = models.PositiveIntegerField(default=0)
|
||||||
discount_amount = models.BigIntegerField(default=0, verbose_name='تخفیف اختصاصی فروشگاه')
|
discount_amount = models.BigIntegerField(default=0, verbose_name='تخفیف اختصاصی فروشگاه')
|
||||||
|
special_discount_code = models.ForeignKey(
|
||||||
|
'account.SpecialDiscountCode', on_delete=models.PROTECT, null=True, blank=True, verbose_name='کدتخفیف خاص')
|
||||||
special_discount_amount = models.BigIntegerField(default=0, verbose_name='تخفیف ویژه اختصاصی')
|
special_discount_amount = models.BigIntegerField(default=0, verbose_name='تخفیف ویژه اختصاصی')
|
||||||
commission_percent = models.DecimalField(max_digits=5, decimal_places=2, verbose_name='درصد کمیسیون')
|
commission_percent = models.DecimalField(max_digits=5, decimal_places=2, verbose_name='درصد کمیسیون')
|
||||||
commission_amount = models.BigIntegerField(default=0, verbose_name='مبلغ کمیسیون')
|
commission_amount = models.BigIntegerField(default=0, verbose_name='مبلغ کمیسیون')
|
||||||
|
|||||||
@@ -174,6 +174,7 @@ def create_shop_orders_on_payment(sender, instance: OrderModel, created, **kwarg
|
|||||||
subtotal=shop_subtotal,
|
subtotal=shop_subtotal,
|
||||||
items_count=sum(int(it.quantity) for it in items_list),
|
items_count=sum(int(it.quantity) for it in items_list),
|
||||||
discount_amount=allocated_discount,
|
discount_amount=allocated_discount,
|
||||||
|
special_discount_code=instance.special_discount_code,
|
||||||
special_discount_amount=allocated_special_discount,
|
special_discount_amount=allocated_special_discount,
|
||||||
commission_percent=commission_percent_value,
|
commission_percent=commission_percent_value,
|
||||||
commission_amount=commission_amount,
|
commission_amount=commission_amount,
|
||||||
|
|||||||
@@ -338,6 +338,7 @@ class PaymentView(APIView):
|
|||||||
address=cart.address,
|
address=cart.address,
|
||||||
created_at=timezone.now().date(),
|
created_at=timezone.now().date(),
|
||||||
discount_code=cart.discount_code,
|
discount_code=cart.discount_code,
|
||||||
|
special_discount_code=cart.special_discount_code,
|
||||||
discount_amount=cart.discount_code_amount,
|
discount_amount=cart.discount_code_amount,
|
||||||
special_discount_total=special_total,
|
special_discount_total=special_total,
|
||||||
tax=cart.tax_amount,
|
tax=cart.tax_amount,
|
||||||
|
|||||||
Reference in New Issue
Block a user