fix payment
This commit is contained in:
1 parent
4f7486152c
commit
bb3ddd1610
47 files changed
+2137
-51
No files matched your search
@@ -5,6 +5,34 @@ from django.db.models.functions import Coalesce
|
||||
from .models import PaymentReceiptRevision
|
||||
|
||||
|
||||
def notice_sms_history(notice):
|
||||
"""Separate gateway acceptance from final handset delivery; preserve every send attempt."""
|
||||
from django.db.models import Prefetch
|
||||
from .models import PaymentNotificationAttempt
|
||||
notifications = notice.paymentnotification_set.select_related('job__staff_user__staff_profile').prefetch_related(
|
||||
Prefetch('attempt_log', queryset=PaymentNotificationAttempt.objects.order_by('-started_at', '-pk'), to_attr='send_attempts')
|
||||
).order_by('-job__created_at', '-pk')
|
||||
for notification in notifications:
|
||||
job = notification.job
|
||||
notification.manual_resend = ':resend:' in job.dedupe_key
|
||||
notification.delivery_class = 'info'
|
||||
if job.status != 'SENT':
|
||||
notification.delivery_label = 'هنوز ارسال موفق ثبت نشده است.'
|
||||
elif not job.provider_message_id:
|
||||
notification.delivery_label = 'شناسه رهگیری ارائه نشده؛ دریافت توسط گوشی قابل تأیید نیست.'
|
||||
elif not job.delivery_status:
|
||||
notification.delivery_label = 'دریافت توسط گوشی قابل تأیید نیست.'
|
||||
elif job.delivery_is_final:
|
||||
notification.delivery_label = job.get_delivery_status_display()
|
||||
notification.delivery_class = 'approved' if job.delivery_status == 'DELIVERED' else 'rejected'
|
||||
elif job.delivery_status == 'PENDING':
|
||||
notification.delivery_label = 'در انتظار استعلام دریافت توسط گوشی'
|
||||
else:
|
||||
suffix = 'در حال پیگیری' if job.delivery_next_check_at else 'دریافت توسط گوشی تأیید نشده است'
|
||||
notification.delivery_label = f'نتیجه غیرقطعی: {job.get_delivery_status_display()}؛ {suffix}'
|
||||
return notifications
|
||||
|
||||
|
||||
def notices_with_totals(queryset):
|
||||
approved = PaymentReceiptRevision.objects.filter(
|
||||
receipt__notice_id=OuterRef('pk'), receipt__status='APPROVED',
|
||||
|
||||
Reference in new issue
Block a user