'Calculates a checksum with the provided algorithm.'

def has_valid_checksum(self, number):

    letter_dict = {u'A': 10, u'B': 11, u'C': 12, u'D': 13, u'E': 14, u'F': 15, u'G': 16, u'H': 17, u'I': 18, u'J': 19, u'K': 20, u'L': 21, u'M': 22, u'N': 23, u'O': 24, u'P': 25, u'Q': 26, u'R': 27, u'S': 28, u'T': 29, u'U': 30, u'V': 31, u'W': 32, u'X': 33, u'Y': 34, u'Z': 35}
    int_table = [(((not c.isdigit()) and letter_dict[c]) or int(c)) for c in number]
    multiple_table = (7, 3, 1, (-1), 7, 3, 1, 7, 3)
    result = 0
    for i in range(len(int_table)):
        result += (int_table[i] * multiple_table[i])
    return ((result % 10) == 0)
