B
    	²ô`_  ã               @   s8   d dl mZ dd„ Zdd„ Zdd„ ZG dd	„ d	eƒZd
S )é   )ÚProviderc             C   sX   ddddddddg}d	}x&t d	dƒD ]}||| | |  7 }q$W |d
; }|dkrTd	}|S )zc
    Calculates and returns a control digit for given list of digits basing on REGON standard.
    é   é	   r   é   é   é   é   é   é    é   é
   )Úrange)ÚdigitsÚweights_for_check_digitÚcheck_digitÚi© r   úU/home/dcms/DCMS/lib/python3.7/site-packages/faker/providers/company/pl_PL/__init__.pyÚregon_checksum   s    r   c             C   sb   ddddddddd	d
dddg}d}x&t ddƒD ]}||| | |  7 }q.W |d; }|dkr^d}|S )zi
    Calculates and returns a control digit for given list of digits basing on local REGON standard.
    r   r   r   r   r
   r   r	   r   r   é   é   r   r   )r   )r   r   r   r   r   r   r   Úlocal_regon_checksum   s    r   c          	   C   sN   dddddddddg	}d}x&t ddƒD ]}||| | |  7 }q&W |d	; }|S )
za
    Calculates and returns a control digit for given list of digits basing on NIP standard.
    r   r   r	   r   r   r   r
   r   r   )r   )r   r   r   r   r   r   r   Úcompany_vat_checksum(   s    r   c               @   s8   e Zd ZdZdZdZdd„ Zdd„ Zdd	„ Zd
d„ Z	dS )r   )z {{last_name}} {{company_suffix}}z.{{last_name}}-{{last_name}} {{company_suffix}}z {{company_prefix}} {{last_name}}z3{{company_prefix}} {{last_name}} {{company_suffix}}zA{{company_prefix}} {{last_name}}-{{last_name}} {{company_suffix}})ZGrupau   SpÃ³Å‚dzielniaZStowarzyszenieZFundacjaZPPUHZFPUHZGabinety)z
Sp. z o.o.zS.A.zSp. z o.o. Sp.k.zSp.j.zs.c.zSp.k.z
i syn s.c.c             C   s   |   | j¡S )z"
        :example 'Grupa'
        )Zrandom_elementÚcompany_prefixes)Úselfr   r   r   Úcompany_prefixE   s    zProvider.company_prefixc             C   sj   |   dd¡d d }t|d ƒ|d g}xtdƒD ]}| |  ¡ ¡ q2W | t|ƒ¡ d dd	„ |D ƒ¡S )
z²
        Returns 9 character Polish National Business Registry Number,
        Polish: Rejestr Gospodarki Narodowej - REGON.

        https://pl.wikipedia.org/wiki/REGON
        r
   é1   r   r   r   r   Ú c             s   s   | ]}t |ƒV  qd S )N)Ústr)Ú.0Údigitr   r   r   ú	<genexpr>Z   s    z!Provider.regon.<locals>.<genexpr>)Z
random_intÚintr   ÚappendÚrandom_digitr   Újoin)r   Zvoivodeship_numberÚregon_digitsÚ_r   r   r   ÚregonK   s    zProvider.regonc             C   sX   dd„ t |  ¡ ƒD ƒ}xtdƒD ]}| |  ¡ ¡ q W | t|ƒ¡ d dd„ |D ƒ¡S )zš
        Returns 14 character Polish National Business Registry Number,
        local entity number.

        https://pl.wikipedia.org/wiki/REGON
        c             S   s   g | ]}t |ƒ‘qS r   )r"   )r   r    r   r   r   ú
<listcomp>c   s    z(Provider.local_regon.<locals>.<listcomp>r   r   c             s   s   | ]}t |ƒV  qd S )N)r   )r   r    r   r   r   r!   j   s    z'Provider.local_regon.<locals>.<genexpr>)Úlistr(   r   r#   r$   r   r%   )r   r&   r'   r   r   r   Úlocal_regon\   s
    zProvider.local_regonc             C   sz   g }xt dƒD ]}| |  ¡ ¡ qW xt dƒD ]}| |  ¡ ¡ q.W t|ƒ}|dkr\|  ¡ S | |¡ d dd„ |D ƒ¡S )zœ
        Returns 10 character tax identification number,
        Polish: Numer identyfikacji podatkowej.

        https://pl.wikipedia.org/wiki/NIP
        r   r   r   r   c             s   s   | ]}t |ƒV  qd S )N)r   )r   r    r   r   r   r!   „   s    z'Provider.company_vat.<locals>.<genexpr>)r   r#   Zrandom_digit_not_nullr$   r   Úcompany_vatr%   )r   Z
vat_digitsr'   r   r   r   r   r,   l   s    
zProvider.company_vatN)
Ú__name__Ú
__module__Ú__qualname__Úformatsr   Zcompany_suffixesr   r(   r+   r,   r   r   r   r   r   7   s   r   N)r   r   ZCompanyProviderr   r   r   r   r   r   r   Ú<module>   s   