§
    ‹Ajï>  ã                   ó  — d dl mZm Z  d dlmZ d dlmZ d dlmZmZ d dl	m
Z
mZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ  edei¬¦  «        Z G d„ deeej        ¦  «        Z G d„ deeej        ¦  «        Z G d„ dej        ¦  «        Z G d„ deeeej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ dej        ¦  «        Z G d„ deeeej        ¦  «        Z G d„ deeeej        ¦  «        Z  G d„ d eej        ¦  «        Z! G d!„ d"eej        ¦  «        Z" G d#„ d$ej        ¦  «        Z# G d%„ d&eej        ¦  «        Z$ G d'„ d(eeej        ¦  «        Z% G d)„ d*eeej        ¦  «        Z&d+S ),é    )ÚdateÚdatetime)Ú	UserMixin)Ú
SQLAlchemy)Úcheck_password_hashÚgenerate_password_hash)ÚROLE_LABELSÚ	ROLES_LOT)ÚProfileRoutingSession)ÚTEL_AFFICHAGE_INTERNATIONAL)ÚPublicIdMixin)ÚSoftDeleteMixin)ÚTimestampMixinÚclass_)Úsession_optionsc                   ó(  — e Zd ZdZe                     ej        d¬¦  «        Ze                     e                     d¦  «        ddd¬¦  «        Z	e                     e                     d¦  «        d¬¦  «        Z
e                     ej        dd¬	¦  «        Ze                     ej        dd¬	¦  «        Ze                     e                     d
¦  «        ed¬	¦  «        Ze                     ddd¬¦  «        Zdeddfd„Zdedefd„Zdee         fd„ZdS )ÚUserÚusersT©Úprimary_keyéP   F)ÚuniqueÚnullableÚindexé   ©r   ©Údefaultr   é   ÚUserCoproprieteÚuserúall, delete-orphan©Úback_populatesÚcascadeÚpasswordÚreturnNc                 ó.   — t          |¦  «        | _        d S ©N)r   Úpassword_hash©Úselfr&   s     ú//var/www/stessy.org/copro_gestion/app/models.pyÚset_passwordzUser.set_password!   s   € Ý3°HÑ=Ô=ˆÔÐÐó    c                 ó,   — t          | j        |¦  «        S r)   )r   r*   r+   s     r-   Úcheck_passwordzUser.check_password$   s   € Ý" 4Ô#5°xÑ@Ô@Ð@r/   c                 ó$   — d„ | j         D ¦   «         S )Nc                 ó   — g | ]	}|j         ‘Œ
S © )Úcopropriete_id)Ú.0Úucs     r-   ú
<listcomp>z3User.accessible_copropriete_ids.<locals>.<listcomp>(   s   € Ð>Ð>Ð> b�Ô!Ð>Ð>Ð>r/   )Úcoproprietes©r,   s    r-   Úaccessible_copropriete_idszUser.accessible_copropriete_ids'   s   € Ø>Ð>¨DÔ,=Ð>Ñ>Ô>Ð>r/   )Ú__name__Ú
__module__Ú__qualname__Ú__tablename__ÚdbÚColumnÚIntegerÚidÚStringÚusernamer*   ÚBooleanÚ	is_activeÚis_adminr   Útel_affichageÚrelationshipr9   Ústrr.   Úboolr1   ÚlistÚintr;   r4   r/   r-   r   r      sY  € € € € € Ø€Mà	�Š�2”:¨4ˆÑ	0Ô	0€BØ�yŠy˜Ÿš 2™œ¨t¸eÈ4ˆyÑPÔP€HØ—I’I˜bŸiši¨™nœn°u�IÑ=Ô=€MØ—	’	˜"œ*¨d¸U�	ÑCÔC€IØ�yŠy˜œ¨U¸UˆyÑCÔC€HØ—I’IØ
�	Š	�"‰ŒÐ:ÀUð ñ ô €Mð —?’?Ø¨&Ð:Nð #ñ ô €Lð> Sð >¨Tð >ð >ð >ð >ðA sð A¨tð Að Að Að Að?¨D°¬Ið ?ð ?ð ?ð ?ð ?ð ?r/   r   c                   óp  — e Zd ZdZe                     ej        d¬¦  «        Ze                     e                     d¦  «        d¬¦  «        Z	e                     ej
        d¬¦  «        Ze                     ej
        d¬¦  «        Ze                     ej        ej        ¬¦  «        Ze                     d	d
