/** * 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); }
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')); } }