
    ՞h              
           S SK J r   S SKJr  S SKJr  S SKJr  S SKJr  S SK	J
r
  SrSrS	rS
\
S\R                  S\4S jrS\S\\   S\\   S\R                  S\4
S jrS\S\R                  S\4S jrg)    )datetime)DuplicateKeyError)database)ObjectId)Optional)VehicleAssignmentworkforce_vehiclefleets	workforcedatadbreturnc                 @   U[            nU R                  5       n[        R                  " 5       US'   [        R                  " 5       US'    UR	                  U5      n[        UR                  5      US'   U[           nUR                  S[        U R                  5      0SSSSSS.5      nU[           nUR                  S[        U R                  5      0SSU R                  U R                  SU R                  U R                  U R                  S.S	.05        U[           nSU R                  U R                  SU R                  U R                  U R                  U(       a  UR!                  S
5      OS U(       a  UR!                  S5      OS U(       a  UR!                  S5      OS U(       a  UR!                  S5      OS U(       a  UR!                  S5      OS S.	S	.nUR                  S[        U R"                  5      0SU05        U$ ! [$         a    ['        S5      ef = f)Ncreated_dateupdated_date_id   )
fleet_nameregistration_numbercolorvehicle_imagecapacity$setT)is_fleet_assignedassigned_fromassigned_tostatus)r   r   r   
fleet_infor   r   r   r   r   )	r   r   r   r   r   r   r   r   r   z.Vehicle is already assigned to this workforce.)COLLECTION_NAMEdictr   utcnow
insert_onestrinserted_idFLEET_COLLECTION_NAMEfind_oner   
vehicle_id
update_oner   r   r   WORKFORCE_COLLECTION_NAMEgetworkforce_idr   
ValueError)	r   r   
collectionassignment_dataresultfleets_collection	fleet_docworkforce_collectionworkforce_update_datas	            WC:\Suresh\moveshuttle\MDcreated\moveengine\app\v1\services\platform\workforcevehicle.py!create_vehicle_assignment_servicer5      s
   O$JiikO&.oo&7ON#&.oo&7ON#AK&&7!$V%7%7!8 45 &..x7P/Q#$T
 	 45$$HT__-.)-%)%7%7#'#3#3-1)-););'+'7'7"&++	#	
	
$  "";<!%!//++%)!%!3!3#//++=FimmL9DOXy}}5J'K^b3<w/$CL!?RV9BIMM*5
	!
" 	''HT../0*+	
  KIJJKs   F;H H
account_idr+   fleet_idc                 n   U[            nSU 0nU(       a  XS'   [        (       a	  [        US'   [        UR                  U5      5      nU H  n[	        US   5      US'   SU;   a.  [        US   [        5      (       a  US   R                  5       US'   SU;   a.  [        US   [        5      (       a  US   R                  5       US'   SU;   a.  [        US   [        5      (       a  US   R                  5       US'   SU;   d  M  [        US   [        5      (       d  M  US   R                  5       US'   M     U$ )	Nr6   r+   r'   r   r   r   r   r   )r   r'   listfindr#   
isinstancer   	isoformat)r6   r+   r7   r   r-   queryrecordsrs           r4   get_vehicle_assignments_servicer@   U   s)   O$J:&E ,nz(l:??5)*Gqx=%aJq/A8$L$L!"?!3!=!=!?AoA*Q}-=x"H"H /99;AmQ:a.?#J#J !. 1 ; ; =AnQ:a.?#J#J !. 1 ; ; =An  N    c                 x   U[            nUR                  U SS.5      nU(       d
  [        SSS9eUR                  SUS   0S[        R
                  " 5       S[        R
                  " 5       S	.05      nUR                  S
:X  a
  [        SSS9e[        R
                  " 5       US'   SUS'   SUS   US   SUS   S.S.$ )NT)r+   r   i  z.No active assignment found for this workforce.)status_codedetailr   r   F)r   r   r   r   i  zUnassignment failed.r   r   z Vehicle unassigned successfully.r+   r'   )r+   r'   r   r   )message
assignment)r   r&   HTTPExceptionr(   r   r!   modified_count)r+   r   r-   rF   update_results        r4   unassign_vehicle_servicerJ   l   s    O$J $$$& J
 4dee ))	
5!"'0 ( 1	
	M ##q(4JKK ( 1J} Jx5&~6$\2%m4	
 rA   N)r   pymongo.errorsr   app.dbr   bsonr   typingr   'app.v1.models.platform.workforcevehicler   r   r%   r)   MongoDBr    r5   r#   r9   r@   rJ    rA   r4   <module>rR      s     ,    E%  ' GK,= GK8CSCS GKX\ GKR 8C= \deh\i owoo   EI .%3 %H4D4D % %rA   