Ë
    (”jØQ  ã                   ó´   — 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
mZmZmZmZmZmZmZ d dlmZmZ d dlZd dlZ ej.                  e«      Z G d„ d	«      Zy)
é    )Útransaction)Útimezone)Úsettingsé   )ÚDossierÚProformaÚFactureÚ	FactureM2Ú	FactureM3ÚPaiementÚEcritureComptableÚClientÚLigneDossierÚLigneProformaÚSociete)Ú
EdefClientÚEdefClientErrorNc                   óˆ  — e Zd Zedefd„«       Zedefd„«       Zeej                  ddedefd„«       «       Z
eej                  dd„«       «       Zeej                  ddedefd	„«       «       Zeej                  dd
edefd„«       «       Zedd„«       Zeej                  dd„«       «       Zeej                  dd„«       «       Zy)ÚBillingServiceÚproformac                 ó¦  — ddl m}  |d«       |d«       |d«      dœ |d«       |d«       |d«      dœdœ}| j                  j                  «       D ]G  }|j                  }||vr |d«       |d«       |d«      dœ||<   ||   dxx   |j
                  z  cc<   ŒI |D ]0  }||   d    |d«      z  ||   d<   ||   d   ||   d   z   ||   d	<   Œ2 |S )
Nr   ©ÚDecimalÚ0)ÚtotalÚtvaÚ	total_ttc©ÚUSDÚFCr   ú0.16r   r   )Údecimalr   ÚlignesÚallÚdeviseÚmontant)r   r   ÚtotalsÚligner%   Údevs         úI/home/exaucensingi/Documents/ProjectPython/can_archit/billing/services.pyÚcalculate_proforma_totalsz(BillingService.calculate_proforma_totals   sÿ   € å#á$ S›\±'¸#³,ÉWÐUXË\ÑZÙ$ S›\±'¸#³,ÉWÐUXË\ÑZñ
ˆð
 —_‘_×(Ñ(Ó*ò 	5ˆEØ—\‘\ˆFØ˜VÑ#Ù+2°3«<ÁÈÃÑ[bÐcfÓ[gÑ!h��v‘à�6‰N˜7Ó# u§}¡}Ñ4Ô#ð	5ð ò 	QˆCØ!'¨¡¨WÑ!5¹À»Ñ!GˆF�3‰K˜ÑØ'-¨c¡{°7Ñ';¸fÀS¹kÈ%Ñ>PÑ'PˆF�3‰K˜Ò$ð	Qð ˆó    Údossierc                 ó  — ddl m} ddddddœddddddœdœ}| j                  j                  «       D �]0  }|j                  }|j
                  r|j
                  j                  sŒ3||vrddddddœ||<   ||   dxx   |j                  z  cc<   |j
                  j                  rF|j
                  j                  j                  dk(  r#||   dxx   |j                   |d«      z  z  cc<   |j
                  j                  j                  j                  «       }|||   v r||   |xx   |j                  z  cc<   �Œ	||   j                  |d«      |j                  z   ||   |<   �Œ3 |D ]  }||   d   ||   d   z   ||   d	<   Œ |S )
