# -*- coding: utf-8 -*-
"""Genetrator klucza order_key
"""

def build_order_key(address_forest,counties):
    """Budowanie klucza sortowania
    :param address_forest; adres leśny
    :pram countys; województwa
    """
    try:
        #podział adresu na części
        parts=address_forest.split('-')
        county=[(county_cd) for county_cd,county_ltr in counties if county_ltr==parts[0][0]][0]
        #pobranie oddzialu i uzupełnienie spacji zerami
        department=""#[]
        for ch in parts[1][2:]:#parts[2]:
            if ch.isspace()==True:
                department="0"+department
            else:
                department=department+ch
            
        #pobranie litery i albo zamiana albo dodanie spacji
        letter=parts[2].strip()
        #zamiana ~ na "Ż"
        letter=letter.replace('~','Ż')
        if len(letter)==1:
            #dodanie spacji z przodu
            letter=' '+letter
        #jeżeli jest 2 litery i występuje xyz
        else:
            if 'Ż' in letter:
                #zamiana liter po Ż
                letter=letter[0]+letter[1:][::-1]
            else:
                #zamiana liter bez tyldy
                letter=letter[::-1]
        #schemat [G][151020001]-100[3  ]-[a]   -[00] =>[22][151020001][0003][ a][00]
        return  county+parts[0][1:]+department+letter+parts[3]
            
        
    
    except Exception as e:
        raise e