d¬¦  «        Ze                     dd
d¬¦  «        Ze                     dd
d¬¦  «        Ze                     dd
d¬¦  «        Ze                     dd
d¬¦  «        Ze                     dd
d¬¦  «        ZdS )ÚCoproprieter9   Tr   éÈ   Fr   Ú ©r   r    Úcoproprieter"   r#   ÚPersonneÚLotÚMilliemeTypeÚ
ReleveTypeÚLotTypeN)r<   r=   r>   r?   r@   rA   rB   rC   rD   ÚnomÚTextÚadresseÚnotesÚDateTimer   ÚutcnowÚ
created_atrJ   r   Ú	personnesÚlotsÚmillieme_typesÚreleve_typesÚ	lot_typesr4   r/   r-   rP   rP   +   sZ  € € € € € Ø"€Mà	�Š�2”:¨4ˆÑ	0Ô	0€BØ
�)Š)�B—I’I˜c‘N”N¨Uˆ)Ñ
3Ô
3€CØ�iŠi˜œ¨ˆiÑ,Ô,€GØ�IŠI�b”g rˆIÑ*Ô*€EØ—’˜2œ;°´�Ñ@Ô@€Jà�OŠOØ¨-ÐAUð ñ ô €Eð —’Ø =Ð:Nð  ñ ô €Ið �?Š?Ø˜mÐ5Ið ñ ô €Dð —_’_Ø }Ð>Rð %ñ ô €Nð —?’?Ø ]Ð<Pð #ñ ô €Lð —’Ø -Ð9Mð  ñ ô €I€I€Ir/   rP   c                   ó˜  — e Zd ZdZe                     ej        d¬¦  «        Ze                     ej        e                     d¦  «        d¬¦  «        Z	e                     ej        e                     d¦  «        d¬¦  «        Z
e                     dd	¬
¦  «        Ze                     dd¬
¦  «        Ze                     ddd¬¦  «        fZdS )r    Úuser_coproprieteTr   zusers.idFr   úcoproprietes.idr   r9   ©r$   rP   r   Úuser_idr5   Úuq_user_copropriete©ÚnameN)r<   r=   r>   r?   r@   rA   rB   rC   Ú
ForeignKeyrj   r5   rJ   r!   rT   ÚUniqueConstraintÚ__table_args__r4   r/   r-   r    r    H   sÌ   € € € € € Ø&€Mà	�Š�2”:¨4ˆÑ	0Ô	0€BØ�iŠi˜œ
 B§M¢M°*Ñ$=Ô$=ÈˆiÑNÔN€GØ—Y’YØ
Œ
�B—M’MÐ"3Ñ4Ô4¸uð ñ ô €Nð �?Š?˜6°.ˆ?ÑAÔA€DØ—/’/ -À�/ÑHÔH€Kð 	×Ò˜IÐ'7Ð>SÐÑTÔTð€N€N€Nr/   r    c                   ó¬  — e Zd ZdZe                     ej        d¬¦  «        Ze                     ej        e                     d¦  «        dd¬¦  «        Z	e                     e 
                    d¦  «        d¬	¦  «        Ze                     e 
                    d
¦  «        d¬¦  «        Ze                     e 
                    d