Nr   r   )ÚfraisÚdeboursr   r   r   r   r   ÚBr   r!   r   )r"   r   r#   r$   r%   ÚserviceÚtype_servicer&   ÚtaxgroupÚcodeÚlowerÚget)r-   r   r'   r(   r%   Ú	type_coder)   s          r*   Úcalculate_dossier_totalsz'BillingService.calculate_dossier_totals-   s�  € å#à¨1°qÀÐQRÑSØ¨!°aÀÐPQÑRñ
ˆð
 —^‘^×'Ñ'Ó)ó 	]ˆEØ—\‘\ˆFØ—=’=¨¯©×(BÒ(BØà˜VÑ#Ø+,¸ÀQÈqÐ_`Ñ!a��v‘à�6‰N˜7Ó# u§}¡}Ñ4Ó#ð �}‰}×%Ò%¨%¯-©-×*@Ñ*@×*EÑ*EÈÒ*LØ�v‘˜uÓ%¨¯©¹À»Ñ)HÑHÓ%àŸ™×2Ñ2×7Ñ7×=Ñ=Ó?ˆIØ˜F 6™NÑ*Ø�v‘˜yÓ)¨U¯]©]Ñ:Õ)ð -3°6©N×,>Ñ,>¸yÈ!Ó,LÈuÏ}É}Ñ,\��v‘˜yÓ)ð'	]ð, ò 	QˆCØ'-¨c¡{°7Ñ';¸fÀS¹kÈ%Ñ>PÑ'PˆF�3‰K˜Ò$ð	Qð ˆr,   NÚreturnc                 ó    — | j                   dk(  rt        d«      ‚t        j                  j	                  | dt        j                  «       |¬«      S )NÚCLOTUREu<   Impossible de crÃ©er une proforma pour un dossier clÃ´turÃ©.Ú	BROUILLON)r-   ÚstatutÚdate_emissionÚ
created_by)r>   Ú
ValueErrorr   ÚobjectsÚcreater   Únow)r-   Úusers     r*   Úcreate_proformazBillingService.create_proformaS   sL   € ð �>‰>˜YÒ&ÜÐ[Ó\Ð\ä×Ñ×&Ñ&ØØÜ"Ÿ,™,›.Øð	 'ó 
ð 	
r,   c                 ó¶  — ddl }ddlm} ddlm} ddlm} |j                  d|j                  › � ||j                  «       «      «      }|j                  j                  t        j                  |«      }	  ||«      }	t        d«       t        d«       t        d	|	j                  d
«      › �«       t        d|	j                  d«      › �«       t        d|	j                  d«      › �«       t        d|	j                  d«      › �«       t        d|	j                  d«      › �«       t        d|	j                  d«      › �«       t        d«       t!        | j"                  | t%        j&                  «       || j(                  ¬«      }
|
j                  «        |	j                  d«      r|	j                  d«      |
_        |	j                  d«      r|	j                  d«      |
_        |	j                  d«      r|	j                  d«      |
_        |	j                  d«      r|	j                  d«      |
_        |	j                  d«      }|r||
_        |
j                  «        d| _        | j                  «        | j7                  «       }t8        j;                  | «      }|d   d   }|dkD  r*|r(t8        j=                  ||dd|
j>                  › d�|
¬«       t@        jC                  d|
j>                  › d| j>                  › �«       |
|j                  jE                  |«      r|jG                  |«       S S # |j                  jE                  |«      r|jG                  |«       w w xY w) uÂ   
        CrÃ©e une facture Ã  partir d'une proforma et des donnÃ©es DGI extraites d'un fichier uploadÃ©.
        Bypasse l'appel API DGI car le fichier prouve l'existence de la facture.
        r   N©Údefault_storage©ÚContentFile©Úextract_normalized_invoiceútmp/z3
==================================================u(   ðŸ”� DONNÃ‰ES DGI EXTRAITES DU FICHIER :u   NumÃ©ro Facture (detectÃ©) : Úinvoice_numberzCode DGI      : Úcode_def_dgizNIM           : Údef_nidzCompteurs     : Údef_compteurszDate Heure    : Údef_datetimezQR Code (Raw) : Úqr_rawz3==================================================
)r-   r   r?   r@   Útype_factureÚVALIDEEr   r   ÚDEBITõ   Facture NÂ° z (Import DGI)©Úclientr&   ÚsensÚlibelleÚfactureúFacture õ&    crÃ©Ã©e via import DGI pour Proforma )$ÚosÚdjango.core.files.storagerI   Údjango.core.files.baserK   Ú1extratfile.extractor.normalized_invoice_extractorrM   ÚsaveÚnameÚreadÚpathÚjoinr   Ú
MEDIA_ROOTÚprintr7   r	   r-   r   rD   Útype_proformaÚ
codedefdgiÚnimÚcountersÚdateTimedgiÚqrCoder>   Ú
get_clientr   r+   Úcreate_ecriture_comptableÚnumeroÚloggerÚinfoÚexistsÚremove)r   Úuploaded_filerE   r`   rI   rK   rM   rg   Ú	full_pathÚdatar]   Úqr_dataÚ
client_objr'   Ú	total_usds                  r*   Ú'convert_proforma_to_invoice_from_uploadz6BillingService.convert_proforma_to_invoice_from_uploadc   sÜ  € ó 	Ý=Ý6Ý`ð ×#Ñ# d¨=×+=Ñ+=Ð*>Ð$?ÁÈ]×M_ÑM_ÓMaÓAbÓcˆØ—G‘G—L‘L¤×!4Ñ!4°dÓ;ˆ	ðB	%á-¨iÓ8ˆDô �-Ô ÜÐ<Ô=ÜÐ1°$·(±(Ð;KÓ2LÐ1MÐNÔOÜÐ$ T§X¡X¨nÓ%=Ð$>Ð?Ô@ÜÐ$ T§X¡X¨iÓ%8Ð$9Ð:Ô;ÜÐ$ T§X¡X¨oÓ%>Ð$?Ð@ÔAÜÐ$ T§X¡X¨nÓ%=Ð$>Ð?Ô@ÜÐ$ T§X¡X¨hÓ%7Ð$8Ð9Ô:Ü�-Ô ô Ø ×(Ñ(Ø!Ü&Ÿl™l›nØØ%×3Ñ3ôˆGð �L‰LŒNð �x‰x˜Ô'Ø%)§X¡X¨nÓ%=�Ô"Ø�x‰x˜	Ô"Ø"Ÿh™h yÓ1�”Ø�x‰x˜Ô(Ø#'§8¡8¨OÓ#<�Ô Ø�x‰x˜Ô'Ø&*§h¡h¨~Ó&>�Ô#ð —h‘h˜xÓ(ˆGÙØ!(�”à�L‰LŒNð (ˆHŒOØ�M‰MŒOð "×,Ñ,Ó.ˆJÜ#×=Ñ=¸hÓGˆFØ˜u™ kÑ2ˆIà˜1Š}¡Ü×8Ñ8Ø%Ø%Ø Ø*¨7¯>©>Ð*:¸-ÐHØ#ð 9ô ô �K‰K˜( 7§>¡>Ð"2Ð2XÐYa×YhÑYhÐXiÐjÔkØð �w‰w�~‰~˜iÔ(Ø—	‘	˜)Õ$ð )øˆr�w‰w�~‰~˜iÔ(Ø—	‘	˜)Õ$ð )ús   Á5JL) Ì)/Mc                 óè  — | j                   dk7  rt        d«      ‚d| _         | j                  «        | j                  «       }|st        d«      ‚| j                  r+d| j                  _         | j                  j                  «        t
        j                  j                  | | j                  t        j                  «       || j                  ¬«      }t        | j                  j                  «       «      }|r|}d}n=| j                  r-t        | j                  j                  j                  «       «      ng }d}t        j                  j                  «       }t!        «       }	 g }	d	}
