FEAT(pg): ipg commission

ipg commission
This commit is contained in:
Haydar Ghasemi 2025-11-11 14:47:22 +03:30
parent 9d79f30518
commit fbff6b1336
2 changed files with 12 additions and 7 deletions

View file

@ -14,8 +14,8 @@ from apps.core.models import BaseModel, BasePGModel
from apps.pg.constans import StateChoices from apps.pg.constans import StateChoices
import uuid import uuid
from utils.wallet_client import deposit_to_user_wallet_submit, \ from utils.wallet_client import deposit_to_user_wallet_submit, deposit_to_user_wallet_verify
deposit_to_user_wallet_verify from main import settings
from utils.pna import PNAClient from utils.pna import PNAClient
from django.utils.translation import gettext_lazy as _ from django.utils.translation import gettext_lazy as _
@ -70,11 +70,11 @@ class PaymentRequest(models.Model):
return to_jalali(self.created_at) return to_jalali(self.created_at)
def calculate_commission(self): def calculate_commission(self):
self.commission = 1200 self.commission = settings.COMMISSION_LEVEL1
if 6000000 <= self.amount <= 400000000: if settings.COMMISSION_LEVEL2_MIN_AMOUNT <= self.amount <= settings.COMMISSION_LEVEL2_MAX_AMOUNT:
self.commission = 0.0002 * self.amount self.commission = settings.COMMISSION_LEVEL2_RATE * self.amount
elif 400000000 < self.amount: elif settings.COMMISSION_LEVEL2_MAX_AMOUNT < self.amount:
self.commission = 80000 self.commission = settings.COMMISSION_LEVEL3
self.save(update_fields=['commission']) self.save(update_fields=['commission'])

View file

@ -257,3 +257,8 @@ PNA_CORPORATION_PIN = config('PNA_CORPORATION_PIN')
WALLET_BASE_PUBLIC_URL = config('WALLET_BASE_PUBLIC_URL') WALLET_BASE_PUBLIC_URL = config('WALLET_BASE_PUBLIC_URL')
WALLET_RIAL = config('WALLET_RIAL') WALLET_RIAL = config('WALLET_RIAL')
IPG_BASE_PUBLIC_URL = config('IPG_BASE_PUBLIC_URL') IPG_BASE_PUBLIC_URL = config('IPG_BASE_PUBLIC_URL')
COMMISSION_LEVEL1 = config('COMMISSION_LEVEL1', cast=int)
COMMISSION_LEVEL2_MIN_AMOUNT = config('COMMISSION_LEVEL2_MIN_AMOUNT', cast=int)
COMMISSION_LEVEL2_MAX_AMOUNT = config('COMMISSION_LEVEL2_MAX_AMOUNT', cast=int)
COMMISSION_LEVEL2_RATE = config('COMMISSION_LEVEL2_RATE', cast=float)
COMMISSION_LEVEL3 = config('COMMISSION_LEVEL3', cast=int)