Esempio n. 1
0
 public function getOrderInfo($order_id)
 {
     $response = array();
     $foodjets_meal_plan_id = Order::where('id', '=', $order_id)->pluck('meal_plan_id');
     $order_data = Order::select('transaction_id', 'order_number', 'customer_id', 'driver_id', 'coupon_id', 'market_office_id', 'coupon_amount', 'credit', 'state_code', 'total_amount', 'market_office_city_delivery_zone_id')->where('id', '=', $order_id)->first();
     if (isset($order_data)) {
         $transaction_id = @$order_data->transaction_id;
         $order_number = @$order_data->order_number;
         $customer_id = @$order_data->customer_id;
         $driver_id = @$order_data->driver_id;
         $coupon_id = @$order_data->coupon_id;
         $market_office_id = @$order_data->market_office_id;
         $credit = @$order_data->credit;
         $state_code = @$order_data->state_code;
         //$this::setCurrentDatabase($state_code);
         $customer_current_credit = Customer::where('id', '=', $customer_id)->pluck('credit');
         $customer_new_credit = $customer_current_credit + $credit;
         /*if ($market_office_id) {
               $timezone = MarketOffice::Where('id', '=', $market_office_id)->pluck('timezone');
               date_default_timezone_set($timezone);
           }*/
         $total_amount = @$order_data->total_amount;
         $response['order_data'] = $order_data;
         $response['data'] = array($transaction_id, $order_number, $customer_id, $driver_id, $coupon_id, $market_office_id, $credit, $state_code, $customer_current_credit, $customer_new_credit, $total_amount, $foodjets_meal_plan_id);
     }
     return $response;
 }
Esempio n. 2
0
 protected function sendCancelOrderMail($order_id = NULL)
 {
     if ($order_id) {
         $order_info = array();
         $order_data = Order::select('order_number', 'customer_id')->where('id', '=', $order_id)->first();
         if ($order_data->order_number) {
             $order_info['order_number'] = $order_data->order_number;
             $order_info['customer_record'] = Customer::select('full_name', 'email', DB::raw('CONCAT(country_code,phone) AS phone'))->where('id', '=', $order_data->customer_id)->first();
             Mail::send('emails.cancel_order', array('name' => $order_info['customer_record']['full_name'], 'order_number' => $order_info['order_number']), function ($message) use($order_info) {
                 $message->from('*****@*****.**', 'Foodjets');
                 $message->to($order_info['customer_record']['email'], $order_info['customer_record']['full_name'])->subject('Cancel Order');
             });
         }
     }
 }
Esempio n. 3
0
 public function cancelOrderFromRedis($order_id, $zone_id, $db)
 {
     # Check order status [if in orderQeue or orderProcessing]
     # if (it in order queue)
     # set order hash value 9
     # if in processing Queue
     # remove data from processing
     # remove data from hash
     $this->redis->db($db);
     $order = $this->redis->hExists('orderQueue:' . $zone_id, $order_id);
     if ($order) {
         $testdata = $this->redis->hSet('orderQueue:' . $zone_id, $order_id, 9);
         # Remove from orderProcessing
         # $this->redis->hDel('orderProcessing:' . $zone_id, $order_id);
         # Remove from orderDetails
         # $this->redis->delete('orderDetails:' . $order_id);
         ##deleting task fron onfleet
         $order_data = Order::select('onfleet_task_id', 'onfleet_task_started')->where('id', '=', $order_id)->first();
         if (isset($order_data) && $order_data->onfleet_task_id != '') {
             $onfleet = new OnFleet();
             if ($order_data->onfleet_task_started != NULL) {
                 $onfleet->completeTask(array('id' => $order_data->onfleet_task_id, 'completionDetails' => array('success' => false, 'notes' => 'Task cancelled by customer.')));
             } else {
                 $onfleet->deleteTask(array('id' => $order_data->onfleet_task_id));
             }
         }
     }
 }
