Esempio n. 1
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'));
     }
 }