Ë
    Ã?ÆiI  ã                  óN   — d Z ddlmZ ddl­ ddlmZmZ d
d„Zd
d„Zdd„Z	d
d„Z
y	)u	  CPJ (CÃ©dula de Persona JurÃ­dica, Costa Rica tax number).

The CÃ©dula de Persona JurÃ­dica (CPJ) is an identifier of legal entities for
tax purposes.

This number consists of 10 digits, the first indicates the class of juridical
person, followed by a 3 digit sequence number identifying the type of
juridical person, followed by 6 digits sequence number assigned by Registro
Nacional de la RepÃºblica de Costa Rica.

More information:

* https://www.hacienda.go.cr/consultapagos/ayuda_cedulas.htm
* https://www.procomer.com/downloads/quiero/guia_solicitud_vuce.pdf (page 11)
* https://rnpdigital.com/personas_juridicas/documentos/Consultas/Listado%20de%20Clases%20y%20Tipos%20Cedulas%20Juridicas.pdf
* https://www.hacienda.go.cr/ATV/frmConsultaSituTributaria.aspx

>>> validate('3-101-999999')
'3101999999'
>>> validate('3-534-123559')
Traceback (most recent call last):
    ...
InvalidComponent: ...
>>> validate('310132541')
Traceback (most recent call last):
    ...
InvalidLength: ...
>>> format('4 000 042138')
'4-000-042138'
é    )Úannotations)Ú*)ÚcleanÚisdigitsc                óR   — t        | d«      j                  «       j                  «       S )z’Convert the number to the minimal representation.

    This strips the number of any valid separators and removes surrounding
    whitespace.
    z -)r   ÚupperÚstrip©Únumbers    úT/var/www/html/myprovider/mon_projet_qr/lib/python3.12/site-packages/stdnum/cr/cpj.pyÚcompactr   :   s#   € ô �˜Ó×$Ñ$Ó&×,Ñ,Ó.Ð.ó    c                óh  — t        | «      } t        | «      dk7  r
t        «       ‚t        | «      s
t	        «       ‚| d   dvr
t        «       ‚| d   dk(  r| dd dvr
t        «       ‚d}| d   d	k(  r| dd |vr
t        «       ‚| d   d
k(  r| dd dk7  r
t        «       ‚| d   dk(  r| dd dk7  r
t        «       ‚| S )zfCheck if the number is a valid Costa Rica CPJ number.

    This checks the length and formatting.
    é
   r   )Ú2Ú3Ú4Ú5r   é   é   )Ú100Ú200Ú300Ú400)Ú002Ú003Ú004Ú005Ú006Ú007Ú008Ú009Ú010Ú011Ú012Ú013Ú014Ú101Ú102Ú103Ú104Ú105Ú106Ú107Ú108Ú109Ú110r   r   Ú000r   Ú001)r   ÚlenÚInvalidLengthr   ÚInvalidFormatÚInvalidComponent)r   Úclass_three_typess     r   Úvalidater9   C   sà   € ô
 �V‹_€FÜ
ˆ6ƒ{�bÒÜ‹oÐÜ�FÔÜ‹oÐØˆa�yÐ,Ñ,ÜÓ Ð Øˆa�y�CÒ˜F 1 Q˜KÐ/KÑKÜÓ Ð ð'Ðð ˆa�y�CÒ˜F 1 Q˜KÐ/@Ñ@ÜÓ Ð Øˆa�y�CÒ˜F 1 Q˜K¨5Ò0ÜÓ Ð Øˆa�y�CÒ˜F 1 Q˜K¨5Ò0ÜÓ Ð Ø€Mr   c                óJ   — 	 t        t        | «      «      S # t        $ r Y yw xY w)z5Check if the number is a valid Costa Rica CPJ number.F)Úboolr9   ÚValidationErrorr
   s    r   Úis_validr=   ^   s)   € ðÜ”H˜VÓ$Ó%Ð%øÜò Ùðús   ‚ –	"¡"c                óR   — t        | «      } dj                  | d   | dd | dd g«      S )z8Reformat the number to the standard presentation format.ú-r   r   r   N)r   Újoinr
   s    r   ÚformatrA   f   s1   € ä�V‹_€FØ�8‰8�V˜A‘Y  q¨ ¨V°A°B¨ZÐ8Ó9Ð9r   N)r   ÚstrÚreturnrB   )r   rB   rC   r;   )Ú__doc__Ú
__future__r   Ústdnum.exceptionsÚstdnum.utilr   r   r   r9   r=   rA   © r   r   ú<module>rI      s)   ðñ*õ> #ä ß 'ó/óó6ô:r   