
    ye!o                         d dl mZmZ d dlZd dlmZ d dlZd dlmZ d dlmZ d dl	Z	d dl
mZ d Zd Zd	 Zd
 Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Zd Z d Z!d Z"d Z#d Z$d  Z%d! Z&y)"    )renderHttpResponseN)r   )JsonResponse)uniform)defaultdictc                     	 t        j                  d      } | j                          | j                         }|j                  dg       }|S # t         j                  j
                  $ r}t        d|        g }Y d }~|S d }~ww xY w)Nz6http://210.56.21.197/trucking/index.php/Api/adminLoginresponseError fetching data: requestsgetraise_for_statusjson
exceptionsRequestExceptionprintr	   	data_senddataes       *E:\TRUCKING_PROJECT\trucking\main\views.pyget_users_datar      s    	<<DF!!#MMO	}}Z, K	 // %aS)*K	   AA B(A>>Bc                 *   	 t        |        t        j                  dd| i      }|j                          |j	                         }|j                  dg       }|S # t        j                  j                  $ r}t        d|        g }Y d }~|S d }~ww xY w)N9http://210.56.21.197/trucking/index.php/Api/shipmentGraphmonth)r   r	   r
   )r   r   postr   r   r   r   r   )r   r	   r   r   r   s        r   get_monthly_graph_datar      s    e ==G5!
 	!!#MMO	}}Z, K	 // %aS)*K	s   AA B7BBc                     	 t        j                  d      } | j                          | j                         }|j                  dg       }|S # t         j                  j
                  $ r}t        d|        g }Y d }~|S d }~ww xY w)Nz<http://210.56.21.197/trucking/index.php/Api/getDriverDetailsr	   r
   r   r   s       r   get_drivers_datar    0   s    	<<JL!!#MMO	}}Z, K	 // %aS)*K	r   c                     	 t        j                  d      } | j                          | j                         }|j                  dg       }|S # t         j                  j
                  $ r}t        d|        g }Y d }~|S d }~ww xY w)Nz=http://210.56.21.197/trucking/index.php/Api/getShipperDetailsr	   r
   r   r   s       r   get_shiper_datar"   ?   s    	<<KM!!#MMO	}}Z, K	 // %aS)*K	r   c                     	 t        j                  d      } | j                          | j                         }|j                  dg       }|S # t         j                  j
                  $ r}t        d|        g }Y d }~|S d }~ww xY w)NzAhttp://210.56.21.197/trucking/index.php/Api/getAllOrdersInWaitingr	   r
   r   r   s       r   get_pending_order_datar$   N       	<<OQ!!#MMO	}}Z, K	 // %aS)*K	r   c                     	 t        j                  d      } | j                          | j                         }|j                  dg       }|S # t         j                  j
                  $ r}t        d|        g }Y d }~|S d }~ww xY w)NzBhttp://210.56.21.197/trucking/index.php/Api/getAllOrdersInProgressr	   r
   r   r   s       r   get_inprogress_order_datar'   ]   s    	<<PR!!#MMO	}}Z, K	 // %aS)*K	r   c                     	 t        j                  d      } | j                          | j                         }|j                  dg       }|S # t         j                  j
                  $ r}t        d|        g }Y d }~|S d }~ww xY w)NzAhttp://210.56.21.197/trucking/index.php/Api/getAllOrdersCompletedr	   r
   r   r   s       r   completed_order_datar)   l   r%   r   c                     	 t        j                  d      } | j                          | j                         }|j                  dg       }|S # t         j                  j
                  $ r}t        d|        g }Y d }~|S d }~ww xY w)NzAhttp://210.56.21.197/trucking/index.php/Api/getAllOrdersCancelledr	   r
   r   r   s       r   cancelled_order_datar+   {   r%   r   c                    t         j                  j                         }|j                  d      }t	        d|       t               }|ry|j                  dd      }|j                  dd      }|j                  dd      }|j                  dd      }|j                  dd      }|j                  d	d      }	|j                  d
g       }
g }g }g }g }g }g }|
D ]  }|j                         D ]  \  }}|j                  dd      }|j                  dd      }|j                  dd      }|j                  dd      }|j                  |       |j                  |       |j                  |       |j                  |       ||z   |z   |z   }|j                  |       |j                  |         t	        |       t	        |       nd}d}d}d}d}d}	g }g }g }g }g }g }|||||d}g d}g d}d}t        | d|||||||	||||||d      S )Nz%BzCurrent Month:shipper_countr   driver_countpending_order_countshipment_process_countcompleted_Countcancelled_Count
graph_data1234TotalWaitingzIn progress	Delivered	Cancelled)zIncorrect addresszWeather conditionszFederal HolidayszDamage during transit)(            z11%zdashboard.html)userDatar-   r.   r/   r0   r1   r2   series_data
categoriescurrent_monthlabelsseriesavg_exceptions)
datetimedatetodaystrftimer   r   r   itemsappendr   )requestcurrent_daterD   rA   r-   r.   r/   r0   r1   r2   r3   waitingshipping	completed	cancelledtotal_ordersdatesday_datarI   stateswaiting_countshipping_countcompleted_countcancelled_counttotal_order_countrB   rE   rF   rG   s                                r   	dashboardr]      sc   ==&&(L !))$/M	
M*H _a8||NA6&ll+@!D!).F!J",,'8!<",,'8!<\\,3
 		" 	#H ( 0 #f &

