Ë
    úîi+  ã                  ó$  — 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
mZmZmZ  eedd«      d	k(  Zdd
„Zdd„Zd„ Z G d„ dej&                  «      Z G d„ dej&                  «      Z G d„ dej&                  «      Z G d„ dej&                  «      Zy)é    )Úannotations)Úapps)Úsettings)Úserializersé   )ÚTreasuryAccountÚTreasuryMovementÚRemittanceBatchÚRemittanceLineÚACX_DEBTOR_MODELÚ zcustomers.Customerc                óø   — | sydD ]B  }t        | |d«      }t        |t        «      sŒ!|j                  «       sŒ2|j                  «       c S  	 t        | «      }|r|j                  «       r|S dS # t        $ r Y yw xY w)z1Best-effort display name for a Customer instance.N)Ú	full_nameÚnameÚcompany_nameÚdisplay_nameÚtitle)ÚgetattrÚ
isinstanceÚstrÚstripÚ	Exception)ÚcustomerÚattrÚvÚss       ú4/var/www/html/acx/treasury_management/serializers.pyÚ_customer_displayr      sx   € áØàNò ˆÜ�H˜d DÓ)ˆÜ�aœÕ !§'¡'¥)Ø—7‘7“9Òðð
Ü�‹MˆÙ˜!Ÿ'™'œ)ˆqÐ-¨Ð-øÜò Ùðús   ÁA- Á+A- Á-	A9Á8A9c                óÈ   — | sydD ]  }t        | |d«      }|sŒ|c S  t        | dd«      xs d}t        | dd«      xs d}|› d|› �j                  «       }|xs t        | «      S )zDBest-effort display name for a Debtor instance (person owing money).N©r   r   r   ÚlabelÚ
first_namer   Ú	last_nameÚ ©r   r   r   )Údebtorr   ÚvalÚfirstÚlastr   s         r   Ú_debtor_displayr*   !   s}   € áØØ>ò ˆÜ�f˜d DÓ)ˆÚØŠJðô �F˜L¨$Ó/Ò5°2€EÜ�F˜K¨$Ó/Ò5°2€DØˆg�Q�t�fÐ×#Ñ#Ó%€DØÒ”3�v“;Ðó    c                ób   — | sydD ]  }	 t        | |d«      }|sŒ|c S  y# t        $ r d}Y Œw xY w)z>Try to resolve a customer object from a portfolio-like object.N)r   ÚclientÚowner)r   r   )Ú	portfolior   r   s      r   Ú _resolve_customer_from_portfolior0   /   sO   € áØØ/ò ˆð	Ü˜	 4¨Ó.ˆAò ØŠHðð øô	 ò 	ØŠAð	ús   Š  .­.c                  ó    — e Zd Z G d„ d«      Zy)ÚTreasuryAccountSerializerc                  ó    — e Zd ZeZg d¢Zg d¢Zy)úTreasuryAccountSerializer.Meta)
ÚidÚtenantr   ÚtypeÚcurrencyÚ
is_defaultÚmetadataÚ
created_byÚ
created_atÚ
updated_at)r6   r;   r<   r=   N)Ú__name__Ú
__module__Ú__qualname__r   ÚmodelÚfieldsÚread_only_fields© r+   r   ÚMetar4   >   s   „ Øˆò
ˆò PÑr+   rE   N)r>   r?   r@   rE   rD   r+   r   r2   r2   =   s   „ ÷Pò Pr+   r2   c                  óv  — e Zd Z ej                  «       Z ej                  «       Z ej                  «       Z ej                  «       Z ej                  «       Z	 ej                  «       Z
 ej                  «       Z ej                  «       Zdd„Zdd„Zdd„Zd„ Zdd„Zdd„Zdd„Zdd„Zdd	„Z G d
