Example #1
0
 public function sign(Request $request, $id)
 {
     $delivery = Delivery::find($id);
     if (!$delivery || $delivery->state == 0) {
         return Response::json("Error", 400);
     } else {
         //Okay,  let's check if the  the current logged agent
         $userId = Authorizer::getResourceOwnerId();
         $agent = Agent::where('user_id', $userId)->first();
         if (!$agent) {
             return Response::json("Error", 400);
         }
         if ($delivery->agent_id != $agent->id) {
             return Response::json("Error", 403);
         }
         $file = $request->file('signature');
         if ($file !== null) {
             if ($file->isValid()) {
                 $file->move(public_path() . "/uploads", $id . "_signature.png");
                 return Response::json("OK", 200);
             }
         }
     }
     return Response::json("Error", 400);
 }
Example #2
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);
     }
 }