¦  «        d¬	¦  «        Ze                     e 
                    d¦  «        d¬	¦  «        Ze                     ej        d¬	¦  «        Ze                     dd¬¦  «        Ze                     ddd¬¦  «        Ze                     ddd¬¦  «        Ze                     ddd¬¦  «        Ze                     dd¬¦  «        Zedefd„¦   «         Zedefd„¦   «         Zedefd„¦   «         Zdeded         fd„Zdedee         fd„ZdS )rU   ra   Tr   rh   F©r   r   r   rR   rS   éx   r   rQ   rP   ri   Ú	TelephoneÚpersonner"   r#   ÚEmailÚAdresseÚLotPersonneRoler'   c                 óŠ   — | j         r| j         S d„ | j        | j        fD ¦   «         }|rd                     |¦  «        n| j        S )Nc                 ó   — g | ]}|¯|‘ŒS r4   r4   ©r6   Úps     r-   r8   z(Personne.nom_complet.<locals>.<listcomp>v   s   € Ð9Ð9Ð9�q°qÐ9�Ð9Ð9Ð9r/   ú )Úraison_socialeÚprenomrZ   Újoin©r,   Úpartss     r-   Únom_completzPersonne.nom_completr   sM   € àÔð 	'ØÔ&Ð&Ø9Ð9˜Tœ[¨$¬(Ð3Ð9Ñ9Ô9ˆØ"'Ð5ˆs�xŠx˜‰Œˆ¨T¬XÐ5r/   c                 ó    — | j         rAd                     d„ | j        | j        fD ¦   «         ¦  «        }|r| j         › d|› d�n| j         S | j        S )Nr}   c              3   ó   K  — | ]}|¯|V — Œ	d S r)   r4   r{   s     r-   ú	<genexpr>z+Personne.libelle_affiche.<locals>.<genexpr>|   s'   è è € ÐGÐG QÀQÐG˜qÐGÐGÐGÐGÐGÐGr/   ú (ú))r~   r€   r   rZ   rƒ   )r,   Úcontacts     r-   Úlibelle_affichezPersonne.libelle_affichey   sg   € àÔð 	\Ø—h’hÐGÐG¨4¬;¸¼Ð*AÐGÑGÔGÑGÔGˆGØ;BÐ[�dÔ)Ð7Ð7¨WÐ7Ð7Ð7Ð7ÈÔH[Ð[ØÔÐr/   c                 óî  — | j         r•g }| j        r|                     | j        ¦  «         |                     d„ | j        | j        fD ¦   «         ¦  «         d                     |¦  «        }|r| j         › d|› d�S | j        › d| j         › �                     ¦   «         S | j        r| j        gng }|                     d„ | j        | j        fD ¦   «         ¦  «         |rd                     |¦  «        n| j        S )uI   LibellÃ© complet avec civilitÃ© devant le contact, pas la raison sociale.c              3   ó   K  — | ]}|¯|V — Œ	d S r)   r4   r{   s     r-   r†   z)Personne.titre_affiche.<locals>.<genexpr>‡   s'   è è € Ð IÐ I qÀqÐ I Ð IÐ IÐ IÐ IÐ IÐ Ir/   r}   r‡   rˆ   c              3   ó   K  — | ]}|¯|V — Œ	d S r)   r4   r{   s     r-   r†   z)Personne.titre_affiche.<locals>.<genexpr>�   s'   è è € Ð=Ð=˜1¸1Ð=�QÐ=Ð=Ð=Ð=Ð=Ð=r/   )r~   ÚciviliteÚappendÚextendr   rZ   r€   Ústrip)r,   Úcontact_partsr‰   r‚   s       r-   Útitre_affichezPersonne.titre_affiche€   s  € ð Ôð 	DØˆMØŒ}ð 4Ø×$Ò$ T¤]Ñ3Ô3Ð3Ø× Ò Ð IÐ I¨T¬[¸$¼(Ð,CÐ IÑ IÔ IÑIÔIÐIØ—h’h˜}Ñ-Ô-ˆGØð <ØÔ-Ð;Ð;°Ð;Ð;Ð;Ð;Ø”mÐ;Ð; dÔ&9Ð;Ð;×AÒAÑCÔCÐCØ#'¤=Ð8�”��°bˆØ�ŠÐ=Ð= ¤¨d¬hÐ 7Ð=Ñ=Ô=Ñ=Ô=Ð=Ø"'Ð5ˆs�xŠx˜‰Œˆ¨T¬XÐ5r/   r5   c                 ó*   ‡— ˆfd„| j         D ¦   «         S )Nc                 óB   •— g | ]}|j         r|j        j        ‰k    ¯|‘ŒS r4   )Ú	est_actifÚlotr5   )r6   Úrr5   s     €r-   r8   z+Personne.roles_en_cours.<locals>.<listcomp>’   s?   ø€ ð 
ð 
ð 
àØŒ{ð
ð  !œuÔ3°~ÒEÐEð àEÐEÐEr/   )Ú	roles_lot)r,   r5   s    `r-   Úroles_en_courszPersonne.roles_en_cours‘   s0   ø€ ð
ð 
ð 
ð 
à”^ð
ñ 
ô 
ð 	
r/   c                 óh   ‡— d„ |                       |¦  «        D ¦   «         Šˆfd„t          D ¦   «         S )uQ   LibellÃ©s de rÃ´les distincts en cours (ordre fixe : propriÃ©taire, occupantâ€¦).c                 ó   — h | ]	}|j         ’Œ
S r4   ©Úrole©r6   r˜   s     r-   ú	<setcomp>z2Personne.roles_uniques_en_cours.<locals>.<setcomp>š   s   € ÐFÐFÐF˜Q�!”&ÐFÐFÐFr/   c                 ó2   •— g | ]}|‰v ¯t           |         ‘ŒS r4   )r	   )r6   r˜   Úactifss     €r-   r8   z3Personne.roles_uniques_en_cours.<locals>.<listcomp>›   s"   ø€ ÐAÐAÐA 1°Q¸&°[°[•˜A”°[°[°[r/   )rš   r
   )r,   r5   r¢   s     @r-   Úroles_uniques_en_courszPersonne.roles_uniques_en_cours˜   s>   ø€ àFÐF $×"5Ò"5°nÑ"EÔ"EÐFÑFÔFˆØAÐAÐAÐA­	ÐAÑAÔAÐAr/   N) r<   r=   r>   r?   r@   rA   rB   rC   rn   r5   rD   rŽ   rZ   r   r~   r[   r]   rJ   rT   Ú
telephonesÚemailsÚadressesr™   ÚpropertyrK   rƒ   rŠ   r“   rN   rM   rš   r£   r4   r/   r-   rU   rU   Y   sO  € € € € € Ø€Mà	�Š�2”:¨4ˆÑ	0Ô	0€BØ—Y’YØ
Œ
�B—M’MÐ"3Ñ4Ô4¸uÈDð ñ ô €Nð �yŠy˜Ÿš 2™œ°ˆyÑ3Ô3€HØ
�)Š)�B—I’I˜c‘N”N¨Uˆ)Ñ
3Ô
3€CØ�YŠY�r—y’y ‘~”~¨rˆYÑ2Ô2€FØ—Y’Y˜rŸyšy¨™~œ~°r�YÑ:Ô:€NØ�IŠI�b”g rˆIÑ*Ô*€Eà—/’/ -À�/ÑLÔL€KØ—’Ø JÐ8Lð !ñ ô €Jð �_Š_Ø 
Ð4Hð ñ ô €Fð �ŠØ *Ð6Jð ñ ô €Hð —’Ð 1À*�ÑMÔM€Iàð6˜Sð 6ð 6ð 6ñ „Xð6ð ð  ð  ð  ð  ñ „Xð ð ð6˜sð 6ð 6ð 6ñ „Xð6ð 
¨Sð 
°TÐ:KÔ5Lð 
ð 
ð 
ð 
ðB°Sð B¸TÀ#¼Yð Bð Bð Bð Bð Bð Br/   rU   c                   ó‚  — e Zd ZdZe                     ej        d¬¦  «        Ze                     ej        e                     d¦  «        dd¬¦  «        Z	e                     e 
                    d¦  «        d¬	¦  «        Ze                     e 
                    d
¦  «        d¬¦  «        Ze                     dd¬¦  «        ZdS )rt   r¤   Tr   úpersonnes.idFrr   é2   rR   rS   é(   r   rU   ri   N)r<   r=   r>   r?   r@   rA   rB   rC   rn   Úpersonne_idrD   ÚlibelleÚnumerorJ   ru   r4   r/   r-   rt   rt   ž   s®   € € € € € Ø €Mà	�Š�2”:¨4ˆÑ	0Ô	0€BØ—)’)Ø
Œ
�B—M’M .Ñ1Ô1¸EÈð ñ ô €Kð �iŠi˜Ÿ	š	 "™œ¨rˆiÑ2Ô2€GØ�YŠY�r—y’y ‘}”}¨uˆYÑ5Ô5€Fà�Š˜z¸,ˆÑGÔG€H€H€Hr/   rt   c                   ó‚  — e Zd ZdZe                     ej        d¬¦  «        Ze                     ej        e                     d¦  «        dd¬¦  «        Z	e                     e 
                    d¦  «        d¬	¦  «        Ze                     e 
                    d
¦  «        d¬¦  «        Ze                     dd¬¦  «        ZdS )rv   r¥   Tr   r©   Frr   rª   rR   rS   rQ   r   rU   ri   N)r<   r=   r>   r?   r@   rA   rB   rC   rn   r¬   rD   r­   r\   rJ   ru   r4   r/   r-   rv   rv   «   s®   € € € € € Ø€Mà	�Š�2”:¨4ˆÑ	0Ô	0€BØ—)’)Ø
Œ
�B—M’M .Ñ1Ô1¸EÈð ñ ô €Kð �iŠi˜Ÿ	š	 "™œ¨rˆiÑ2Ô2€GØ�iŠi˜Ÿ	š	 #™œ°ˆiÑ7Ô7€Gà�Š˜z¸(ˆÑCÔC€H€H€Hr/   rv   c                   óš  — e Zd ZdZe                     ej        d¬¦  «        Ze                     ej        e                     d¦  «        dd¬¦  «        Z	e                     e 
                    d¦  «        d¬	¦  «        Ze                     e 
                    d
¦  «        d¬	¦  «        Ze                     e 
                    d
¦  «        d¬	¦  «        Ze                     e 
                    d¦  «        d¬	¦  «        Ze                     e 
                    d¦  «        d¬	¦  «        Ze                     dd¬¦  «        Zedefd„¦   «         ZdS )rw   r¦   Tr   r©   Frr   rª   rR   rS   rQ   é   éd   rU   ri   r'   c                 ó    — | j         | j        | j        › d| j        › �                     ¦   «         g}d                     d„ |D ¦   «         ¦  «        S )Nr}   z, c              3   ó   K  — | ]}|¯|V — Œ	d S r)   r4   r{   s     r-   r†   z!Adresse.resume.<locals>.<genexpr>Ê   s'   è è € Ð/Ð/˜q¨QÐ/˜Ð/Ð/Ð/Ð/Ð/Ð/r/   )Úligne1Úligne2Úcode_postalÚviller‘   r€   r�   s     r-   ÚresumezAdresse.resumeÇ   sR   € à”˜dœk¨dÔ.>Ð+MÐ+MÀÄÐ+MÐ+M×+SÒ+SÑ+UÔ+UÐVˆØ�yŠyÐ/Ð/ EÐ/Ñ/Ô/Ñ/Ô/Ð/r/   N)r<   r=   r>   r?   r@   rA   rB   rC   rn   r¬   rD   r­   rµ   r¶   r·   r¸   rJ   ru   r§   rK   r¹   r4   r/   r-   rw   rw   ¸   s6  € € € € € Ø€Mà	�Š�2”:¨4ˆÑ	0Ô	0€BØ—)’)Ø
Œ
�B—M’M .Ñ1Ô1¸EÈð ñ ô €Kð �iŠi˜Ÿ	š	 "™œ¨rˆiÑ2Ô2€GØ�YŠY�r—y’y ‘~”~¨rˆYÑ2Ô2€FØ�YŠY�r—y’y ‘~”~¨rˆYÑ2Ô2€FØ—)’)˜BŸIšI b™MœM°2�)Ñ6Ô6€KØ�IŠI�b—i’i ‘n”n¨bˆIÑ1Ô1€Eà�Š˜z¸*ˆÑEÔE€Hàð0˜ð 0ð 0ð 0ñ „Xð0ð 0ð 0r/   rw   c                   óN  — e Zd ZdZe                     ej        d¬¦  «        Ze                     ej        e                     d¦  «        dd¬¦  «        Z	e                     e 
                    d¦  «        d¬	¦  «        Ze                     e 
                    d¦  «        d¬	¦  «        Ze                     e 
                    d
¦  «        d¬	¦  «        Ze                     e 
                    d¦  «        d¬	¦  «        Ze                     e 
                    d¦  «        d¬	¦  «        Ze                     e 
                    d¦  «        d¬	¦  «        Ze                     e 
                    d¦  «        d¬	¦  «        Ze                     ej        e                     dd¬¦  «        dd¬¦  «        Ze                     ej        d¬¦  «        Ze                     e 
                    d¦  «        d¬	¦  «        Ze                     e 
                    d¦  «        d¬	¦  «        Ze                     e 
                    d¦  «        d¬	¦  «        Ze                     ej        d¬	¦  «        Ze                     dd¬¦  «        Ze                     dd¬¦  «        Ze                     ddd¬¦  «        Ze                     ddd¬¦  «        Ze                     ddd¬¦  «        Ze de!fd„¦   «         Z"de#d         fd„Z$d!de!dz  de#d         fd„Z%de&e'e#d         f         fd„Z(de#d         fd „Z)dS )"rV   rb   Tr   rh   Frr   é   rR   rS   rª   rQ   zlot_types.idzSET NULL)Úondeleter   rP   ri   rY   rx   r—   r"   r#   ÚLotMilliemesÚCompteurr'   c                 ód  — g }| j         r|                     | j         ¦  «         nP| j        s| j        rBd                     d„ | j        | j        fD ¦   «         ¦  «        }|r|                     |¦  «         | j        r|                     d| j        › �¦  «         |rd                     |¦  «        ndS )Nr}   c              3   ó   K  — | ]}|¯|V — Œ	d S r)   r4   r{   s     r-   r†   zLot.libelle.<locals>.<genexpr>ö   s'   è è € ÐCÐC ÀÐC˜!ÐCÐCÐCÐCÐCÐCr/   zlot u    â€” u   Lot sans libellÃ©)Údesignationr�   ÚetageÚporter€   Ú	lot_copro)r,   r‚   Úeps      r-   r­   zLot.libelleð   sÄ   € àˆØÔð 	!Ø�LŠL˜Ô)Ñ*Ô*Ð*Ð*ØŒZð 	!˜4œ:ð 	!Ø—’ÐCÐC d¤j°$´*Ð%=ÐCÑCÔCÑCÔCˆBØð !Ø—’˜RÑ Ô Ð ØŒ>ð 	2Ø�LŠLÐ0 ¤Ð0Ð0Ñ1Ô1Ð1Ø&+ÐDˆw�|Š|˜EÑ"Ô"Ð"Ð1DÐDr/   c                 ó$   — d„ | j         D ¦   «         S )Nc                 ó    — g | ]}|j         ¯	|‘ŒS r4   ©r–   rŸ   s     r-   r8   z%Lot.roles_actuels.<locals>.<listcomp>þ   s   € Ð5Ð5Ð5�a¨¬Ð5�Ð5Ð5Ð5r/   ©Úrolesr:   s    r-   Úroles_actuelszLot.roles_actuelsý   s   € Ø5Ð5˜4œ:Ð5Ñ5Ô5Ð5r/   Nrž   c                 óJ   ‡— d„ | j         D ¦   «         }‰rˆfd„|D ¦   «         }|S )Nc                 ó    — g | ]}|j         ¯	|‘ŒS r4   rÈ   rŸ   s     r-   r8   z$Lot.roles_actifs.<locals>.<listcomp>  s   € Ð7Ð7Ð7˜¨1¬;Ð7�!Ð7Ð7Ð7r/   c                 ó*   •— g | ]}|j         ‰k    ¯|‘ŒS r4   r�   )r6   r˜   rž   s     €r-   r8   z$Lot.roles_actifs.<locals>.<listcomp>  s    ø€ Ð:Ð:Ð:˜A¨1¬6°Tª>¨>�a¨>¨>¨>r/   rÉ   )r,   rž   r¢   s    ` r-   Úroles_actifszLot.roles_actifs   s>   ø€ Ø7Ð7˜TœZÐ7Ñ7Ô7ˆØð 	;Ø:Ð:Ð:Ð: Ð:Ñ:Ô:ˆFØˆr/   c                 óª   — i }t          | j        d„ ¬¦  «        D ]8}|j        sŒ