„ d«      Zy)ÚTreasuryMovementSerializerc                ó>   — t        |dd «      }|rt        |dd «      S d S ©NÚaccountr   ©r   ©ÚselfÚobjÚaccs      r   Úget_account_namez+TreasuryMovementSerializer.get_account_nameY   ó&   € Ü�c˜9 dÓ+ˆÙ-0Œw�s˜F DÓ)Ð:°dÐ:r+   c                ó>   — t        |dd «      }|rt        |dd «      S d S )NrJ   r8   rK   rL   s      r   Úget_account_currencyz/TreasuryMovementSerializer.get_account_currency]   s&   € Ü�c˜9 dÓ+ˆÙ14Œw�s˜J¨Ó-Ð>¸$Ð>r+   c                ó\   — t        |dd «      }|rt        |dd «      xs t        |dd «      S d S )NÚcaseÚ	referenceÚcase_numberrK   ©rM   rN   rU   s      r   Úget_case_referencez-TreasuryMovementSerializer.get_case_referencea   s6   € Ü�s˜F DÓ)ˆÙY]Œw�t˜[¨$Ó/ÒU´7¸4ÀÐPTÓ3UÐgÐcgÐgr+   c                ó”  — t        |dd«      rt        |dd«      S d|_        t        |dd«      }|rt        |dd«      nd}t        |dd«      }|r|sd|_        y	 t        j                  d	d
«      }|j
                  j                  ||¬«      j                  dd«      j                  «       }||_        |S # t        $ r
 d|_        Y yw xY w)u£   
        Charge cases.Case via la rÃ©fÃ©rence du CollectionCase liÃ©.
        RÃ©sultat mis en cache sur l'instance pour Ã©viter deux requÃªtes par ligne.
        Ú_acx_core_case_loadedFÚ_acx_core_caseNTrU   rV   r6   ÚcasesÚCase)r6   rV   r&   r/   )
