§
    ƒþ¬hJ  ã                   ó´  — d dl mZmZmZmZ d dlmZmZ d dlm	Z	 d dl
mZmZ  ede¦  «        Ze                     ddg¬¦  «        e ed	¦  «        d
„ ¦   «         ¦   «         ¦   «         Ze                     ddg¬¦  «        e ed	¦  «        d„ ¦   «         ¦   «         ¦   «         Ze                     ddg¬¦  «        ed„ ¦   «         ¦   «         Ze                     ddg¬¦  «        ed„ ¦   «         ¦   «         Ze                     ddg¬¦  «        e ed	¦  «        d„ ¦   «         ¦   «         ¦   «         Ze                     ddg¬¦  «        ed„ ¦   «         ¦   «         ZdS )é    )Ú	BlueprintÚrequestÚjsonifyÚsession)ÚdbÚUser)ÚCompany)Úrequire_authÚrequire_roleÚcompanyz
/companiesÚGET)ÚmethodsÚsuper_adminc                  ó¤  — 	 t           j                             ddt          ¬¦  «        } t           j                             ddt          ¬¦  «        }t           j                             dd¦  «        }t          j        }|rR|                     t          j                             |¦  «        t          j	                             |¦  «        z  ¦  «        }| 
                    | |d¬	¦  «        }t          d
„ |j        D ¦   «         |j        |j        | |dœ¦  «        dfS # t          $ r-}t          ddt!          |¦  «        › �i¦  «        dfcY d}~S d}~ww xY w)z6Obtener lista de todas las empresas (solo super_admin)Úpageé   )ÚtypeÚper_pageé
   ÚsearchÚ F)r   r   Ú	error_outc                 ó6   — g | ]}|                      ¦   «         ‘ŒS © ©Úto_dict)Ú.0r   s     ú6/home/ubuntu/invoice-606-backend/src/routes/company.pyú
<listcomp>z!get_companies.<locals>.<listcomp>#   s"   € ÐKÐKÐK°˜'Ÿ/š/Ñ+Ô+ÐKÐKÐKó    )Ú	companiesÚtotalÚpagesÚcurrent_pager   éÈ   ÚerrorúError interno del servidor: éô  N)r   ÚargsÚgetÚintr	   ÚqueryÚfilterÚnameÚcontainsÚrncÚpaginater   Úitemsr"   r#   Ú	ExceptionÚstr)r   r   r   r,   r!   Úes         r   Úget_companiesr6      so  € ð
PÝŒ|×Ò ¨µÐÑ4Ô4ˆÝ”<×#Ò# J°½Ð#Ñ=Ô=ˆÝ”×!Ò! (¨BÑ/Ô/ˆå”ˆð ð 	Ø—L’LÝ”×&Ò& vÑ.Ô.Ý”×%Ò% fÑ-Ô-ñ/ñô ˆEð —N’NØØØð #ñ 
ô 
ˆ	õ ØKÐK¸9¼?ÐKÑKÔKØ”_Ø”_Ø Ø ð
ð 
ñ ô ð ðð 	øõ ð Pð Pð PÝ˜Ð!HÅÀAÁÄÐ!HÐ!HÐIÑJÔJÈCÐOÐOÐOÐOÐOÐOÐOøøøøðPøøøs   ‚DD Ä
EÄ""E
ÅEÅ
EÚPOSTc                  óÒ  — 	 t          j        ¦   «         } ddg}|D ]0}|                      |¦  «        st          dd|› d�i¦  «        dfc S Œ1t          j                             |                      d¦  «        ¬¦  «                             ¦   «         }|rt          ddi¦  «        d	fS t	          |                      d¦  «        |                      d¦  «        |                      d
¦  «        |                      d¦  «        |                      d¦  «        |                      dd¦  «        ¬¦  «        }t          j	         
                    |¦  «         t          j	                             ¦   «          t          d|                     ¦   «         dœ¦  «        dfS # t          $ rK}t          j	                             ¦   «          t          ddt          |¦  «        › �i¦  «        dfcY d}~S d}~ww xY w)z&Crear nueva empresa (solo super_admin)r.   r0   r&   zCampo z es requeridoé�  )r0   úRNC ya existeé™  ÚaddressÚphoneÚemailÚstatusÚactive)r.   r0   r<   r=   r>   r?   zEmpresa creada exitosamente©Úmessager   éÉ   r'   r(   N)r   Úget_jsonr*   r   r	   r,   Ú	filter_byÚfirstr   r   ÚaddÚcommitr   r3   Úrollbackr4   )ÚdataÚrequired_fieldsÚfieldÚexisting_companyÚnew_companyr5   s         r   Úcreate_companyrO   -   s  € ð
