Commit MetaInfo

修訂46b3426bab7f1d6699881c0321c79eebfdb9eb70 (tree)
時間2022-01-23 08:11:34
作者Sergey Gusarov <laborer2008@gmai...>
CommiterSergey Gusarov

Log Message

Check if last 4 digits of card number in the account name repsent card in the description

Change Summary

差異

diff -r 208647f920a2 -r 46b3426bab7f src/account.py
--- a/src/account.py Sun Jan 23 01:26:31 2022 +0300
+++ b/src/account.py Sun Jan 23 02:11:34 2022 +0300
@@ -271,6 +271,16 @@
271271 logger.warning('Account \'' + name + '\' is closed')
272272 break
273273
274+ if len(accountName.card4LastDigits()) > 0:
275+ foundCard = False
276+ for card in desciptionObject.cards:
277+ if card.last4Digits == accountName.card4LastDigits():
278+ foundCard = True
279+
280+ if not foundCard:
281+ logger.error('Last 4 digits of card number in the account name don\'t repsent card' \
282+ 'in the description, account: \'' + accountName + '\'')
283+
274284 accountObject = Account(
275285 id,
276286 institutionObject,
diff -r 208647f920a2 -r 46b3426bab7f src/account_name.py
--- a/src/account_name.py Sun Jan 23 01:26:31 2022 +0300
+++ b/src/account_name.py Sun Jan 23 02:11:34 2022 +0300
@@ -78,10 +78,32 @@
7878 return common
7979
8080 def org(self):
81+ logger = log.getLogger()
82+
8183 nameSplitted = self.split(AccountName.SEPARATOR)
8284 if len(nameSplitted) >= 1:
8385 organization = nameSplitted[0]
8486 else:
87+ logger.warning('Empty account')
8588 organization = ''
8689
8790 return organization
91+
92+ def card4LastDigits(self):
93+ """If present"""
94+
95+ logger = log.getLogger()
96+
97+ digits = ''
98+ nameSplitted = self.split(AccountName.SEPARATOR)
99+ for name in nameSplitted:
100+ if len(name) > 0:
101+ if name[0] == '*':
102+ if len(name) == 5:
103+ digits = name[1:]
104+ if not digits.isnumeric():
105+ logger.error('Invalid card\'s last 4 digits part(not numeric): \'' + digits + '\'')
106+ else:
107+ logger.error('Invalid card\'s last 4 digits part: \'' + name + '\'')
108+
109+ return digits
diff -r 208647f920a2 -r 46b3426bab7f src/card.py
--- a/src/card.py Sun Jan 23 01:26:31 2022 +0300
+++ b/src/card.py Sun Jan 23 02:11:34 2022 +0300
@@ -84,7 +84,7 @@
8484
8585 checkDigitalValue(self._number, Card.MIN_LENGTH, Card.MAX_LENGTH)
8686 # This debug also provides check for correctness of card type
87- log.debugSrc(str(self.getIPSName()))
87+ # log.debugSrc(str(self.getIPSName()))
8888
8989 checkDigitalValue(cvv, Card.CVV_LENGTH, Card.CVV_LENGTH)
9090 self._cvv = cvv
@@ -107,6 +107,10 @@
107107 return self._number
108108
109109 @property
110+ def last4Digits(self):
111+ return self._number[-4:]
112+
113+ @property
110114 def cvv(self):
111115 return self._cvv
112116
Show on old repository browser