|                     |j        g ¦  «                             |¦  «         Œ9|S )Nc                 ó(   — | j         j        | j        fS r)   )ru   rZ   rž   )r˜   s    r-   ú<lambda>z(Lot.roles_par_personne.<locals>.<lambda>  s   € °a´j´nÀaÄfÐ5M€ r/   )Úkey)ÚsortedrÊ   Úest_actif_enregistrementÚ
setdefaultr¬   r�   )r,   Úgroupedrž   s      r-   Úroles_par_personnezLot.roles_par_personne  sh   € Ø46ˆÝ˜4œ:Ð+MÐ+MÐNÑNÔNð 	Bð 	BˆDØÔ0ð ØØ×Ò˜tÔ/°Ñ4Ô4×;Ò;¸DÑAÔAÐAÐAØˆr/   c                 ó$   — d„ | j         D ¦   «         S )Nc                 ó.   — g | ]}|j         ¯	|j        ¯|‘ŒS r4   )rÕ   Úactif)r6   Úcs     r-   r8   z(Lot.compteurs_actifs.<locals>.<listcomp>  s'   € ÐTÐTÐT�a¨QÔ-GÐTÈAÌGÐT�ÐTÐTÐTr/   )Ú	compteursr:   s    r-   Úcompteurs_actifszLot.compteurs_actifs  s   € ØTÐT˜4œ>ÐTÑTÔTÐTr/   r)   )*r<   r=   r>   r?   r@   rA   rB   rC   rn   r5   rD   Ú
lot_syndicrÄ   Únumero_fiscalrÁ   rÂ   rÃ   Úetage_porteÚlot_type_idÚFloatÚsurfaceÚcaveÚbalÚ	milliemesr[   r]   rJ   rT   Útype_lotrÊ   Úmilliemes_valeursrÝ   r§   rK   r­   rM   rË   rÏ   ÚdictrN   rØ   rÞ   r4   r/   r-   rV   rV   Í   s\  € € € € € Ø€Mà	�Š�2”:¨4ˆÑ	0Ô	0€BØ—Y’YØ
Œ
�B—M’MÐ"3Ñ4Ô4¸uÈDð ñ ô €Nð —’˜2Ÿ9š9 R™=œ=°"�Ñ5Ô5€JØ—	’	˜"Ÿ)š) B™-œ-°�	Ñ4Ô4€IØ—I’I˜bŸiši¨™mœm°R�IÑ8Ô8€MØ—)’)˜BŸIšI c™NœN°B�)Ñ7Ô7€KØ�IŠI�b—i’i ‘m”m¨RˆIÑ0Ô0€EØ�IŠI�b—i’i ‘m”m¨RˆIÑ0Ô0€EØ—)’)˜BŸIšI b™MœM°2�)Ñ6Ô6€KØ—)’)Ø
Œ
�B—M’M .¸:�MÑFÔFÐQUÐ]að ñ ô €Kð �iŠi˜œ¨4ˆiÑ0Ô0€GØ�9Š9�R—Y’Y˜r‘]”]¨Bˆ9Ñ/Ô/€DØ
�)Š)�B—I’I˜b‘M”M¨2ˆ)Ñ
.Ô
.€CØ—	’	˜"Ÿ)š) B™-œ-°�	Ñ4Ô4€IØ�IŠI�b”g rˆIÑ*Ô*€Eà—/’/ -À�/ÑGÔG€KØ�Š˜y¸ˆÑ@Ô@€HØ�OŠOØ¨%Ð9Mð ñ ô €Eð ŸšØ uÐ6Jð (ñ ô Ðð —’Ø 5Ð2Fð  ñ ô €Ið ð
E˜ð 
Eð 
Eð 
Eñ „Xð
Eð6˜tÐ$5Ô6ð 6ð 6ð 6ð 6ðð   t¡ð °tÐ<MÔ7Nð ð ð ð ð D¨¨dÐ3DÔ.EÐ)EÔ$Fð ð ð ð ðU $ zÔ"2ð Uð Uð Uð Uð Uð Ur/   rV   c                   óž  — e Zd ZdZe                     ej        d¬¦  «        Ze                     ej        e                     d¦  «        dd¬¦  «        Z	e                     ej        e                     d¦  «        dd¬¦  «        Z
e                     e                     d¦  «        d¬	¦  «        Ze                     ej        d¬	¦  «        Ze                     ej        d¬	¦  «        Ze                     ej        d
¬¦  «        Ze                     dd¬¦  «        Ze                     dd¬¦  «        Zedefd„¦   «         Zedefd„¦   «         ZdS )rx   Úlot_personne_rolesTr   úlots.idFrr   r©   r   r   rR   rS   rV   rÊ   ri   rU   r™   r'   c                 ó"   — | j         o| j        d u S r)   )rÕ   Údate_finr:   s    r-   r–   zLotPersonneRole.est_actif"  s   € àÔ,ÐF°´À$Ð1FÐFr/   c                 ó@   — t          j        | j        | j        ¦  «        S r)   )r	   Úgetrž   r:   s    r-   Úrole_libellezLotPersonneRole.role_libelle&  s   € åŒ˜tœy¨$¬)Ñ4Ô4Ð4r/   N)r<   r=   r>   r?   r@   rA   rB   rC   rn   Úlot_idr¬   rD   rž   ÚDateÚ
date_debutrï   r[   r]   rJ   r—   ru   r§   rL   r–   rK   rò   r4   r/   r-   rx   rx     sh  € € € € € Ø(€Mà	�Š�2”:¨4ˆÑ	0Ô	0€BØ�YŠY�r”z 2§=¢=°Ñ#;Ô#;ÀeÐSWˆYÑXÔX€FØ—)’)Ø
Œ
�B—M’M .Ñ1Ô1¸EÈð ñ ô €Kð �9Š9�R—Y’Y˜r‘]”]¨Uˆ9Ñ3Ô3€DØ—’˜2œ7¨T�Ñ2Ô2€JØ�yŠy˜œ¨4ˆyÑ0Ô0€HØ�IŠI�b”g rˆIÑ*Ô*€Eà
�/Š/˜%°ˆ/Ñ
8Ô
8€CØ�Š˜z¸+ˆÑFÔF€HàðG˜4ð Gð Gð Gñ „XðGð ð5˜cð 5ð 5ð 5ñ „Xð5ð 5ð 5r/   rx   c                   ó”  — e Zd ZdZe                     ej        d¬¦  «        Ze                     ej        e                     d¦  «        dd¬¦  «        Z	e                     e 
                    d¦  «        d¬¦  «        Ze                     ej        d	¬
