Commit 1d298236 authored by Claude Paroz's avatar Claude Paroz
Browse files

Fixed #18537 -- Fixed CUIT calculation in ar localflavor

Thanks mmoya at 8ksoft.com.ar for the report and Kevin Shaul for the
initial patch.
parent 590de18a
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -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:
+1 −0
Original line number Diff line number Diff line
@@ -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,