Fixed #18537 -- Fixed CUIT calculation in ar localflavor
Thanks mmoya at 8ksoft.com.ar for the report and Kevin Shaul for the initial patch.
This commit is contained in:
parent
590de18add
commit
1d2982362d
|
@ -105,9 +105,16 @@ class ARCUITField(RegexField):
|
|||
return cuit[:-1], cuit[-1]
|
||||
|
||||
def _calc_cd(self, cuit):
|
||||
# Calculation code based on:
|
||||
# http://es.wikipedia.org/wiki/C%C3%B3digo_%C3%9Anico_de_Identificaci%C3%B3n_Tributaria
|
||||
mults = (5, 4, 3, 2, 7, 6, 5, 4, 3, 2)
|
||||
tmp = sum([m * int(cuit[idx]) for idx, m in enumerate(mults)])
|
||||
return str(11 - tmp % 11)
|
||||
result = 11 - (tmp % 11)
|
||||
if result == 11:
|
||||
result = 0
|
||||
elif result == 10:
|
||||
result = 9
|
||||
return str(result)
|
||||
|
||||
def _format(self, cuit, check_digit=None):
|
||||
if check_digit == None:
|
||||
|
|
|
@ -87,6 +87,7 @@ class ARLocalFlavorTests(SimpleTestCase):
|
|||
'27-10345678-4': '27-10345678-4',
|
||||
'20101234569': '20-10123456-9',
|
||||
'27103456784': '27-10345678-4',
|
||||
'30011111110': '30-01111111-0',
|
||||
}
|
||||
invalid = {
|
||||
'2-10123456-9': error_format,
|
||||
|
|
Loading…
Reference in New Issue