fix rolback items
This commit is contained in:
@@ -18,6 +18,7 @@ from django.shortcuts import redirect
|
|||||||
from .permissons import ShopOrderAdminPermission
|
from .permissons import ShopOrderAdminPermission
|
||||||
from django.urls import reverse
|
from django.urls import reverse
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
|
from azbankgateways.models.enum import PaymentStatus
|
||||||
|
|
||||||
class OrderItemModelInline(StackedInline):
|
class OrderItemModelInline(StackedInline):
|
||||||
model = OrderItemModel
|
model = OrderItemModel
|
||||||
@@ -271,6 +272,22 @@ class OrderAdmin(ModelAdmin, ImportExportModelAdmin):
|
|||||||
logging.debug("This record is verify now.", extra={"pk": bank_record.pk})
|
logging.debug("This record is verify now.", extra={"pk": bank_record.pk})
|
||||||
elif bank_record.order and not bank_record.order.is_paid:
|
elif bank_record.order and not bank_record.order.is_paid:
|
||||||
bank_record.order.rollback_stock()
|
bank_record.order.rollback_stock()
|
||||||
|
|
||||||
|
failed_statuses = [
|
||||||
|
PaymentStatus.CANCEL_BY_USER,
|
||||||
|
PaymentStatus.EXPIRE_GATEWAY_TOKEN,
|
||||||
|
PaymentStatus.EXPIRE_VERIFY_PAYMENT,
|
||||||
|
PaymentStatus.ERROR,
|
||||||
|
]
|
||||||
|
failed_records = bank_models.Bank.objects.filter(
|
||||||
|
status__in=failed_statuses,
|
||||||
|
order__isnull=False,
|
||||||
|
order__is_paid=False,
|
||||||
|
order__is_stock_rolled_back=False,
|
||||||
|
).select_related('order')
|
||||||
|
|
||||||
|
for bank_record in failed_records:
|
||||||
|
bank_record.order.rollback_stock()
|
||||||
messages.success(request, f"با موفقیت اپدیت شد")
|
messages.success(request, f"با موفقیت اپدیت شد")
|
||||||
return redirect("admin:order_ordermodel_changelist")
|
return redirect("admin:order_ordermodel_changelist")
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ from azbankgateways import (
|
|||||||
models as bank_models,
|
models as bank_models,
|
||||||
default_settings as settings,
|
default_settings as settings,
|
||||||
)
|
)
|
||||||
|
from azbankgateways.models.enum import PaymentStatus
|
||||||
from .models import OrderModel
|
from .models import OrderModel
|
||||||
from account.models import PushSubscription
|
from account.models import PushSubscription
|
||||||
import ghasedak_sms
|
import ghasedak_sms
|
||||||
@@ -30,6 +31,23 @@ def udpate_bank_status():
|
|||||||
elif bank_record.order:
|
elif bank_record.order:
|
||||||
order = bank_record.order
|
order = bank_record.order
|
||||||
order.rollback_stock()
|
order.rollback_stock()
|
||||||
|
|
||||||
|
failed_statuses = [
|
||||||
|
PaymentStatus.CANCEL_BY_USER,
|
||||||
|
PaymentStatus.EXPIRE_GATEWAY_TOKEN,
|
||||||
|
PaymentStatus.EXPIRE_VERIFY_PAYMENT,
|
||||||
|
PaymentStatus.ERROR,
|
||||||
|
]
|
||||||
|
failed_records = bank_models.Bank.objects.filter(
|
||||||
|
status__in=failed_statuses,
|
||||||
|
order__isnull=False,
|
||||||
|
order__is_paid=False,
|
||||||
|
order__is_stock_rolled_back=False,
|
||||||
|
).select_related('order')
|
||||||
|
|
||||||
|
for bank_record in failed_records:
|
||||||
|
bank_record.order.rollback_stock()
|
||||||
|
|
||||||
return 'update bank record is done'
|
return 'update bank record is done'
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user