Пример #1
0
def create_legacy_data(data):
    app_type = class_to_roman(data['class_of_charge'])

    legacy_object = {
        'time': datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f'),
        'registration_no': str(data['registration']['number']).rjust(8),
        'priority_notice': '',
        'registration_date': data['registration']['date'],
        'class_type': app_type,
        'priority_notice_ref': '',
        'amendment_info': data['additional_information'].upper()[0:254]
    }

    eo_party = get_eo_party(data)

    if data['class_of_charge'] in ['PAB', 'WOB']:
        legacy_object['address'] = residences_to_string(eo_party)
        legacy_object['property_county'] = ''
        legacy_object['counties'] = ''
        legacy_object['parish_district'] = ''
        legacy_object['property'] = ''

    else:
        if 'priority_notice' in data['particulars']:
            legacy_object['priority_notice_ref'] = data['particulars']['priority_notice']

        if 'priority_notice' in data and 'expires' in data['priority_notice']:
            legacy_object['priority_notice'] = 'P'

        legacy_object['address'] = ''
        legacy_object['parish_district'] = data['particulars']['district'].upper()
        legacy_object['property'] = data['particulars']['description'].upper()

        if data['class_of_charge'] in ['PA', 'WO']:
            legacy_object['property_county'] = ""
            legacy_object['counties'] = data['particulars']['counties'][0].upper()

        else:
            county = data['particulars']['counties'][0].upper()
            county = re.sub("(.*) \(CITY OF\)", r"CITY OF \1", county)

            legacy_object['property_county'] = county
            legacy_object['counties'] = ''


    # Only sync the top name/county...
    eo_name = eo_party['names'][0]

    if eo_name['type'] == 'Private Individual':
        encoded_name = encode_name(eo_name)
        occupation = occupation_string(eo_party)[0:254]
        hex_append = ''

    elif eo_name['type'] == 'County Council':
        encoded_name = {
            'coded_name': eo_name['search_key'][:11],
            'remainder_name': eo_name['search_key'][11:],
            'name': eo_name['local']['name'].upper(),
            'hex_code': ''
        }
        hex_append = "01"
        occupation = ''

    elif eo_name['type'] == 'Rural Council':
        encoded_name = {
            'coded_name': eo_name['search_key'][:11],
            'remainder_name': eo_name['search_key'][11:],
            'name': eo_name['local']['name'].upper(),
            'hex_code': ''
        }
        hex_append = "02"
        occupation = ''

    elif eo_name['type'] == 'Parish Council':
        encoded_name = {
            'coded_name': eo_name['search_key'][:11],
            'remainder_name': eo_name['search_key'][11:],
            'name': eo_name['local']['name'].upper(),
            'hex_code': ''
        }
        hex_append = "04"
        occupation = ''

    elif eo_name['type'] == 'Other Council':
        encoded_name = {
            'coded_name': eo_name['search_key'][:11],
            'remainder_name': eo_name['search_key'][11:],
            'name': eo_name['local']['name'].upper(),
            'hex_code': ''
        }
        hex_append = "08"
        occupation = ''

    elif eo_name['type'] == 'Development Corporation':
        encoded_name = {
            'coded_name': eo_name['search_key'][:11],
            'remainder_name': eo_name['search_key'][11:],
            'name': eo_name['other'].upper(),
            'hex_code': ''
        }
        hex_append = "10"
        occupation = ''

    elif eo_name['type'] == 'Limited Company':
        encoded_name = {
            'coded_name': eo_name['search_key'][:11],
            'remainder_name': eo_name['search_key'][11:],
            'name': eo_name['company'].upper(),
            'hex_code': ''
        }
        hex_append = "F1"
        occupation = ''

    elif eo_name['type'] == 'Complex Name':
        cnum_hex = hex(eo_name['complex']['number'])[2:].zfill(6).upper()
        hex_string = 'F9' + cnum_hex + '00000000000000F3'
        encoded_name = {
            'coded_name': hex_string,
            'remainder_name': '',
            'name': eo_name['complex']['name'].upper(),
            'hex_code': ''
        }
        hex_append = 'F3'
        occupation = ''
        
    # elif eo_name['type'] == 'Coded Name':
    #     cnum_hex = hex(9999924)[2:].zfill(6).upper()
    #     hex_string = 'F9' + cnum_hex + '00000000000000F3'
    #     encoded_name = {
    #         'coded_name': hex_string,
    #         'remainder_name': '',
    #         'name': eo_name['other'].upper(),
    #         'hex_code': ''
    #     }
    #     hex_append = 'F3'
    #     occupation = ''

    elif eo_name['type'] == 'Other':
        if eo_name['subtype'] == 'A':  # VARNAM A
            encoded_name = encode_variant_a_name(eo_name['other'])
            encoded_name['name'] = ''  # eo_name['other'].upper()
            hex_append = ""
        else:  # VARNAM B
            encoded_name = {
                'coded_name': eo_name['search_key'][:11],
                'remainder_name': eo_name['search_key'][11:],
                'name': eo_name['other'].upper(),
                'hex_code': ''
            }
            hex_append = "F2"
        occupation = ''

    else:
        raise SynchroniserError("Unknown name type: {}".format(eo_name['type']))

    legacy_object['reverse_name'] = encoded_name['coded_name']
    legacy_object['remainder_name'] = encoded_name['remainder_name']
    legacy_object['punctuation_code'] = encoded_name['hex_code']
    legacy_object['occupation'] = occupation
    legacy_object['append_with_hex'] = hex_append
    legacy_object['name'] = encoded_name['name']
    return legacy_object
 def test_residence_to_string(self):
     output = residences_to_string(test_residence["input"])
     assert output == test_residence["expected"]
 def test_residence_to_string(self):
     output = residences_to_string(test_residence["input"])
     assert output == test_residence["expected"]