B
    	²ô`»  ã               @   s    d dl mZ G dd„ deƒZdS )é   )ÚProviderc               @   s$   e Zd ZdZdZdd„ Zdd„ ZdS )r   )z {{last_name}} {{company_suffix}}z.{{last_name}} {{last_name}} {{company_suffix}}z.{{last_name}} {{last_name}} {{company_suffix}}z{{last_name}})zAs OyZTmiZOyZOyjZKyZOskZryc             C   s\   dd„ }xNt |  ¡ ƒ}||  d¡ }y||ƒ}W n tk
rF   w
Y nX |d t |ƒ S dS )a6  
        Returns Finnish company Business Identity Code (y-tunnus).
        Format is 8 digits - e.g. FI99999999,[8] last digit is a check
        digit utilizing MOD 11-2. The first digit is zero for some old
        organizations. This function provides current codes starting with
        non-zero.
        c             S   sv   dddddddg}d}x&t | |ƒD ]\}}|t|ƒ|  }q"W |d	 d
krRtdƒ‚|d	 dkrbdS td	|d	  ƒS dS )z,Calculate the checksum using mod 11,2 methodé   é	   é
   é   é   é   r   é    é   é   zChecksum 1 is invalidÚ0N)ÚzipÚintÚ
ValueErrorÚstr)ÚnumberZfactorsZsum_ÚxÚy© r   úU/home/dcms/DCMS/lib/python3.7/site-packages/faker/providers/company/fi_FI/__init__.pyÚcalculate_checksum   s    z8Provider.company_business_id.<locals>.calculate_checksumz######ú-N)r   Zrandom_digit_not_nullZbothifyr   )Úselfr   Zfirst_digitÚbodyÚcsr   r   r   Úcompany_business_id   s    zProvider.company_business_idc             C   s   dd„ }||   ¡ ƒS )zÖ
        Returns Finnish VAT identification number (Arvonlisaveronumero).
        This can be calculated from company business identity code by
        adding prefix "FI" and removing dash before checksum.
        c             S   s   d|   dd¡ S )z6
            Convert business id to VATIN
            ZFIr   Ú )Úreplace)Zbusiness_idr   r   r   Úconvert_to_vat4   s    z,Provider.company_vat.<locals>.convert_to_vat)r   )r   r   r   r   r   Úcompany_vat.   s    zProvider.company_vatN)Ú__name__Ú
__module__Ú__qualname__ÚformatsZcompany_suffixesr   r   r   r   r   r   r      s   r   N)r   r   ZCompanyProviderr   r   r   r   Ú<module>   s   