3 2!'C!3"(**S!"4"(**S!"4/1  /3  /3$1"%#%4%57F%G!##%68T"#	#" 	le
 !"		
 KF FN'+&$2"8**"&(.      c                    | j                   dk(  r| j                  j                  d      dk(  r	 t        j                  | j
                        }|d   }t        |       d}d|i}t        j                  ||      }|j                  r5t        d       |j                         }g }g }g }g }	g }
g }|r|d   }|r|D ]  }|j                         D ]  \  }}|j                  d	d
      }|j                  dd
      }|j                  dd
      }|j                  dd
      }|j                  |       |j                  |       |j                  |       |	j                  |       ||z   |z   |z   }|
j                  |       |j                  |         t        |
       t        |       |
||||	d}t        d||d      S t        ddd      S t        ddi      S # t        $ r!}t        dt        |      d      cY d }~S d }~ww xY w)NPOSTx-requested-withXMLHttpRequestr   r   r   zAPI request successfulr	   r4   r   r5   r6   r7   r8   success)statusrB   rC   failure!Failed to connect to external APIre   messageerrorInvalid request)methodheadersr   r   loadsbodyr   r   r   okrL   rM   r   	Exceptionstr)rN   r   r   api_urlpayloadr	   rP   rQ   rR   rS   rT   rU   r3   rV   rI   rW   rX   rY   rZ   r[   r\   rB   r   s                          r   updateGraphru      s*   ~~GOO$7$78J$KO_$_B	J::gll+DME%L RGG  }}W7;H {{./}}		!!%j!1J!(2 3H080@ 3f06

30B17C1C28**S!2D28**S!2D ' ? ( A ) 0 0/ C ) 0 0/ C4A$2535D5EGV5W 1 , 3 35F H %T 233" l+e *&#+!*!* $y38%: ; ; $yEh$ijj W&7899  	J9Q HII	Js$   FG ?G 	H#G?9H?Hc                 l    t               }t        |       |rt        | dd|i      S t        | ddg i      S )Nzshiper_list.htmlshipper_data_list)r"   r   r   )rN   shipperDatas     r   shiperDetailsry   =  sC    !#K	+g14G3UVV g14G3LMMr^   c                 l    t               }t        |       |rt        | dd|i      S t        | ddg i      S )Nzdriver_list.htmldriver_data_list)r    r   r   )rN   
driverDatas     r   driverDetailsr}   G  sC    !#J	*g14F
3STT g14F3KLLr^   c                 V    t               }|rt        | dd|i      S t        | ddg i      S )NzpendingOrderDetails.htmlpending_orders_data)r$   r   )rN   pendingOrdersDatas     r   pendingOrdersr   Q  s>    .0g9<QSd;eff g9<QSU;VWWr^   c                 V    t               }|rt        | dd|i      S t        | ddg i      S )NzinprogressOrderDetails.htmlinprogress_orders_data)r'   r   )rN   inprogressOrdersDatas     r   inprogressOrdersr   [  s@    46 g<?WYm>noo g<?WY[>\]]r^   c                 V    t               }|rt        | dd|i      S t        | ddg i      S )NzcompletedOrderDetails.htmlr)   )r)   r   )rN   completedOrdersDatas     r   completedOrdersr   f  s@    .0 g;>TVi=jkk g;>TVX=YZZr^   c                 l    t               }t        |       |rt        | dd|i      S t        | ddg i      S )NzcancelledOrderDetails.htmlr+   )r+   r   r   )rN   cancelledOrdersDatas     r   cancelledOrdersr   q  sG    .0	
g;>TWj=kll g;>TVX=YZZr^   c                     t        | d      S )NzorderTracking.html)r   )rN   s    r   ordersTrackingr   |  s    '/00r^   c                    | j                   j                  d      }| j                   j                  d      }| j                   j                  d      }t        |       | j                   j                  d      }t        |       | j                   j                  d      }t        |       | j                   j                  d      }t        |       d}d}d	}	d
}
t        | d|||||||||	|
d
      S )NorderId
