/**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function postBox()
 {
     $key = \Input::get('key');
     $appname = \Input::has('app') ? \Input::get('app') : 'app.name';
     //$user = \Apiauth::user($key);
     $user = \Device::where('key', '=', $key)->first();
     if (!$user) {
         $actor = 'no id : no name';
         \Event::fire('log.api', array($this->controller_name, 'post', $actor, 'device not found, upload image failed'));
         return \Response::json(array('status' => 'ERR:NODEVICE', 'timestamp' => time(), 'message' => 'Device Unregistered'));
     }
     $json = \Input::all();
     $batch = \Input::get('batch');
     $result = array();
     foreach ($json as $j) {
         //$j['mtimestamp'] = new \MongoDate(time());
         if (is_array($j)) {
             $blog = new \Boxid();
             foreach ($j as $k => $v) {
                 $blog->{$k} = $v;
             }
             $blog->appname = $appname;
             $blog->mtimestamp = new \MongoDate(time());
             $box = \Box::where('delivery_id', '=', $blog->deliveryId)->where('merchant_trans_id', '=', $blog->merchantTransId)->where('fulfillment_code', '=', $blog->fulfillmentCode)->where('box_id', '=', $blog->boxId)->first();
             if ($box) {
                 if ($appname == \Config::get('jex.pickup_app')) {
                     $box->pickupStatus = $blog->pickupStatus;
                 } elseif ($appname == \Config::get('jex.hub_app')) {
                     $box->warehouseStatus = $blog->warehouseStatus;
                 } else {
                     $box->deliveryStatus = $blog->deliveryStatus;
                     $box->courierStatus = $blog->courierStatus;
                 }
                 $box->save();
             }
             $r = $blog->save();
             if ($r) {
                 $result[] = array('status' => 'OK', 'timestamp' => time(), 'message' => 'log inserted');
             } else {
                 $result[] = array('status' => 'NOK', 'timestamp' => time(), 'message' => 'insertion failed');
             }
         }
     }
     //print_r($result);
     //die();
     $actor = $user->identifier . ' : ' . $user->devname;
     \Event::fire('log.api', array($this->controller_name, 'get', $actor, 'sync scan log'));
     return Response::json($result);
 }
Esempio n. 2
0
 public function postChangestatus()
 {
     $in = Input::get();
     $results = Box::whereIn('_id', $in['box_ids'])->get();
     $delivery_status = $in['delivery_status'];
     $courier_status = $in['courier_status'];
     $warehouse_status = $in['warehouse_status'];
     $position = $in['position'];
     $note = $in['note'];
     date_default_timezone_set('Asia/Jakarta');
     $res = false;
     $ts = new MongoDate();
     $setpendingcount = array();
     foreach ($results as $bx) {
         $prebx = clone $bx;
         $sh = Shipment::where('delivery_id', '=', $bx->delivery_id)->first();
         //$sh->pick_up_date = new MongoDate(strtotime($in['date'])) ;
         if ($sh) {
             $pre = clone $sh;
             if (is_null($delivery_status) || $delivery_status == '') {
             } else {
                 $sh->status = $delivery_status;
                 $sh->last_action_ts = $ts;
                 $sh->last_action = 'Change Status by Admin';
                 $sh->last_reason = $in['reason'];
                 $this->saveDeliveryNote($delivery_status, $note, $ts, $sh);
                 if ($delivery_status == Config::get('jayon.trans_status_mobile_pending')) {
                     if (in_array($sh->delivery_id, $setpendingcount)) {
                     } else {
                         $sh->pending_count = $sh->pending_count + 1;
                     }
                     $setpendingcount[] = $sh->delivery_id;
                     $setpendingcount = array_unique($setpendingcount);
                 }
             }
             if (is_null($courier_status) || $courier_status == '') {
             } else {
                 $sh->courier_status = $courier_status;
             }
             if (is_null($warehouse_status) || $warehouse_status == '') {
             } else {
                 $sh->warehouse_status = $warehouse_status;
             }
             if (is_null($position) || $position == '') {
             } else {
                 $sh->position = $position;
             }
             $sh->last_action_ts = $ts;
             $sh->last_action = 'Change Status';
             $sh->last_reason = $in['reason'];
             $sh->save();
             $hdata = array();
             $hdata['historyTimestamp'] = $ts;
             $hdata['historyAction'] = 'change_status';
             $hdata['historySequence'] = 1;
             $hdata['historyObjectType'] = 'shipment';
             $hdata['historyObject'] = $sh->toArray();
             $hdata['actor'] = Auth::user()->fullname;
             $hdata['actor_id'] = Auth::user()->_id;
             History::insert($hdata);
             $sdata = array();
             $sdata['timestamp'] = $ts;
             $sdata['action'] = 'change_status';
             $sdata['reason'] = $in['reason'];
             $sdata['objectType'] = 'shipment';
             $sdata['object'] = $sh->toArray();
             $sdata['preObject'] = $pre->toArray();
             $sdata['actor'] = Auth::user()->fullname;
             $sdata['actor_id'] = Auth::user()->_id;
             Shipmentlog::insert($sdata);
         }
         if (is_null($delivery_status) || $delivery_status == '') {
         } else {
             $bx->deliveryStatus = $delivery_status;
         }
         if (is_null($courier_status) || $courier_status == '') {
         } else {
             $bx->courierStatus = $courier_status;
         }
         if (is_null($warehouse_status) || $warehouse_status == '') {
         } else {
             $bx->warehouseStatus = $warehouse_status;
         }
         if (is_null($position) || $position == '') {
         } else {
             $bx->position = $position;
         }
         $bx->save();
         $hdata = array();
         $hdata['historyTimestamp'] = $ts;
         $hdata['historyAction'] = 'change_status';
         $hdata['historySequence'] = 1;
         $hdata['historyObjectType'] = 'box';
         $hdata['historyObject'] = $bx->toArray();
         $hdata['actor'] = Auth::user()->fullname;
         $hdata['actor_id'] = Auth::user()->_id;
         History::insert($hdata);
         $sdata = array();
         $sdata['timestamp'] = $ts;
         $sdata['action'] = 'change_status';
         $sdata['reason'] = $in['reason'];
         $sdata['objectType'] = 'box';
         $sdata['object'] = $bx->toArray();
         $sdata['preObject'] = $prebx->toArray();
         $sdata['actor'] = Auth::user()->fullname;
         $sdata['actor_id'] = Auth::user()->_id;
         Shipmentlog::insert($sdata);
         $bs = array();
         $bs['boxId'] = $bx->box_id;
         $bs['datetimestamp'] = date('Y-m-d H:i:s', $ts->sec);
         $bs['deliveryId'] = $bx->delivery_id;
         $bs['dest'] = 'hub';
         $bs['deviceId'] = Auth::user()->fullname;
         $bs['deviceKey'] = Auth::user()->_id;
         $bs['disposition'] = $sh->position;
         $bs['extId'] = $bx->_id;
         $bs['fulfillmentCode'] = $bx->fulfillment_code;
         $bs['logId'] = '';
         $bs['merchantTransId'] = $bx->order_id;
         $bs['src'] = 'admin';
         $bs['status'] = $bx->deliveryStatus;
         $bs['timestamp'] = $ts->sec;
         $bs['uploaded'] = 0;
         $bs['id'] = 0;
         $bs['tableName'] = 'BOX_STATUS';
         $bs['mtimestamp'] = $ts;
         Boxstatus::insert($bs);
         $bl = array();
         $bl['boxId'] = '4';
         $bl['datetimestamp'] = date('Y-m-d H:i:s', $ts->sec);
         $bl['deliveryId'] = $bx->delivery_id;
         $bl['fulfillmentCode'] = $bx->fulfillment_code;
         $bl['merchantTransId'] = $bx->order_id;
         $bl['status'] = 'out';
         $bl['timestamp'] = $ts->sec;
         $bl['id'] = 0;
         $bl['tableName'] = 'BOX_ID';
         $bl['mtimestamp'] = $ts;
         Boxid::insert($bl);
     }
     $res = true;
     //}
     if ($res) {
         return Response::json(array('result' => 'OK:CHGSTAT'));
     } else {
         return Response::json(array('result' => 'ERR:CHGSTATFAILED'));
     }
 }