예제 #1
0
 public function track($tracking_code)
 {
     if (!empty($tracking_code)) {
         $delivery = Delivery::where("tracking_code", $tracking_code)->first();
         if (!$delivery) {
             abort(404);
         }
         $latlng = null;
         if ($delivery->state == 0) {
             $latlng = explode(',', $delivery->sender_position);
         } else {
             if ($delivery->state == 1 && $delivery->agent) {
                 $latlng = explode(',', $delivery->agent->last_position);
             } else {
                 if ($delivery->state == 2) {
                     $latlng = explode(',', $delivery->recipient_position);
                 }
             }
         }
         $lat = $latlng[0];
         $lng = $latlng[1];
         $state_text = array("Waiting for pickup", "Being delivered", "Delivered");
         $current_dt = new DateTime();
         $data = array('tracking_code' => $tracking_code, 'delivery' => $delivery, 'title' => 'Delivery Tracking', 'lat' => $lat, 'lng' => $lng, 'state' => $state_text[$delivery->state], 'estimated_pickup' => (new DateTime($delivery->estimated_pickup))->format('H:i'), 'estimated_delivery' => (new DateTime($delivery->estimated_delivery))->format('H:i'), 'current_dt' => $current_dt->format('D, d M Y, H:i'));
         return view('track', $data);
     } else {
         abort(404);
     }
 }