public function rejectOrder(Order $order)
 {
     $allowedStatus = [OrderStatus::NewOrderStatus()->id, OrderStatus::FirstOrder()->id, OrderStatus::PaymentUploaded()->id, OrderStatus::Draft()->id];
     assert(in_array($order->order_status_id, $allowedStatus), "Invalid Order to reject {$order->id} - Status {$order->orderStatus->name}");
     Site::protect($order, 'Order');
     User::userProtect($order->user);
     if ($order->order_status_id == OrderStatus::FirstOrder()->id) {
         Site::protect($order->user, 'User');
         $this->userManager->rejectNewMember($order->user);
     }
     $order->rejected_at = new Carbon();
     if (Auth::user()) {
         $order->rejected_by_id = Auth::user()->id;
     }
     $order->save();
     $order->orderStatus()->associate(OrderStatus::Rejected());
     $order->save();
     if (Auth::user()) {
         Log::info("Order rejected:{$order->id} by:" . Auth::user()->id);
         User::createUserEvent($order->user, ['controller' => 'timeline', 'route' => '/order-rejected', 'target_id' => $order->id, 'parameter_id' => Auth::user()->id]);
     } else {
         Log::info("Order rejected:{$order->id} by:online");
         User::createUserEvent($order->user, ['controller' => 'timeline', 'route' => '/order-auto-rejected', 'target_id' => $order->id]);
     }
     NotificationRequest::create(['target_id' => $order->id, 'route' => 'order-rejected', 'channel' => 'Sms', 'to_user_id' => $order->user->id]);
     return $order;
 }
예제 #2
0
파일: Order.php 프로젝트: mrwaim/OrderModel
 /**
  * Returns the order that has status = approved.
  *
  * @param $query
  *
  * @return mixed
  */
 public static function whereNotFulfilled($query)
 {
     $ret = $query->where(function ($q) {
         $q->where('order_status_id', '<>', OrderStatus::Shipped()->id)->Where('order_status_id', '<>', OrderStatus::FirstOrder()->id)->Where('order_status_id', '<>', OrderStatus::Rejected()->id)->Where('order_status_id', '<>', OrderStatus::PaymentUploaded()->id)->Where('order_status_id', '<>', OrderStatus::Cancelled()->id)->Where('order_status_id', '<>', OrderStatus::NewOrderStatus()->id)->Where('order_status_id', '<>', OrderStatus::Printed()->id);
     });
     return $ret;
 }