'Returns a 11 digits Belgian SSN called "rijksregisternummer" as a string
The first 6 digits represent the birthdate with (in order) year, month and day.
The second group of 3 digits is represents a sequence number (order of birth).
It is even for women and odd for men.
For men the range starts at 1 and ends 997, for women 2 until 998.
The third group of 2 digits is a checksum based on the previous 9 digits (modulo 97).
Divide those 9 digits by 97, subtract the remainder from 97 and that\'s the result.
For persons born in or after 2000, the 9 digit number needs to be proceeded by a 2
(add 2000000000) before the division by 97.'

@classmethod
def ssn(cls):

    def _checksum(digits):
        res = (97 - (digits % 97))
        return res
    mydate = DateProvider.date()
    elms = mydate.split(u'-')
    if (elms[0][0] == u'2'):
        above = True
    else:
        above = False
    elms[0] = elms[0][2:4]
    seq = BaseProvider.random_int(1, 998)
    seq_str = u'{:0>3}'.format(seq)
    elms.append(seq_str)
    date_as_int = int(u''.join(elms))
    if above:
        date_as_int += 2000000000
    s = _checksum(date_as_int)
    s_rjust = u'{:0>2}'.format(s)
    elms.append(s_rjust)
    return u''.join(elms)