"PÝÔÑ!Ô!ˆð " 5˜/ˆØ$ð 	Nð 	NˆEØ—8’8˜E‘?”?ð NÝ Ð)F°%Ð)FÐ)FÐ)FÐGÑHÔHÈ#ÐMÐMÐMÐMðNõ #œ=×2Ò2°t·x²xÀ±´Ð2ÑGÔG×MÒMÑOÔOÐØð 	<Ý˜G _Ð5Ñ6Ô6¸Ð;Ð;õ Ø—’˜&Ñ!Ô!Ø—’˜‘”Ø—H’H˜YÑ'Ô'Ø—(’(˜7Ñ#Ô#Ø—(’(˜7Ñ#Ô#Ø—8’8˜H hÑ/Ô/ð
ñ 
ô 
ˆõ 	Œ
�Š�{Ñ#Ô#Ð#Ý
Œ
×ÒÑÔÐåØ4Ø"×*Ò*Ñ,Ô,ð
ð 
ñ ô ð ðð 	øõ
 ð Pð Pð PÝ
Œ
×ÒÑÔÐÝ˜Ð!HÅÀAÁÄÐ!HÐ!HÐIÑJÔJÈCÐOÐOÐOÐOÐOÐOÐOøøøøðPøøøs-   ‚AF ÁAF Â&C*F Æ
G&ÆA G!ÇG&Ç!G&z/companies/<int:company_id>c                 ó¸  — 	 t          j        d¦  «        }t          j        d¦  «        }|dk    r|| k    rt          ddi¦  «        dfS t          j                             | ¦  «        }|st          ddi¦  «        dfS t          d	|                     ¦   «         i¦  «        d
fS # t          $ r-}t          ddt          |¦  «        › �i¦  «        dfcY d}~S d}~ww xY w)u/   Obtener informaciÃ³n de una empresa especÃ­ficaÚ	user_roleÚ
company_idr   r&   z#No autorizado para ver esta empresaé“  úEmpresa no encontradaé”  r   r%   r'   r(   N)r   r*   r   r	   r,   r   r3   r4   )rR   rQ   Úuser_company_idr   r5   s        r   Úget_companyrW   V   s  € ðPÝ”K Ñ,Ô,ˆ	Ý!œ+ lÑ3Ô3ˆð ˜Ò%ð 	R¨/¸ZÒ*Gð 	RÝ˜GÐ%JÐKÑLÔLÈcÐQÐQå”-×#Ò# JÑ/Ô/ˆØð 	DÝ˜GÐ%<Ð=Ñ>Ô>ÀÐCÐCå˜	 7§?¢?Ñ#4Ô#4Ð5Ñ6Ô6¸Ð;Ð;øåð Pð Pð PÝ˜Ð!HÅÀAÁÄÐ!HÐ!HÐIÑJÔJÈCÐOÐOÐOÐOÐOÐOÐOøøøøðPøøøs*   ‚AB" Á	3B" Á=$B" Â"
CÂ,"CÃCÃCÚPUTc                 ó²  — 	 t          j        d¦  «        }t          j        d¦  «        }|dvrt          ddi¦  «        dfS |dk    r|| k    rt          ddi¦  «        dfS t          j                             | ¦  «        }|st          dd	i¦  «        d
fS t          j        ¦   «         }|                     d¦  «        r|                     d¦  «        |_        |                     d¦  «        r|                     d¦  «        |_        |                     d¦  «        r|                     d¦  «        |_	        |                     d¦  «        r|                     d¦  «        |_
        |dk    rÔ|                     d¦  «        r�t          j                             t          j        |                     d¦  «        k    t          j        | k    ¦  «                             ¦   «         }|rt          ddi¦  «        dfS |                     d¦  «        |_        |                     d¦  «        r|                     d¦  «        |_        t           j                              ¦   «          t          d|                     ¦   «         dœ¦  «        dfS # t&          $ rK}t           j                              ¦   «          t          ddt+          |¦  «        › �i¦  «        dfcY d}~S d}~ww xY w)u&   Actualizar informaciÃ³n de una empresarQ   rR   ©r   Ú
