'This method checks if the last letter/digit in value is valid
according to the algorithm the ID Card follows.'

def has_valid_checksum(self, value):

    if (len(value) != 18):
        return True
    checksum_index = (sum(map((lambda a, b: (a * (ord(b) - ord(u'0')))), (7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2), value[:17])) % 11)
    return (u'10X98765432'[checksum_index] == value[(-1)])