¦  «        Ze                     dd¬¦  «        Ze                     dd¬¦  «        ZdS )rY   re   Tr   rh   Frr   r²   r   r   rS   rP   ri   rV   rè   N)r<   r=   r>   r?   r@   rA   rB   rC   rn   r5   rD   r­   ÚordrerJ   rT   rb   r4   r/   r-   rY   rY   +  s¼   € € € € € Ø€Mà	�Š�2”:¨4ˆÑ	0Ô	0€BØ—Y’YØ
Œ
�B—M’MÐ"3Ñ4Ô4¸uÈDð ñ ô €Nð �iŠi˜Ÿ	š	 #™œ°ˆiÑ7Ô7€GØ�IŠI�b”j¨!ˆIÑ,Ô,€Eà—/’/ -À�/ÑLÔL€KØ�?Š?˜5°ˆ?Ñ<Ô<€D€D€Dr/   rY   c                   ó”  — e Zd ZdZe                     ej        d¬¦  «        Ze                     ej        e                     d¦  «        dd¬¦  «        Z	e                     e 
                    d¦  «        d¬¦  «        Ze                     ej        d	¬
¦  «        Ze                     dd¬¦  «        Ze                     dd¬¦  «        ZdS )rW   rc   Tr   rh   Frr   r²   r   r   rS   rP   ri   r½   Útype_milliemeN)r<   r=   r>   r?   r@   rA   rB   rC   rn   r5   rD   r­   r÷   rJ   rT   Úvaleursr4   r/   r-   rW   rW   9  s½   € € € € € Ø$€Mà	�Š�2”:¨4ˆÑ	0Ô	0€BØ—Y’YØ
Œ
�B—M’MÐ"3Ñ4Ô4¸uÈDð ñ ô €Nð �iŠi˜Ÿ	š	 #™œ°ˆiÑ7Ô7€GØ�IŠI�b”j¨!ˆIÑ,Ô,€Eà—/’/ -Ð@P�/ÑQÔQ€KØ�oŠo˜n¸_ˆoÑMÔM€G€G€Gr/   rW   c                   óð  — e Zd ZdZe                     ej        d¬¦  «        Ze                     ej        e                     d¦  «        dd¬¦  «        Z	e                     ej        e                     d¦  «        dd¬¦  «        Z
e                     e                     d¦  «        d	¬
¦  «        Ze                     dd¬¦  «        Ze                     dd¬¦  «        Ze                     ddd¬¦  «        fZdS )r½   Úlot_milliemesTr   rí   Frr   zmillieme_types.idrª   rR   rS   rV   ré   ri   rW   rú   ró   Útype_idÚuq_lot_milliemes_typerl   N)r<   r=   r>   r?   r@   rA   rB   rC   rn   ró   rý   rD   ÚvaleurrJ   r—   rù   ro   rp   r4   r/   r-   r½   r½   G  sð   € € € € € Ø#€Mà	�Š�2”:¨4ˆÑ	0Ô	0€BØ�YŠY�r”z 2§=¢=°Ñ#;Ô#;ÀeÐSWˆYÑXÔX€FØ�iŠiØ
Œ
�B—M’MÐ"5Ñ6Ô6ÀÈdð ñ ô €Gð �YŠY�r—y’y ‘}”}¨bˆYÑ1Ô1€Fà
�/Š/˜%Ð0Cˆ/Ñ
DÔ
D€CØ—O’O NÀ9�OÑMÔM€Mð 	×Ò˜H iÐ6MÐÑNÔNð€N€N€Nr/   r½   c                   óè  — e Zd ZdZe                     ej        d¬¦  «        Ze                     ej        e                     d¦  «        dd¬¦  «        Z	e                     e 
                    d¦  «        d¬¦  «        Ze                     e 
                    d	¦  «        d