accountantr&   z"No autorizado para editar empresasrS   r[   z&No autorizado para editar esta empresarT   rU   r.   r<   r=   r>   r   r0   r:   r;   r?   z Empresa actualizada exitosamenterA   r%   r'   r(   N)r   r*   r   r	   r,   r   rD   r.   r<   r=   r>   r-   r0   ÚidrF   r?   r   rH   r   r3   rI   r4   )rR   rQ   rV   r   rJ   rM   r5   s          r   Úupdate_companyr]   l   sà  € ð4PÝ”K Ñ,Ô,ˆ	Ý!œ+ lÑ3Ô3ˆð Ð9Ð9ð 	QÝ˜GÐ%IÐJÑKÔKÈSÐPÐPà˜Ò$ð 	U¨¸JÒ)Fð 	UÝ˜GÐ%MÐNÑOÔOÐQTÐTÐTå”-×#Ò# JÑ/Ô/ˆØð 	DÝ˜GÐ%<Ð=Ñ>Ô>ÀÐCÐCåÔÑ!Ô!ˆð �8Š8�FÑÔð 	,ØŸ8š8 FÑ+Ô+ˆGŒLØ�8Š8�IÑÔð 	2Ø"Ÿhšh yÑ1Ô1ˆGŒOØ�8Š8�GÑÔð 	.Ø ŸHšH WÑ-Ô-ˆGŒMØ�8Š8�GÑÔð 	.Ø ŸHšH WÑ-Ô-ˆGŒMð ˜Ò%ð 	4Ø�xŠx˜‰Œð .å#*¤=×#7Ò#7Ý”K 4§8¢8¨E¡?¤?Ò2Ý”J *Ò,ñ$ô $÷ ’%‘'”'ð !ð $ð DÝ" G¨_Ð#=Ñ>Ô>ÀÐCÐCØ"Ÿhšh u™oœo�”à�xŠx˜Ñ!Ô!ð 4Ø!%§¢¨(Ñ!3Ô!3�”å
Œ
×ÒÑÔÐåØ9Ø—’Ñ(Ô(ð
ð 
ñ ô ð ðð 	øõ
 ð Pð Pð PÝ
Œ
×ÒÑÔÐÝ˜Ð!HÅÀAÁÄÐ!HÐ!HÐIÑJÔJÈCÐOÐOÐOÐOÐOÐOÐOøøøøðPøøøs8   ‚>J ÁJ Á 3J ÂEJ Ç4BJ Ê
KÊA KËKËKÚDELETEc                 ó$  — 	 t           j                             | ¦  «        }|st          ddi¦  «        dfS |j        rt          ddi¦  «        dfS |j        rt          ddi¦  «        dfS t          j                             |¦  «         t          j         	                    ¦   «          t          ddi¦  «        d	fS # t          $ rK}t          j                             ¦   «          t          dd
t          |¦  «        › �i¦  «        dfcY d}~S d}~ww xY w)z'Eliminar una empresa (solo super_admin)r&   rT   rU   z3No se puede eliminar empresa con usuarios asociadosr9   z3No se puede eliminar empresa con facturas asociadasrB   zEmpresa eliminada exitosamenter%   r'   r(   N)r	   r,   r*   r   ÚusersÚinvoicesr   r   ÚdeleterH   r3   rI   r4   )rR   r   r5   s      r   Údelete_companyrc   ¦   s>  € ð
PÝ”-×#Ò# JÑ/Ô/ˆØð 	DÝ˜GÐ%<Ð=Ñ>Ô>ÀÐCÐCð Œ=ð 	bÝ˜GÐ%ZÐ[Ñ\Ô\Ð^aÐaÐað Ôð 	bÝ˜GÐ%ZÐ[Ñ\Ô\Ð^aÐaÐaå
Œ
×Ò˜'Ñ"Ô"Ð"Ý
Œ
×ÒÑÔÐå˜	Ð#CÐDÑEÔEÀsÐJÐJøåð Pð Pð PÝ
Œ
×ÒÑÔÐÝ˜Ð!HÅÀAÁÄÐ!HÐ!HÐIÑJÔJÈCÐOÐOÐOÐOÐOÐOÐOøøøøðPøøøs0   ‚3B: ¶B: ÁB: Á*AB: Â:
DÃA D
ÄDÄ
Dz!/companies/<int:company_id>/usersc                 ó`  — 	 t          j        d¦  «        }t          j        d¦  «        }|dvrt          ddi¦  «        dfS |dk    r|| k    rt          ddi¦  «        dfS t          j                             | ¦  «        }|st          dd	i¦  «        d
fS t
          j                             | ¬¦  «                             ¦   «         }t          d„ |D ¦   «         |                     ¦   «         dœ¦  «        dfS # t          $ r-}t          ddt          |¦  «        › �i¦  «        dfcY d}~S d}~ww xY w)zObtener usuarios de una empresarQ   rR   rZ   r&   zNo autorizadorS   r[   z/No autorizado para ver usuarios de esta empresarT   rU   )rR   c                 ó6   — g | ]}|                      ¦   «         ‘ŒS r   r   )r   Úusers     r   r   z%get_company_users.<locals>.<listcomp>Ø   s    € Ð7Ð7Ð7¨�d—l’l‘n”nÐ7Ð7Ð7r    )r`   r   r%   r'   r(   N)r   r*   r   r	   r,   r   rE   Úallr   r3   r4   )rR   rQ   rV   r   r`   r5   s         r   Úget_company_usersrh   Á   s}  € ðPÝ”K Ñ,Ô,ˆ	Ý!œ+ lÑ3Ô3ˆð Ð9Ð9ð 	<Ý˜G _Ð5Ñ6Ô6¸Ð;Ð;à˜Ò$ð 	^¨¸JÒ)Fð 	^Ý˜GÐ%VÐWÑXÔXÐZ]Ð]Ð]å”-×#Ò# JÑ/Ô/ˆØð 	DÝ˜GÐ%<Ð=Ñ>Ô>ÀÐCÐCå”
