修訂 | 46b3426bab7f1d6699881c0321c79eebfdb9eb70 (tree) |
---|---|
時間 | 2022-01-23 08:11:34 |
作者 | Sergey Gusarov <laborer2008@gmai...> |
Commiter | Sergey Gusarov |
Check if last 4 digits of card number in the account name repsent card in the description
@@ -271,6 +271,16 @@ | ||
271 | 271 | logger.warning('Account \'' + name + '\' is closed') |
272 | 272 | break |
273 | 273 | |
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 | + | |
274 | 284 | accountObject = Account( |
275 | 285 | id, |
276 | 286 | institutionObject, |
@@ -78,10 +78,32 @@ | ||
78 | 78 | return common |
79 | 79 | |
80 | 80 | def org(self): |
81 | + logger = log.getLogger() | |
82 | + | |
81 | 83 | nameSplitted = self.split(AccountName.SEPARATOR) |
82 | 84 | if len(nameSplitted) >= 1: |
83 | 85 | organization = nameSplitted[0] |
84 | 86 | else: |
87 | + logger.warning('Empty account') | |
85 | 88 | organization = '' |
86 | 89 | |
87 | 90 | 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 |
@@ -84,7 +84,7 @@ | ||
84 | 84 | |
85 | 85 | checkDigitalValue(self._number, Card.MIN_LENGTH, Card.MAX_LENGTH) |
86 | 86 | # This debug also provides check for correctness of card type |
87 | - log.debugSrc(str(self.getIPSName())) | |
87 | + # log.debugSrc(str(self.getIPSName())) | |
88 | 88 | |
89 | 89 | checkDigitalValue(cvv, Card.CVV_LENGTH, Card.CVV_LENGTH) |
90 | 90 | self._cvv = cvv |
@@ -107,6 +107,10 @@ | ||
107 | 107 | return self._number |
108 | 108 | |
109 | 109 | @property |
110 | + def last4Digits(self): | |
111 | + return self._number[-4:] | |
112 | + | |
113 | + @property | |
110 | 114 | def cvv(self): |
111 | 115 | return self._cvv |
112 | 116 |