fix: 罚单申请时锁定分红利率与应得金额,缴纳按锁定值入账
This commit is contained in:
@@ -11741,7 +11741,10 @@ class ShangjiaCufaTongjiView(APIView):
|
||||
shensuzhong_jine=Sum('FineAmount', filter=Q(Status=3)),
|
||||
yibohui=Count('id', filter=Q(Status=4)),
|
||||
yibohui_jine=Sum('FineAmount', filter=Q(Status=4)),
|
||||
shijidaozhang_jine=Sum('ApplicantBonusAmount', filter=Q(Status=2)),
|
||||
shijidaozhang_jine=Sum(
|
||||
'ApplicantBonusAmount',
|
||||
filter=Q(Status=2, BonusCredited=True),
|
||||
),
|
||||
)
|
||||
|
||||
jifen_agg = PenaltyRecord.query.filter(ApplicantID=yonghuid).aggregate(
|
||||
@@ -11875,6 +11878,8 @@ class ShangjiaFakuanLieBiaoView(APIView):
|
||||
'shensuliyou': r.AppealReason or '',
|
||||
'bohuiliyou': r.RejectReason or '',
|
||||
'applicant_bonus_amount': str(r.ApplicantBonusAmount or 0),
|
||||
'applicant_bonus_rate': str(r.ApplicantBonusRate or 0),
|
||||
'bonus_credited': bool(r.BonusCredited),
|
||||
'shop_staff_user_id': r.ShopStaffUserID or '',
|
||||
'staff_display_name': staff_name_map.get(r.ShopStaffUserID or '', ''),
|
||||
'zhengju_tupian': zhengju_map.get(rid, []),
|
||||
@@ -12006,7 +12011,7 @@ class FaKuanPayView(APIView):
|
||||
yonghuid=request.user.UserUID,
|
||||
jine=jine,
|
||||
leixing=4,
|
||||
shuoming=settings.FAKUAN_PAY_DESCRIPTION,
|
||||
shuoming=f'{settings.FAKUAN_PAY_DESCRIPTION}#fadan:{fadan.id}',
|
||||
club_id=resolve_club_id_for_write(request, request.user),
|
||||
)
|
||||
|
||||
@@ -12225,12 +12230,20 @@ class FaKuanHuitiaoView(View):
|
||||
|
||||
# 8. 更新罚单状态为已缴纳(2)
|
||||
try:
|
||||
# 根据订单中的用户ID和金额匹配待缴纳的罚单
|
||||
fadan = Penalty.query.filter(
|
||||
PenalizedUserID=order.yonghuid,
|
||||
FineAmount=order.jine,
|
||||
Status__in=[1, 3]
|
||||
).first()
|
||||
fadan = None
|
||||
m = re.search(r'#fadan:(\d+)', order.shuoming or '')
|
||||
if m:
|
||||
fadan = Penalty.query.filter(
|
||||
id=int(m.group(1)),
|
||||
PenalizedUserID=order.yonghuid,
|
||||
Status__in=[1, 3],
|
||||
).first()
|
||||
if not fadan:
|
||||
fadan = Penalty.query.filter(
|
||||
PenalizedUserID=order.yonghuid,
|
||||
FineAmount=order.jine,
|
||||
Status__in=[1, 3],
|
||||
).order_by('-CreateTime').first()
|
||||
if fadan:
|
||||
fadan.Status = 2 # 已缴纳
|
||||
fadan.save(update_fields=['Status'])
|
||||
|
||||
Reference in New Issue
Block a user