×$Ò$°
Ð$Ñ;Ô;×?Ò?ÑAÔAˆåØ7Ð7°Ð7Ñ7Ô7Ø—’Ñ(Ô(ð
ð 
ñ ô ð ðð 	øõ
 ð Pð Pð PÝ˜Ð!HÅÀAÁÄÐ!HÐ!HÐIÑJÔJÈCÐOÐOÐOÐOÐOÐOÐOøøøøðPøøøs0   ‚>C6 ÁC6 Á 3C6 ÂA!C6 Ã6
D-Ä "D(Ä"D-Ä(D-N)Úflaskr   r   r   r   Úsrc.models.userr   r   Úsrc.models.companyr	   Úsrc.routes.authr
   r   Ú__name__Ú
company_bpÚrouter6   rO   rW   r]   rc   rh   r   r    r   ú<module>rp      sD  ðØ 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø $Ð $Ð $Ð $Ð $Ð $Ð $Ð $Ø &Ð &Ð &Ð &Ð &Ð &Ø 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6Ð 6àˆY�y (Ñ+Ô+€
à×Ò�,¨¨ÐÑ0Ô0ØØ€ˆmÑÔð Pð  Pñ Ôñ „ñ 1Ô0ð PðD ×Ò�,¨¨ÐÑ1Ô1ØØ€ˆmÑÔð$Pð $Pñ Ôñ „ñ 2Ô1ð$PðL ×ÒÐ/¸%¸ÐÑAÔAØðPð Pñ „ñ BÔAðPð( ×ÒÐ/¸%¸ÐÑAÔAØð6Pð 6Pñ „ñ BÔAð6Pðp ×ÒÐ/¸(¸ÐÑDÔDØØ€ˆmÑÔðPð Pñ Ôñ „ñ EÔDðPð0 ×ÒÐ5À¸wÐÑGÔGØðPð Pñ „ñ HÔGðPð Pð Pr    