Ë
    WìqjC  ã                   óp   — d Z ddlZddlmZ ddlmZmZ ddlmZm	Z	m
Z
  ej                  e«      Zd„ Zd„ Zy)zKHelpers to link legacy KYC vehicle registration onto Vehicle NOC documents.é    N)ÚContentFile)ÚExistsÚOuterRef)ÚKYCDocumentÚVehicleÚVehicleDocumentc           	      ó  — | �| j                   syt        j                  j                  | t        j                  j
                  ¬«      j                  «       ryt        j                  j                  | j                   t        j                  j                  ¬«      j                  d¬«      j                  d«      j                  «       }|�"|j                  r|j                  j                  syt        | t        j                  j
                  |j                  xs t        j                  j                   |j"                  xs d|j$                  |j&                  |j(                  ¬«      }d}	 |j                  j*                  j                  |j                  j                  «      rP|j                  j-                  d«       	 |j                  j/                  «       }|j                  j1                  «        |rU|j                  j                  j=                  d
d«      d   xs d}|j                  j?                  |tA        |«      d¬«       n%|j                  j                  |j                  _        |j?                  «        |jB                  rUt        j                  j                  |j:                  ¬«      jE                  |jB                  ¬«       |jB                  |_!        t6        jG                  d|j:                  | j:                  |j:                  «       |S # |j                  j1                  «        w xY w# t2        t4        f$ rA}t6        j9                  d	| j:                  ||j                  j                  «       Y d}~�Œ�d}~ww xY w)a’  
    If the vehicle owner has a legacy KYC VEHICLE_REGISTRATION and this vehicle
    has no NOC VehicleDocument yet, create one.

    Prefer copying file bytes when available. If the media file is missing on
    this host, still create the VehicleDocument and point its FileField at the
    same storage path so the row appears in admin Vehicle documents (and works
    wherever media is present).
    N)ÚvehicleÚdocument_type©Úuser_idr   Ú ©Úfilez-submitted_at)r
   r   Úreview_statusÚreview_notesÚexpiry_dateÚreviewed_atÚreviewed_by_idÚrbz@KYC file unreadable for vehicle %s (%s); linking path %s insteadú/é   éÿÿÿÿzvehicle-nocF)Úsave)Úpk)Úsubmitted_atz<Created VehicleDocument NOC id=%s for vehicle %s from KYC %s)$Úowner_idr   ÚobjectsÚfilterÚDocumentTypeÚNOCÚexistsr   ÚVEHICLE_REGISTRATIONÚexcludeÚorder_byÚfirstr   Únamer   ÚReviewStatusÚPENDINGr   r   r   r   ÚstorageÚopenÚreadÚcloseÚFileNotFoundErrorÚOSErrorÚloggerÚwarningr   Úrsplitr   r   r   ÚupdateÚinfo)r
   ÚkycÚdocÚcontentÚexcÚfilenames         ú//var/www/html/truck-me/accounts/vehicle_docs.pyÚ(copy_kyc_vehicle_registration_to_vehicler;      sž  € ð €˜g×.Ò.Øä×Ñ×%Ñ%ØÜ%×2Ñ2×6Ñ6ð &ó ÷ �fƒhðð ô 	×Ñ×"Ñ"Ø×$Ñ$Ü%×2Ñ2×GÑGð 	#ó 	
÷ 
‰�bˆÓ	ß	‰�/Ó	"ß	‰‹ð ð €{˜#Ÿ(š(¨#¯(©(¯-ª-Øä
ØÜ%×2Ñ2×6Ñ6Ø×'Ñ'ÒO¬?×+GÑ+G×+OÑ+OØ×%Ñ%Ò+¨Ø—O‘OØ—O‘OØ×)Ñ)ô€Cð €Gð
Ø�8‰8×Ñ×"Ñ" 3§8¡8§=¡=Ô1Ø�H‰H�M‰M˜$Ôð!ØŸ(™(Ÿ-™-›/�à—‘—‘Ô ñ Ø—8‘8—=‘=×'Ñ'¨¨QÓ/°Ñ3ÒD°}ˆØ�‰�‰�h¤¨GÓ 4¸5ˆÕAð Ÿ™Ÿ™ˆ�‰Œà‡H�H„JØ
×ÒÜ×Ñ×&Ñ&¨#¯&©&Ð&Ó1×8Ñ8Àc×FVÑFVÐ8ÔWØ×+Ñ+ˆÔä
‡K�KØFØ�‰Ø�
‰
Ø�‰ô	ð €Jøð7 —‘—‘Õ ûÜœwÐ'ò 
Ü�‰ØNØ�J‰JØØ�H‰H�M‰M÷		
ò 	
ûð
ús1   Å,AL9 ÇL ÇL9 ÌL6Ì6L9 Ì9N	Í6NÎN	c            	      óz  — t         j                  j                  t        d«      t         j                  j
                  ¬«      } t        j                  j                  t        t        j                  j                  t        d«      t        j                  j                  ¬«      j                  d¬«      «      «      j                  t        | «      «      j                  dd«      }g }|D ]"  }	 t        |«      }|€Œ|j#                  |«       Œ$ |S # t        $ r# t        j                  d	|j                   «       Y ŒRw xY w)
z„
    Backfill VehicleDocument NOC from legacy KYC VEHICLE_REGISTRATION for any
    owned vehicles still missing a NOC document.
    r   )Ú
vehicle_idr   r   r   r   r   ÚownerÚowner__transporter_profilez@Unexpected error syncing KYC vehicle registration for vehicle %s)r   r   r   r   r    r!   r   r   r   r#   r$   Úselect_relatedr;   Ú	Exceptionr0   Ú	exceptionr   Úappend)Úhas_nocÚvehiclesÚcreatedr
   r6   s        r:   Ú&sync_missing_kyc_vehicle_registrationsrG   Z   s  € ô
 ×%Ñ%×,Ñ,Ü˜D“>Ü%×2Ñ2×6Ñ6ð -ó €Gô
 	�‰×ÑÜÜ×#Ñ#×*Ñ*Ü$ ZÓ0Ü"-×":Ñ":×"OÑ"Oð +ó ÷ ‘'˜r�'Ó"ó	ó	
÷ 
‰”˜“Ó	!ß	‰˜Ð!=Ó	>ð ð €GØò 
 ˆð	Ü:¸7ÓCˆCð ‰?Ø�N‰N˜3Õð
 ð €Nøô ò 	Ü×ÑØRØ—
‘
ôñ ð	ús   Ã+DÄ)D:Ä9D:)Ú__doc__ÚloggingÚdjango.core.files.baser   Údjango.db.modelsr   r   Úaccounts.modelsr   r   r   Ú	getLoggerÚ__name__r0   r;   rG   © ó    r:   ú<module>rQ      s5   ðÙ QÛ å .ß -ç AÑ Aà	ˆ×	Ñ	˜8Ó	$€òKó\!rP   