|D ]ñ  }d
}d}|rt#        |j$                  «      nt#        |j&                  «      }|rt#        |j(                  «      nt#        |j&                  «      }d}|s.t+        |d«      r"|j,                  r|j,                  j.                  }|	j1                  ||r|j2                  n t5        |j,                  d|j2                  «      ||rt#        |j6                  «      nd||dœ«       |
|z  }
Œó t9        d«       t9        d|
› �«       t9        d|	› �«       d}|r!|j:                  rt#        |j:                  «      nd}t        j                  «       j=                  d«      }t9        d«       t9        d|› d|› d|› �«       d}t+        |d«      r"|j>                  r|j>                  j.                  }t5        |dd «      xs |j@                  xs d|t5        |dd «      xs t5        |d d!«      t5        |d"d «      xs t5        |d#d!«      d$œ}t5        |d%d «      r|jB                  |d%<   |r|jB                  ntD        jF                  d&|jH                  › d'tK        tM        jL                  «       «      › �d(|r|jN                  ntD        jP                  d)|	|d*|
d+œg||||r!|jR                  rtU        |jH                  «      nd,|r|jR                  r|jV                  nd-d.œd/œ}|jY                  |«      }|j[                  d0«      }|st]        d1|› �«      ‚|}|j_                  ||j[                  d2«      |j[                  d3d4«      d5œ«      }||_0        |j[                  d6«      |_1        |jb                  s|j[                  d7«      |_1        |j[                  d8«      |_2        |j[                  d9«      |_3        |j[                  d:«      |_4        |j[                  d;«      |_5        |j                  «        tl        jo                  d<|jp                  › d=�«       tv        jy                  | «      }|d?   d@   }|d4kD  r'tv        j{                  ||dAdB|jp                  › �|¬C«       |S # tr        $ r'}tl        ju                  d>tU        |«      › �«       ‚ d }~ww xY w)DNr=   u1   Seule une proforma brouillon peut Ãªtre validÃ©e.rV   u'   La proforma n'a pas de client associÃ©.ÚFACTURE)r   r-   r?   r@   rU   TFg        ÚSERr1   ÚSRVr2   Údesignationr   )r5   re   ÚtypeÚquantityÚpriceÚtaxGroupu   --- Items Ã  facturer ---u!   Total montant Ã  facturer (FC) : u   Items Ã  facturer : ÚCDFg     à¥@z%Y-%m-%d %H:%M:%Sz--- Devise et Taux ---z	Devise : z	, Taux : z	, Date : ÚPMÚclient_typere   zCLIENT DIVERSÚaddressÚadresseÚ ÚcontactÚ	telephone)re   r„   r‹   rŽ   ÚnifzFV-ú-ÚhtÚFVÚESPECES)re   ÚamountÚ01ÚSYSTEM)Úidre   )r�   ÚrnÚmodeÚisfr„   ÚitemsrZ   ÚpaymentÚcurCodeÚcurRateÚcurDateÚoperatorÚuidu   CREATE DGI Ã©chouÃ© : r   Úvtotalr   )r   r£   Ú
codeDEFDGIÚmtnrp   rm   rn   ÚdateTimer^   u    normalisÃ©e DGI avec succÃ¨sz[ERREUR DGI] r   r   rW   rX   rY   )>r>   rA   rd   rq   r-   r	   rB   rC   r   rD   rk   Úlistr#   r$   r   Úfirstr   ÚfloatÚprix_unitaire_fcr&   Ú
montant_fcÚhasattrr2   r5   Úappendrƒ   ÚgetattrÚquantiterj   ÚtauxÚstrftimerŠ   Únomr�   r   ÚDGI_NIFr˜   ÚintÚtimeÚisf_dgiÚDGI_ISFÚis_authenticatedÚstrÚusernameÚcreate_invoicer7   r   Úconfirm_invoicer¢   rl   rp   rm   rn   ro   rt   ru   rs   Ú	ExceptionÚerrorr   r+   rr   )r   rE   r|   r]   Úlignes_proformar#   Úuse_new_modelÚsocieteÚ
client_apirœ   Útotal_amountr(   Ú	item_typeÚ	tax_groupÚprix_fcr«   Ú	code_itemÚcurrency_codeÚcur_rateÚcur_dateÚclient_type_codeÚ
client_dgiÚpayloadÚresp_creater¢   Úinvoice_dataÚresp_confirmÚer'   r}   s                                 r*   Úvalidate_proformaz BillingService.validate_proformaº   sƒ  € ð �?‰?˜kÒ)ÜÐPÓQÐQð $ˆŒØ�‰Œð ×(Ñ(Ó*ˆ
ÙÜÐFÓGÐGð ×ÒØ&/ˆH×ÑÔ#Ø×Ñ×!Ñ!Ô#ô —/‘/×(Ñ(ØØ×$Ñ$Ü"Ÿ,™,›.ØØ!×/Ñ/ð )ó 
ˆô ˜xŸ™×2Ñ2Ó4Ó5ˆÙØ$ˆFØ ‰Mà<D×<LÒ<L”T˜(×*Ñ*×1Ñ1×5Ñ5Ó7Ô8ÐRTˆFØ!ˆMä—/‘/×'Ñ'Ó)ˆÜ“\ˆ
ðB	ð ˆEØˆLàò +�à!�	Ø�	ñ <Iœ% × 6Ñ 6Ô7ÌeÐTY×TaÑTaÓNb�Ù8EœU 5×#3Ñ#3Ô4Ì5ÐQV×Q^ÑQ^ÓK_�
ð "�	Ù$¬°¸	Ô)BÀuÇ}Â}Ø %§¡× 2Ñ 2�Ià—‘Ø%Ù1>˜E×-Ò-ÄGÈEÏMÉMÐ[hÐjo×j{Ñj{ÓD|Ø%Ù9F¤ e§n¡nÔ 5ÈAØ$Ø )ñô ð  
Ñ*‘ð/+ô2 Ð-Ô.ÜÐ5°l°^ÐDÔEÜÐ(¨¨Ð0Ô1ð
 "ˆMá.5¸'¿,º,”u˜WŸ\™\Ô*ÈFˆHÜ—|‘|“~×.Ñ.Ð/BÓCˆHäÐ*Ô,Ü�I˜m˜_¨I°h°Z¸yÈÈ
ÐSÔTð
  $ÐÜ�z =Ô1°j×6LÒ6LØ#-×#9Ñ#9×#>Ñ#>Ð ô   
¨F°DÓ9Ò^¸Z¿^¹^Ò^ÈØ(Ü" :¨y¸$Ó?ÒeÄ7È:ÐW`ÐbdÓCeÜ" :¨y¸$Ó?ÒgÄ7È:ÐWbÐdfÓCgñ	ˆJô �z 5¨$Ô/Ø$.§N¡N�
˜5Ñ!ñ '.�w—{’{´8×3CÑ3CØ˜GŸJ™J˜< q¬¬T¯Y©Y«[Ó)9Ð(:Ð;ØÙ*1�w—’´x×7GÑ7GØØØ$à%Ø*ñð ð )Ø#Ø#á*.°4×3HÒ3Hœ#˜dŸg™gœ,ÈdÙ-1°d×6KÒ6K˜DŸMšMÐQYññˆGð0 %×3Ñ3°GÓ<ˆKØ—/‘/ %Ó(ˆCáÜ%Ð(>¸{¸mÐ&LÓMÐMð 'ˆLð &×5Ñ5°cØ%×)Ñ)¨'Ó2Ø&×*Ñ*¨8°QÓ7ñ<ó ˆLð ˆGŒKØ!-×!1Ñ!1°,Ó!?ˆGÔØ×%Ò%¸L×<LÑ<LÈUÓ<S wÔ'9à)×-Ñ-¨hÓ7ˆGŒNØ&×*Ñ*¨5Ó1ˆGŒKØ+×/Ñ/°
Ó;ˆGÔØ".×"2Ñ"2°:Ó">ˆGÔØ�L‰LŒNä�K‰K˜( 7§>¡>Ð"2Ð2OÐPÔQô  ×9Ñ9¸(ÓCˆØ˜5‘M +Ñ.ˆ	à�qŠ=Ü×4Ñ4Ø!Ø!ØØ& w§~¡~Ð&6Ð7Øð 5ô ð ˆøô- ò 	ô �L‰L˜=¬¨Q«¨Ð1Ô2Øûð	ús   Å PW ×	W1×
"W,×,W1rZ   r]   c           	      ó®   — t         j                  j                  | ||||t        j                  «       ¬«      }t
        j                  | |dd|› �|¬«       |S )N)rZ   r]   r&   r%   Ú	referenceÚdate_paiementÚCREDITz	Paiement )rZ   r&   r[   r\   Úpaiement)r   rB   rC   r   rD   r   rr   )rZ   r&   r%   rÔ   r]   r×   s         r*   Úregister_paymentzBillingService.register_payment{  si   € ô ×#Ñ#×*Ñ*ØØØØØÜ"Ÿ,™,›.ð +ó 
ˆô 	×0Ñ0ØØØØ 	˜{Ð+Øð 	1ô 	
ð ˆr,   c                 óÐ   — t         j                  j                  | |||||¬«      }|dk(  r| xj                  |z  c_        n| xj                  |z  c_        | j	                  «        |S )N)rZ   r&   r[   r\   Úfacture_lieeÚpaiement_lierW   )r   rB   rC   Úsolde_compterd   )rZ   r&   r[   r\   r]   r×   Úecritures          r*   rr   z(BillingService.create_ecriture_comptable”  sh   € ä$×,Ñ,×3Ñ3ØØØØØ Ø!ð 4ó 
ˆð �7Š?Ø×Ò 7Ñ*Öà×Ò 7Ñ*Õà�‰ŒØˆr,   c                 ód  — dd l }ddlm} ddlm} ddlm} |j                  d|j                  › � ||j                  «       «      «      }|j                  j                  t        j                  |«      }	  ||«      }	t        | t        j                   «       || j"                  ¬«      }
|
j                  «        |	j%                  d«      r|	j%                  d«      |
_        |	j%                  d«      r|	j%                  d«      |
_        |	j%                  d	«      r|	j%                  d	«      |
_        |	j%                  d
«      r|	j%                  d
«      |
_        |	j%                  d«      r|	j%                  d«      |
_        |
j                  «        d| _        | j                  «        t2        j5                  d|
j6                  › d| j6                  › �«       |
|j                  j9                  |«      r|j;                  |«       S S # |j                  j9                  |«      r|j;                  |«       w w xY w)Nr   rH   rJ   rL   rN   ©r   r?   r@   rU   rP   rQ   rR   rS   rT   rV   z
FactureM2 r_   )r`   ra   rI   rb   rK   rc   rM   rd   re   rf   rg   rh   r   ri   r
   r   rD   rk   r7   rl   rm   rn   ro   rp   r>   rt   ru   rs   rv   rw   ©r   rx   rE   r`   rI   rK   rM   rg   ry   rz   r]   s              r*   Ú*convert_proforma_m2_to_facture_from_uploadz9BillingService.convert_proforma_m2_to_facture_from_uploadª  ó«  € ó 	Ý=Ý6Ý`à×#Ñ# d¨=×+=Ñ+=Ð*>Ð$?ÁÈ]×M_ÑM_ÓMaÓAbÓcˆØ—G‘G—L‘L¤×!4Ñ!4°dÓ;ˆ	ð	%Ù-¨iÓ8ˆDäØ!Ü&Ÿl™l›nØØ%×3Ñ3ô	ˆGð �L‰LŒNà�x‰x˜Ô'Ø%)§X¡X¨nÓ%=�Ô"Ø�x‰x˜	Ô"Ø"Ÿh™h yÓ1�”Ø�x‰x˜Ô(Ø#'§8¡8¨OÓ#<�Ô Ø�x‰x˜Ô'Ø&*§h¡h¨~Ó&>�Ô#Ø�x‰x˜Ô!Ø!%§¡¨(Ó!3�”Ø�L‰LŒNà'ˆHŒOØ�M‰MŒOä�K‰K˜* W§^¡^Ð$4Ð4ZÐ[c×[jÑ[jÐZkÐlÔmØð �w‰w�~‰~˜iÔ(Ø—	‘	˜)Õ$ð )øˆr�w‰w�~‰~˜iÔ(Ø—	‘	˜)Õ$ð )úó   Á5EH  È /H/c                 ód  — dd l }ddlm} ddlm} ddlm} |j                  d|j                  › � ||j                  «       «      «      }|j                  j                  t        j                  |«      }	  ||«      }	t        | t        j                   «       || j"                  ¬«      }
|
j                  «        |	j%                  d«      r|	j%                  d«      |
_        |	j%                  d«      r|	j%                  d«      |
_        |	j%                  d	«      r|	j%                  d	«      |
_        |	j%                  d
«      r|	j%                  d
«      |
_        |	j%                  d«      r|	j%                  d«      |
_        |
j                  «        d| _        | j                  «        t2        j5                  d|
j6                  › d| j6                  › �«       |
|j                  j9                  |«      r|j;                  |«       S S # |j                  j9                  |«      r|j;                  |«       w w xY w)Nr   rH   rJ   rL   rN   rß   rP   rQ   rR   rS   rT   rV   z
FactureM3 r_   )r`   ra   rI   rb   rK   rc   rM   rd   re   rf   rg   rh   r   ri   r   r   rD   rk   r7   rl   rm   rn   ro   rp   r>   rt   ru   rs   rv   rw   rà   s              r*   Ú*convert_proforma_m3_to_facture_from_uploadz9BillingService.convert_proforma_m3_to_facture_from_uploadÙ  râ   rã   )N)NN)Ú__name__Ú
__module__Ú__qualname__Ústaticmethodr   r+   r   r9   r   ÚatomicrF   r~   r	   rÒ   r   rØ   rr   rá   rå   © r,   r*   r   r      sL  „ ð
 ð¨Hò ó ðð0 ð ¨'ò  ó ð ðJ Ø×Ññ	
 ð 	
¸ò 	
ó ó ð	
ð Ø×ÑòP%ó ó ðP%ðj Ø×Ññz Hð z¸Gò zó ó ðzð~ Ø×Ññ ð Ègò ó ó ðð. òó ðð* Ø×Ñò(%ó ó ð(%ðZ Ø×Ñò(%ó ó ñ(%r,   r   )Ú	django.dbr   Údjango.utilsr   Údjango.confr   Úmodelsr   r   r	   r
   r   r   r   r   r   r   r   Údgi.edef_clientr   r   Úloggingrµ   Ú	getLoggerræ   rt   r   rë   r,   r*   ú<module>ró      sK   ðÝ !Ý !Ý  ÷÷ ÷ ñ ÷ 8Û Û à	ˆ×	Ñ	˜8Ó	$€÷t%ò t%r,   