r   r[   r\   r   Ú	get_modelÚobjectsÚfilterÚselect_relatedr(   r   )rM   rN   rU   Úrefr6   ÚCoreCaseÚcores          r   Ú_get_core_casez)TreasuryMovementSerializer._get_core_casee   sÖ   € ô
 �3Ð/°Ô7Ü˜3Ð 0°$Ó7Ð7Ø$(ˆÔ!ä�s˜F DÓ)ˆÙ37Œw�t˜[¨$Ô/¸TˆÜ˜˜h¨Ó-ˆá™&Ø!%ˆCÔØð	Ü—~‘~ g¨vÓ6ˆHà× Ñ ×'Ñ'¨vÀÐ'ÓEß‘ ¨+Ó6ß‘“ð ð
 "&ˆCÔØˆKøÜò 	Ø!%ˆCÔÙð	ús   ÁAB4 Â4CÃCc                óX  — t        |dd «      }|rt        |«      S t        r+t        |dd «      }|rt        |dd «      nd }|rt        |«      S | j                  |«      }|rLt        |dd «      xs t        |dd «      }|rt        |«      S t	        t        |dd «      «      }|rt        |«      S y )Nr   rU   r&   r-   r/   )r   r   Ú_DEBTOR_IS_CUSTOMERrf   r0   )rM   rN   r   rU   Údebtor_as_customerre   s         r   Úget_customer_namez,TreasuryMovementSerializer.get_customer_nameƒ   s¸   € ä˜3 
¨DÓ1ˆÙÜ$ XÓ.Ð.õ Ü˜3 ¨Ó-ˆDÙBF¤¨¨x¸Ô!>ÈDÐÙ!Ü(Ð);Ó<Ð<ð ×"Ñ" 3Ó'ˆÙÜ˜t Z°Ó6ÒW¼'À$ÈÐRVÓ:WˆHÙÜ(¨Ó2Ð2Ü7¼ÀÀkÐSWÓ8XÓYˆHÙÜ(¨Ó2Ð2àr+   c                óV   — | j                  |«      }|rt        t        |dd «      «      S y )Nr&   )rf   r*   r   )rM   rN   re   s      r   Úget_debtor_namez*TreasuryMovementSerializer.get_debtor_nameœ   s.   € ð ×"Ñ" 3Ó'ˆÙÜ"¤7¨4°¸4Ó#@ÓAÐAØr+   c                ód   — 	 |j                  «       S # t        $ r t        |dd«      xs dcY S w xY w)NÚsourcer   )Úget_source_displayr   r   ©rM   rN   s     r   Úget_source_labelz+TreasuryMovementSerializer.get_source_label¥   ó9   € ð	4Ø×)Ñ)Ó+Ð+øÜò 	4Ü˜3 ¨"Ó-Ò3°Ò3ð	4úó   ‚ ’/®/c                ód   — 	 |j                  «       S # t        $ r t        |dd«      xs dcY S w xY w)NÚ	directionr   )Úget_direction_displayr   r   rp   s     r   Úget_direction_labelz.TreasuryMovementSerializer.get_direction_label«   s9   € ð	7Ø×,Ñ,Ó.Ð.øÜò 	7Ü˜3 ¨RÓ0Ò6°BÒ6ð	7úrs   c                ód   — 	 |j                  «       S # t        $ r t        |dd«      xs dcY S w xY w)NÚstatusr   )Úget_status_displayr   r   rp   s     r   Úget_status_labelz+TreasuryMovementSerializer.get_status_label±   rr   rs   c                  ó    — e Zd ZeZg d¢Zg d¢Zy)úTreasuryMovementSerializer.Meta)r5   r6   rJ   Úaccount_nameÚaccount_currencyru   Údirection_labelry   Ústatus_labelÚamountr8   Ú
value_dater!   rV   r   Úcustomer_nameÚdebtor_namerU   Úcase_referenceÚpaymentÚ
remittancern   Úsource_labelÚ
source_keyÚnotesr;   r<   )r6   r;   r<   N)r>   r?   r@   r	   rA   rB   rC   rD   r+   r   rE   r}   ·   s   „ Ø ˆò
ˆò: BÑr+   rE   N©Úreturnz
str | None)r�   r   )r>   r?   r@   r   ÚSerializerMethodFieldr~   r   r†   r„   r…   r‰   r€   r�   rP   rS   rY   rf   rj   rl   rq   rw   r{   rE   rD   r+   r   rG   rG   O   s½   „ Ø4�;×4Ñ4Ó6€LØ8�{×8Ñ8Ó:ÐØ6�[×6Ñ6Ó8€NØ5�K×5Ñ5Ó7€MØ3�+×3Ñ3Ó5€KØ4�;×4Ñ4Ó6€LØ7�k×7Ñ7Ó9€OØ4�;×4Ñ4Ó6€Ló;ó?óhòó<ó2ó4ó7ó4÷Bò Br+   rG   c                  ó  — e Zd Z ej                  «       Z ej                  «       Z ej                  «       Z ej                  «       Z ej                  «       Z	 ej                  «       Z
d
d„Zd
d„Zd
d„Zd
d„Zd
d„Zd
d„Z G d„ d«      Zy	)ÚRemittanceLineSerializerc                ó‚   — t        |dd «      }|sy t        |dd «      xs t        |dd «      }|xs dt        |dd«      › �S )Nr‡   rV   Úexternal_referenceú#r5   r   rK   )rM   rN   Úprc   s       r   Úget_payment_referencez.RemittanceLineSerializer.get_payment_referenceã   sP   € Ü�C˜ DÓ)ˆÙØÜ�a˜ dÓ+ÒU¬w°qÐ:NÐPTÓ/UˆØÒ0˜œ' ! T¨2Ó.Ð/Ð0Ð0r+   c                ó>   — t        |dd «      }|rt        |dd «      S d S )Nr‡   Úpaid_atrK   ©rM   rN   r”   s      r   Úget_payment_paid_atz,RemittanceLineSerializer.get_payment_paid_atê   s&   € Ü�C˜ DÓ)ˆÙ./Œw�q˜) TÓ*Ð9°TÐ9r+   c                ó>   — t        |dd «      }|rt        |dd «      S d S )Nr‡   r‚   rK   r˜   s      r   Úget_payment_amountz+RemittanceLineSerializer.get_payment_amountî   s&   € Ü�C˜ DÓ)ˆÙ-.Œw�q˜( DÓ)Ð8°DÐ8r+   c                óÄ   — t        |dd «      }|rt        |dd «      rt        |dd «      S t        |dd «      xs t        t        |dd «      dd «      }|rt        |dd «      S d S )Nr‡   r8   rU   rK   )rM   rN   r”   rU   s       r   Úget_payment_currencyz-RemittanceLineSerializer.get_payment_currencyò   sj   € Ü�C˜ DÓ)ˆÙ”˜˜J¨Ô-Ü˜1˜j¨$Ó/Ð/Ü�s˜F DÓ)Òa¬W´W¸SÀ)ÈTÓ5RÐTZÐ\`Ó-aˆÙ26Œw�t˜Z¨Ó.Ð@¸DÐ@r+   c                ó¨   — t        |dd «      xs t        t        |dd «      dd «      }|sy t        |dd «      xs t        |dd «      xs t        |«      S )NrU   r‡   rV   rW   )r   r   rX   s      r   rY   z+RemittanceLineSerializer.get_case_referenceù   sY   € Ü�s˜F DÓ)Òa¬W´W¸SÀ)ÈTÓ5RÐTZÐ\`Ó-aˆÙØÜ�t˜[¨$Ó/Òb´7¸4ÀÐPTÓ3UÒbÔY\Ð]aÓYbÐbr+   c                ó8  — t        |dd «      xs t        t        |dd «      dd «      }|rt        |dd «      nd }|sy dD ]  }t        ||d «      }|sŒ|c S  t        |dd «      xs d}t        |dd «      xs d}|› d|› �j                  «       }|xs t        |«      S )	NrU   r‡   r&   r    r"   r   r#   r$   r%   )	rM   rN   rU   r&   r   r'   r(   r)   r   s	            r   rl   z(RemittanceLineSerializer.get_debtor_nameÿ   s¶   € Ü�s˜F DÓ)Òa¬W´W¸SÀ)ÈTÓ5RÐTZÐ\`Ó-aˆÙ26”˜˜x¨Ô.¸DˆÙØØBò 	ˆDÜ˜& $¨Ó-ˆCÚØ’
ð	ô ˜ ¨dÓ3Ò9°rˆÜ�v˜{¨DÓ1Ò7°RˆØ�'˜˜4˜&Ð!×(Ñ(Ó*ˆØÒ"”s˜6“{Ð"r+   c                  ó   — e Zd ZeZg d¢ZdgZy)úRemittanceLineSerializer.Meta)r5   rˆ   r‡   rU   r‚   r‹   r<   Úpayment_referenceÚpayment_paid_atÚpayment_amountÚpayment_currencyr†   r…   r<   N)r>   r?   r@   r   rA   rB   rC   rD   r+   r   rE   r¡     s   „ Øˆò
ˆð  )˜>Ñr+   rE   N)rN   r   )r>   r?   r@   r   rŽ   r¢   r£   r¤   r¥   r†   r…   r•   r™   r›   r�   rY   rl   rE   rD   r+   r   r�   r�   Ù   sŽ   „ à9˜×9Ñ9Ó;ÐØ7�k×7Ñ7Ó9€OØ6�[×6Ñ6Ó8€NØ8�{×8Ñ8Ó:Ðà6�[×6Ñ6Ó8€NØ3�+×3Ñ3Ó5€Kó1ó:ó9óAócó#÷*ò *r+   r�   c                  óˆ   — e Zd Z ej                  «       Z ej                  «       Z edd¬«      Zdd„Z	dd„Z
 G d„ d«      Zy)	ÚRemittanceBatchSerializerT)ÚmanyÚ	read_onlyc                ó.   — t        t        |dd «      «      S )Nr   )r   r   rp   s     r   rj   z+RemittanceBatchSerializer.get_customer_name'  s   € Ü ¤¨¨j¸$Ó!?Ó@Ð@r+   c                ó>   — t        |dd «      }|rt        |dd «      S d S rI   rK   rL   s      r   rP   z*RemittanceBatchSerializer.get_account_name*  rQ   r+   c                  ó    — e Zd ZeZg d¢Zg d¢Zy)úRemittanceBatchSerializer.Meta)r5   r6   r   r„   rJ   r~   r8   Úamount_totalry   rV   r‹   r—   r;   r<   r=   Úlines)r6   r®   r;   r<   r=   N)r>   r?   r@   r
   rA   rB   rC   rD   r+   r   rE   r­   .  s   „ Øˆò
ˆò$ `Ñr+   rE   NrŒ   )r>   r?   r@   r   rŽ   r„   r~   r�   r¯   rj   rP   rE   rD   r+   r   r§   r§   "  sE   „ Ø5�K×5Ñ5Ó7€MØ4�;×4Ñ4Ó6€LÙ$¨$¸$Ô?€EóAó;÷`ò `r+   r§   NrŒ   )Ú
__future__r   Údjango.appsr   Údjango.confr   Údjango_settingsÚrest_frameworkr   Úmodelsr   r	   r
   r   r   rh   r   r*   r0   ÚModelSerializerr2   rG   r�   r§   rD   r+   r   ú<module>r·      s”   ðÝ "å Ý 3Ý &ç VÓ Vñ
 ˆOÐ/°Ó4Ð8LÑLð ó
ó"òôP × ;Ñ ;ô Pô$GB ×!<Ñ!<ô GBôTF*˜{×:Ñ:ô F*ôR ` × ;Ñ ;õ  `r+   