orderPriceorderDelivery
driverNamedriverEmaildriverPhone48?@DR@Q(>@j+Q@zpendingOrderTracking.html)
order_idorder_priceorder_delivery_timedriver_namedriver_emaildriver_phone
origin_lat
origin_lngdestination_latdestination_lngGETr   r   r   )rN   r   r   r   r   r   r   r   r   r   r   s              r   pendingOrdersTrackingr     s    kkooi(G.JKKOOO4M	-.J	*++//-0K	+++//-0K	+ JJOO'6W]g  AN  _i  {F  Xc  s}GQL[L[9] ^ ^r^   c                    | j                   j                  d      }| j                   j                  d      }| j                   j                  d      }t        |       | j                   j                  d      }t        |       | j                   j                  d      }t        |       | j                   j                  d      }t        |       d}d}d	}	d
}
d}d}t        | d|||||||||	|
||d      S )Nr   r   r   r   r   r   gx#?@gڊR@gΪV8@gP@gs2>@g|PkQ@zinprogressOrderTracking.html)r   r   r   r   r   r   r   r   r   r   
driver_lat
driver_lngr   )rN   r   r   r   r   r   r   r   r   r   r   r   r   s                r   inprogressOrdersTrackingr     s    kkooi(G.JKKOOO4M	-.J	*++//-0K	+++//-0K	+ JJOOJJ'9`j  DQ  bl  ~I  [f  v@JTO^O^JTJT<X Y Yr^   c                    | j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }t        |       | j                   j                  d      }t        |       | j                   j                  d      }t        |       | j                   j                  d      }t        |       d}d	}	d
}
d}t        | d|||||||||	|
|d      S )Nr   r   r   orderDeliveredr   r   r   r   r   r   r   zcompletedOrderTracking.html)r   r   r   order_deliveredr   r   r   r   r   r   r   r   )rN   r   r   r   r   r   r   r   r   r   r   r   s               r   completedOrdersTrackingr     s	   kkooi(G.JKKOOO4M[[__%56N	-.J	*++//-0K	+++//-0K	+ JJOO'8w_i  CP  es  DN  `k  }H  XbISN]N];_ ` `r^   c                    | j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }t        |       | j                   j                  d      }t        |       | j                   j                  d      }t        |       | j                   j                  d      }t        |       d}d	}	d
}
d}t        | d|||||||||	|
|d      S )Nr   r   r   cancelledReasonr   r   r   r   r   r   r   zcancelledOrderTracking.html)r   r   r   cancelled_reasonr   r   r   r   r   r   r   r   )rN   r   r   r   r   r   r   r   r   r   r   r   s               r   cancelledOrdersTrackingr     s	   kkooi(G.JKKOOO4Mkkoo&78O	-.J	*++//-0K	+++//-0K	+ JJOO'8w_i  CP  fu  FP  bm  J  ZdISN]N];_ ` `r^   c                    | j                   dk(  r| j                  j                  d      dk(  rz	 t        j                  | j
                        }|d   }|d   }d}||d}t        j                  ||      }|j                  rt               }t        d	|d
      S t        ddd      S t        ddi      S # t        $ r!}t        dt        |      d      cY d }~S d }~ww xY w)Nr`   ra   rb   user_idaccount_state;http://210.56.21.197/trucking/index.php/Api/updateUserStater   r   rc   rd   )re   rw   rf   rg   rh   rj   rk   )rl   rm   r   r   rn   ro   r   r   rp   r"   r   rq   rr   )	rN   r   r   r   rs   rt   r	   rx   r   s	            r   update_shiper_stater     s    ~~GOO$7$78J$KO_$_	J::gll+D9oG 1M TG"!.G  }}W7;H {{-/#y{$[\\ $yEh$ijj W&7899  	J9Q HII	J$   A*B5 B5 5	C>CCCc                    | j                   dk(  r| j                  j                  d      dk(  rz	 t        j                  | j
                        }|d   }|d   }d}||d}t        j                  ||      }|j                  rt               }t        d	|d
      S t        ddd      S t        ddi      S # t        $ r!}t        dt        |      d      cY d }~S d }~ww xY w)Nr`   ra   rb   r   r   r   r   rc   rd   )re   r{   rf   rg   rh   rj   rk   )rl   rm   r   r   rn   ro   r   r   rp   r    r   rq   rr   )	rN   r   r   r   rs   rt   r	   r|   r   s	            r   update_driver_stater     s    ~~GOO$7$78J$KO_$_	J::gll+D9oG 1M TG"!.G  }}W7;H {{-/
#yj$YZZ $yEh$ijj W&7899  	J9Q HII	Jr   c                    | j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d	      }	| j                   j                  d
      }
| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }t        | di d|d|d|d|d|d|d|d|d|	d|
d|d|d|d|d |d!|      S )"Nr   r   	ordertimer   pickupAddressdestinationAddressisFullTruck	cargoType	cargoSizecargoWeightr   r   r   shipperNameshipperEmailshipperPhonezpendingOrderMoreDetails.htmlr   r   
order_timer   pickup_addressdestination_addressis_full_truck
cargo_type
cargo_sizecargo_weightshipper_nameshipper_emailshipper_phoner   r   r   r   r   r   )rN   r   r   	orderTimer   r   r   r   r   r   r   r   r   r   r   r   r   s                    r   pending_detailsr   *  sh   kkooi(G.J,IKKOOO4MKKOOO4M )=>++//-0K,I,I++//-0K.J++//-0K++//-0K++//-0K;;??>2L;;??>2L'9  <VJ  <VQ^`j  <Vlx  {D  <V  F[  ]j  <V  l|  ~K  <V  Mb  dv  <V  xG  IT  <V  Vb  dm  <V  o{  }F  <V  HV  Xc  <V  es  u@  <V  BQ  S_  <V  ap  r~  <V  @M  OY  <V  [i  kv  <V  xF  HS  <V  W  Wr^   c                    | j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d	      }	| j                   j                  d
      }
| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }t        | di d|d|d|d|d|d|d|d|d|	d|
d|d|d|d |d!|d"|d#|      S )$Nr   r   r   r   orderPickupr   r   r   r   r   r   r   r   r   r   r   r   zinprogressOrderMoreDetails.htmlr   r   r   r   order_pickupr   r   r   r   r   r   r   r   r   r   r   r   r   )rN   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s                     r   inprogress_detailsr   ?  s   kkooi(G.J,IKKOOO4M++//-0KKKOOO4M )=>++//-0K,I,I++//-0K.J++//-0K++//-0K++//-0K;;??>2L;;??>2L'<  ?vz7  ?vTacm  ?vo{  ~G  ?v  I^  `m  ?v  o}  J  ?v  L\  ^k  ?v  mB  DV  ?v  Xg  it  ?v  vB  DM  ?v  O[  ]f  ?v  hv  xC  ?v  ES  U`  ?v  bq  s  ?v  AP  R^  ?v  `m  oy  ?v  {I  KV  ?v  Xf  hs  ?v  w  wr^   c                 V   | j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d	      }	| j                   j                  d
      }
| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }t        | di d|d|d|d|d|d|d|d|d|	d|
d|d|d |d!|d"|d#|d$|d%|i      S )&Nr   r   r   r   r   orderDeleverdr   r   r   r   r   r   r   r   r   r   r   r   zcompletedOrderMoreDetails.htmlr   r   r   r   r   order_deleverdr   r   r   r   r   r   r   r   r   r   r   r   r   )rN   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s                      r   completed_detailsr   U  s   kkooi(G.J,IKKOOO4M++//-0KKKOOO4MKKOOO4M )=>++//-0K,I,I++//-0K.J++//-0K++//-0K++//-0K;;??>2L;;??>2L';  >V	j'  >V	S`bl  >V	nz  }F  >V	  H]  _l  >V	  n|  ~I  >V	  K[  ]j  >V	  l|  ~K  >V	  Mb  dv  >V	  xG  IT  >V	  Vb  dm  >V	  o{  }F  >V	  HV  Xc  >V	  es  u@  >V	  BQ  S_  >V	  ap  r~  >V	  @M  OY  >V	  [i  kv  >V	  xF	  H	S	  >V	  W	  W	r^   c                    | j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d	      }	| j                   j                  d
      }
| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }| j                   j                  d      }t        | di d|d|d|d|d|d|d|d|d|	d|
d|d|d|d |d!|d"|d#|      S )$Nr   r   exceptionReasonr   r   r   r   r   r   r   r   r   r   r   r   r   r   zcancelledOrderMoreDetails.htmlr   r   exception_reasonr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )rN   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   s                     r   cancelled_detailsr   l  s   kkooi(G.Jkkoo&78O,IKKOOO4MKKOOO4M )=>++//-0K,I,I++//-0K.J++//-0K++//-0K++//-0K;;??>2L;;??>2L';  >}j'  >}S`bl  >}  oA  CR  >}  T`  bk  >}  mB  DQ  >}  Sc  er  >}  tI  K]  >}  _n  p{  >}  }I  KT  >}  Vb  dm  >}  o}  J  >}  LZ  \g  >}  ix  zF  >}  HW  Ye  >}  gt  v@  >}  BP  R]  >}  _m  oz  >}  ~  ~r^   )'django.shortcutsr   r   r   django.httpr   r   randomr   rH   collectionsr   r   r   r    r"   r$   r'   r)   r+   r]   ru   ry   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r^   r   <module>r      s    1  $  $   #*"dNG:TNMX^[[1
^0Y8`2`2:B:DW*w,W	.~r^   