¬¦  «        Ze                     ej        d¬¦  «        Ze                     dd¬¦  «        Ze                     dd¬¦  «        ZdS )rX   rd   Tr   rh   Frr   r²   r   r   rR   rS   r   rP   ri   r¾   Útype_releveN)r<   r=   r>   r?   r@   rA   rB   rC   rn   r5   rD   r­   Úuniter÷   rJ   rT   rÝ   r4   r/   r-   rX   rX   Y  sÛ   € € € € € Ø"€Mà	�Š�2”:¨4ˆÑ	0Ô	0€BØ—Y’YØ
Œ
�B—M’MÐ"3Ñ4Ô4¸uÈDð ñ ô €Nð �iŠi˜Ÿ	š	 #™œ°ˆiÑ7Ô7€GØ�IŠI�b—i’i ‘m”m¨RˆIÑ0Ô0€EØ�IŠI�b”j¨!ˆIÑ,Ô,€Eà—/’/ -À�/ÑOÔO€KØ—’ 
¸=�ÑIÔI€I€I€Ir/   rX   c                   ó\  — e Zd ZdZe                     ej        d¬¦  «        Ze                     ej        e                     d¦  «        dd¬¦  «        Z	e                     ej        e                     d¦  «        dd¬¦  «        Z
e                     e                     d¦  «        d	¬
¦  «        Ze                     e                     d¦  «        d	¬
¦  «        Ze                     e                     d¦  «        d	¬
¦  «        Ze                     ej        d¬¦  «        Ze                     ej        d¬¦  «        Ze                     ej        dd¬¦  «        Ze                     dd¬¦  «        Ze                     dd¬¦  «        Ze                     ddd¬¦  «        Zedefd„¦   «         ZdS )r¾   rÝ   Tr   rí   Frr   zreleve_types.idr   rR   rS   rª   r²   r   r   rV   ri   rX   ÚReleveÚcompteurr"   r#   r'   c                 óv   — | j         r| j         j        S dddœ}|                     | j        | j        pd¦  «        S )Nz
Eau froidez
Eau chaude)Ú
eau_froideÚ
eau_chaudeu   RelevÃ©)r  r­   rñ   Útype_compteur)r,   Úlegacys     r-   Útype_libellezCompteur.type_libelle}  sE   € àÔð 	,ØÔ#Ô+Ð+Ø ,¸LÐIÐIˆØ�zŠz˜$Ô,¨dÔ.@Ð.MÀIÑNÔNÐNr/   N)r<   r=   r>   r?   r@   rA   rB   rC   rn   ró   Úreleve_type_idrD   r	  r®   Úemplacementrô   Údate_installationrï   rF   rÛ   rJ   r—   r  Úrelevesr§   rK   r  r4   r/   r-   r¾   r¾   h  s§  € € € € € Ø€Mà	�Š�2”:¨4ˆÑ	0Ô	0€BØ�YŠY�r”z 2§=¢=°Ñ#;Ô#;ÀeÐSWˆYÑXÔX€FØ—Y’YØ
Œ
�B—M’MÐ"3Ñ4Ô4¸tÈ4ð ñ ô €Nð —I’I˜bŸiši¨™mœm°R�IÑ8Ô8€MØ�YŠY�r—y’y ‘}”}¨bˆYÑ1Ô1€FØ—)’)˜BŸIšI c™NœN°B�)Ñ7Ô7€KØŸ	š	 "¤'°D˜	Ñ9Ô9ÐØ�yŠy˜œ¨4ˆyÑ0Ô0€HØ�IŠI�b”j¨$¸ˆIÑ?Ô?€Eà
�/Š/˜%°ˆ/Ñ
<Ô
<€CØ—/’/ ,¸{�/ÑKÔK€KØ�oŠoØ Ð5Ið ñ ô €Gð ðO˜cð Oð Oð Oñ „XðOð Oð Or/   r¾   c                   óâ  — e Zd ZdZe                     ej        d¬¦  «        Ze                     ej        e                     d¦  «        dd¬¦  «        Z	e                     ej
        dej        ¬¦  «        Ze                     ej        d¬¦  «        Ze                     ej        d	¬
¦  «        Ze                     ej        ej        ¬
¦  «        Ze                     dd¬¦  «        Zdedz  fd„ZdS )r  r  Tr   zcompteurs.idFrr   )r   r   r   rR   rS   r¾   ri   r'   Nc                 óŠ  — t                                ¦   «                              t           j        | j        k    t           j        | j        k     ¦  «                             t           j                             ¦   «         t           j                             ¦   «         ¦  «                             ¦   «         }|r| j	        |j	        z
  S d S r)   )