Esempio n. 4
0
 public function getAssignedOrders()
 {
     $input = Input::all();
     $response = array();
     try {
         $response['status'] = "1";
         $response['msg'] = "Success";
         $ApiRedis = new ApiRedis();
         $db = $this->redisDb;
         $orderProcessed = $ApiRedis->getOrderSpliceQueue($input['zone_id'], $db);
         $orderIds = array();
         $orders = array();
         foreach ($orderProcessed['assigned'] as $k => $v) {
             if ($k > 0) {
                 $orderHash = $ApiRedis->getOrderFromHash($k, $db);
                 if (empty($orderHash['address'])) {
                     $orderHash['address'] = "";
                 }
                 $order[$k] = $orderHash;
                 $orderIds[] = $k;
             }
         }
         if (count($orderIds) > 0) {
             $orderData = Order::select("order.id", "order.order_number", "order.market_office_city_delivery_zone_id", "customer.full_name", "driver.first_name", "driver.last_name", "order.customer_delivery_address", DB::raw("driver.id AS driver_id"))->join("customer", "customer.id", "=", "order.customer_id")->leftJoin('driver', 'driver.id', '=', 'order.driver_id')->whereIn("order.id", $orderIds)->get();
             foreach ($orderData as $value) {
                 $order[$value["id"]]["id"] = $value["id"];
                 $order[$value["id"]]["order_number"] = $value["order_number"] != "" ? $value["order_number"] : " ";
                 $order[$value["id"]]["customer_name"] = $value["full_name"] != "" ? $value["full_name"] : " ";
                 if ($value['last_name'] != null || $value['first_name'] != null) {
                     $order[$value["id"]]["driver_name"] = $value["first_name"] . " " . $value["last_name"];
                 } else {
                     $order[$value["id"]]["driver_name"] = "";
                 }
                 $order[$value["id"]]["show_driver"] = true;
                 if ($order[$value["id"]]["address"] == "") {
                     $order[$value["id"]]["address"] = $value['customer_delivery_address'] != "" ? $value['customer_delivery_address'] : " ";
                 }
             }
         }
         $response['orders'] = $order;
     } catch (Exception $e) {
         Log::error($e);
         $response['status'] = '0';
         $msg = (array) $e->getMessage();
         $response['msg'] = $msg[0];
     }
     return Response::json($response);
 }
Esempio n. 5
0
 protected function getOrderInfo($orderIds, $order)
 {
     $orderData = Order::select("order.id", "order.order_number", "order.market_office_city_delivery_zone_id", "customer.full_name", "driver.first_name", "driver.last_name", "order.customer_delivery_address", DB::raw("driver.id AS driver_id"))->join("customer", "customer.id", "=", "order.customer_id")->leftJoin('driver', 'driver.id', '=', 'order.driver_id')->whereIn("order.id", $orderIds)->get();
     foreach ($orderData as $value) {
         $order[$value["market_office_city_delivery_zone_id"]]['data'][$value["id"]]["id"] = $value["id"];
         $order[$value["market_office_city_delivery_zone_id"]]['data'][$value["id"]]["order_number"] = $value["order_number"] != "" ? $value["order_number"] : " ";
         $order[$value["market_office_city_delivery_zone_id"]]['data'][$value["id"]]["customer_name"] = $value["full_name"] != "" ? $value["full_name"] : " ";
         if (empty($order[$value["market_office_city_delivery_zone_id"]]['data'][$value["id"]]["driver_name"])) {
             $order[$value["market_office_city_delivery_zone_id"]]['data'][$value["id"]]["driver_name"] = " ";
         }
         if ($order[$value["market_office_city_delivery_zone_id"]]['data'][$value["id"]]["address"] == "") {
             $order[$value["market_office_city_delivery_zone_id"]]['data'][$value["id"]]["address"] = $value['customer_delivery_address'];
         }
         if (empty($order[$value["market_office_city_delivery_zone_id"]]['data'][$value["id"]]["driver_id"])) {
             $order[$value["market_office_city_delivery_zone_id"]]['data'][$value["id"]]["driver_id"] = "";
         }
         $time = time();
         //checking the color it should show based on the order current status
         $order_status = $order[$value["market_office_city_delivery_zone_id"]]['data'][$value["id"]]['order_status'];
         $color = "green";
         if ($order_status == "Unassigned") {
             $color = "yellow";
         }
         if ($order_status == "Processing Unassigned") {
             $color = "yellow";
         }
         if ($order_status == "Cancelling") {
             $color = "red";
         }
         $order[$value["market_office_city_delivery_zone_id"]]['data'][$value["id"]]['status_color'] = $color;
         //getting the order complete timing status
         if (isset($order[$value["market_office_city_delivery_zone_id"]]['data'][$value["id"]]['expected_time'])) {
             $expected_time = $order[$value["market_office_city_delivery_zone_id"]]['data'][$value["id"]]['expected_time'];
             $time_diff = $expected_time - $time;
             $time_diff = $time_diff < 0 ? 0 : $time_diff;
             $diff = round(abs($time_diff) / 60, 0);
             if ($diff <= 0 && ($order_status == "Unassigned" || $order_status == "Processing Unassigned")) {
                 $order[$value["market_office_city_delivery_zone_id"]]['data'][$value["id"]]["color"] = array("none" => false, "within_five" => false, "late" => true);
             } else {
                 if ($diff <= 5 && ($order_status == "Unassigned" || $order_status == "Processing Unassigned")) {
                     $order[$value["market_office_city_delivery_zone_id"]]['data'][$value["id"]]["color"] = array("none" => false, "within_five" => true, "late" => false);
                 } else {
                     $order[$value["market_office_city_delivery_zone_id"]]['data'][$value["id"]]["color"] = array("none" => true, "within_five" => false, "late" => false);
                 }
             }
         } else {
             $order[$value["market_office_city_delivery_zone_id"]]['data'][$value["id"]]["color"] = array("none" => true, "within_five" => false, "late" => false);
         }
     }
     return $order;
 }