Example #1
0
 public function postLast()
 {
     $in = Input::get();
     $orderid = trim($in['orderId']);
     $orderff = trim($in['orderFf']);
     $delivery_id = trim($in['delivery_id']);
     if (isset($in['delivery_id'])) {
         $order = Shipment::where('fulfillment_code', '=', $orderff)->where('no_sales_order', '=', $orderid)->where('delivery_id', '=', $delivery_id)->orderBy('pick_up_date', 'desc')->first();
     } else {
         $order = Shipment::where('fulfillment_code', '=', $orderff)->where('no_sales_order', '=', $orderid)->orderBy('pick_up_date', 'desc')->first();
     }
     $statuses = array();
     if ($order) {
         if ($order->logistic_type == 'external') {
             $conf = Config::get('cs.' . $order->consignee_olshop_cust);
             if (!isset($conf['status'])) {
                 $conf = Config::get('cs.default');
             }
             $mdl = Threeplstatuses::where($conf['awb'], '=', strval($order->{$conf['order_awb']}))->where(function ($q) use($order) {
                 $q->where('consignee_olshop_cust', '=', strval($order->consignee_olshop_cust))->orWhere('consignee_logistic_id', '=', strval($order->consignee_olshop_cust));
             });
             if (count($conf['group']) > 0) {
                 foreach ($conf['group'] as $g) {
                     $mdl = $mdl->groupBy($g);
                 }
             }
             $mdl = $mdl->orderBy($conf['order'], 'desc');
             if ($conf['status'] == 'single') {
                 //$statuses = $mdl->take(1)->timeout(-1)->get();
                 $statuses = $mdl->timeout(-1)->first();
             } else {
                 if (count($conf['get']) > 0) {
                     $statuses = $mdl->timeout(-1)->get($conf['get']);
                 } else {
                     $statuses = $mdl->timeout(-1)->get();
                 }
             }
             if ($statuses) {
                 $statuses = $statuses->toArray();
             } else {
                 $statuses = array();
             }
             //print_r($statuses);
         }
         $order->picList = $this->picList($order);
     }
     return View::make('cs.lastdetail')->with('order', $order)->with('status', $statuses)->render();
 }
 private function saveStatus($log, $logistic_name, $logistic_cust_code)
 {
     //SAP use individual AWB request
     $statuses = $log['shipment']['statuses'];
     if (is_array($statuses)) {
         foreach ($statuses as $stat) {
             $st = Threeplstatuses::where('consignee_olshop_cust', '=', $logistic_cust_code)->where('awb', '=', $log['shipment']['code'])->where('datetime', $stat['datetime'])->first();
             if ($st) {
             } else {
                 if (isset($stat['datetime'])) {
                     $stat['ts'] = new MongoDate(strtotime($stat['datetime']));
                 } else {
                     $stat['ts'] = new MongoDate();
                 }
                 $stat['raw'] = 0;
                 $stat['awb'] = $log['shipment']['code'];
                 $stat['consignee_logistic_id'] = $logistic_name;
                 $stat['consignee_olshop_cust'] = $logistic_cust_code;
                 Threeplstatuses::insert($stat);
             }
         }
     }
     $stat = $log['shipment'];
     if (isset($stat['datetime'])) {
         $stat['ts'] = new MongoDate(strtotime($stat['datetime']));
     } else {
         $stat['ts'] = new MongoDate();
     }
     //$stat['raw'] = 1;
     //$stat['awb'] = $log['shipment']['code'];
     //$stat['consignee_logistic_id'] = $logistic_name;
     //$stat['consignee_olshop_cust'] = $logistic_cust_code;
     //Threeplstatuses::insert($stat);
     //$stat['timestamp'] = new \MongoDate();
     //Threeplstatuslog::insert($stat);
 }