r  Úquery_actifsÚfilterÚcompteur_idÚdate_releveÚorder_byÚdescrC   ÚfirstÚindex_valeur)r,   Ú	precedents     r-   Úconsommation_depuis_precedentz$Releve.consommation_depuis_precedent“  s–   € å×ÒÑ!Ô!ßŠVÝÔ" dÔ&6Ò6ÝÔ" TÔ%5Ò5ñô ÷ ŠX•fÔ(×-Ò-Ñ/Ô/µ´·²Ñ1AÔ1AÑBÔBßŠU‰WŒWð 	ð ð 	>ØÔ$ yÔ'=Ñ=Ð=Øˆtr/   )r<   r=   r>   r?   r@   rA   rB   rC   rn   r  rô   r   Útodayr  rã   r  r[   Úremarquer^   r   r_   r`   rJ   r  Úfloatr  r4   r/   r-   r  r  …  s÷   € € € € € Ø€Mà	�Š�2”:¨4ˆÑ	0Ô	0€BØ—)’)Ø
Œ
�B—M’M .Ñ1Ô1¸EÈð ñ ô €Kð —)’)˜BœG¨e¸T¼Z�)ÑHÔH€KØ—9’9˜RœX°�9Ñ6Ô6€LØ�yŠy˜œ¨"ˆyÑ-Ô-€HØ—’˜2œ;°´�Ñ@Ô@€Jà�Š˜z¸)ˆÑDÔD€Hð¨u°t©|ð ð ð ð ð ð r/   r  N)'r   r   Úflask_loginr   Úflask_sqlalchemyr   Úwerkzeug.securityr   r   Úapp.constantsr	   r
   Úapp.database_profilesr   Ú	app.phoner   Úapp.public_idr   Úapp.soft_deleter   Úapp.timestampr   r@   ÚModelr   rP   r    rU   rt   rv   rw   rV   rx   rY   rW   r½   rX   r¾   r  r4   r/   r-   ú<module>r)     só  ðØ #Ð #Ð #Ð #Ð #Ð #Ð #Ð #à !Ð !Ð !Ð !Ð !Ð !Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø IÐ IÐ IÐ IÐ IÐ IÐ IÐ Ià 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ð 0Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø +Ð +Ð +Ð +Ð +Ð +Ø (Ð (Ð (Ð (Ð (Ð (à€Z Ð+@Ð AÐBÑBÔB€ð?ð ?ð ?ð ?ð ?ˆ=˜) R¤Xñ ?ô ?ð ?ð4ð ð ð ð �- °"´(ñ ô ð ð:ð ð ð ð �b”hñ ô ð ð"BBð BBð BBð BBð BBˆ}˜o¨~¸r¼xñ BBô BBð BBðJ
Hð 
Hð 
Hð 
Hð 
H�”ñ 
Hô 
Hð 
Hð
Dð 
Dð 
Dð 
Dð 
DˆBŒHñ 
Dô 
Dð 
Dð0ð 0ð 0ð 0ð 0ˆbŒhñ 0ô 0ð 0ð*BUð BUð BUð BUð BUˆ-˜¨.¸"¼(ñ BUô BUð BUðJ5ð 5ð 5ð 5ð 5�m _°nÀbÄhñ 5ô 5ð 5ð2=ð =ð =ð =ð =ˆm˜RœXñ =ô =ð =ðNð Nð Nð Nð N�= "¤(ñ Nô Nð Nðð ð ð ð �2”8ñ ô ð ð$Jð Jð Jð Jð J� ¤ñ Jô Jð JðOð Oð Oð Oð Oˆ}˜o¨r¬xñ Oô Oð Oð:ð ð ð ð ˆ]˜O¨R¬Xñ ô ð ð ð r/   