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