
    a'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U R                  U R                  SU R                  U R                  U R                  S.S.05        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      nU$ ! [          a    [#        S5      ef = f)	Ncreated_dateupdated_date_id$setT)is_fleet_assignedassigned_fromassigned_tostatus)r   r   r   
fleet_infoz.Vehicle is already assigned to this workforce.)COLLECTION_NAMEdictr   utcnow
insert_onestrinserted_idFLEET_COLLECTION_NAME
update_oner   
vehicle_idr   r   r   WORKFORCE_COLLECTION_NAMEworkforce_idr   
ValueError)r   r   
collectionassignment_dataresultfleets_collectionworkforce_collectionworkforce_update_results           WC:\Suresh\moveshuttle\MDcreated\moveengine\app\v1\services\platform\workforcevehicle.py!create_vehicle_assignment_servicer,      sn   O$JiikO&.oo&7ON#&.oo&7ON#/K&&7!$V%7%7!8 45$$HT__-.)-%)%7%7#'#3#3-1)-););'+'7'7"&++	#	
	
"  "";<"6"A"AHT../0)-%)%7%7#'#3#3-1)-););'+'7'7"&++	#	
#
(  KIJJKs   DE E(
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$ )	Nr-   r#   r!   r   r   r   r   r   )r   r!   listfindr   
isinstancer   	isoformat)r-   r#   r.   r   r%   queryrecordsrs           r+   get_vehicle_assignments_servicer7   C   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   find_oneHTTPExceptionr    r   r   modified_count)r#   r   r%   r=   update_results        r+   unassign_vehicle_servicerB   Z   s    O$J $$$& J
 4dee ))	
5!"'0 ( 1	
	M ##q(4JKK ( 1J} Jx5&~6$\2%m4	
 r8   N)r   pymongo.errorsr   app.dbr   bsonr   typingr   'app.v1.models.platform.workforcevehicler   r   r   r"   MongoDBr   r,   r   r0   r7   rB    r8   r+   <module>rJ      s     ,    E%  ' 5K,= 5K8CSCS 5KX\ 5Kn 8C= \deh\i owoo   EI .%3 %H4D4D % %r8   