예제 #1
0
 public function update(OrderUpdateRequest $request, Order $order)
 {
     $productsTotalChanged = $request->input('products_total') != $order->products_total;
     $shippingTotalChanged = $request->input('shipping_total') != $order->shipping_total;
     if (!$productsTotalChanged and !$shippingTotalChanged) {
         Flash::warning(trans('order::revision.no_change'));
         return back();
     }
     DB::transaction(function () use($order, $request, $productsTotalChanged, $shippingTotalChanged) {
         $orderRevision = new OrderRevision(['products_total' => $productsTotalChanged ? $request->input('products_total') : null, 'shipping_total' => $shippingTotalChanged ? $request->input('shipping_total') : null]);
         $orderRevision->setPerformer($this->account());
         $orderRevision->setReactor($order->getBuyer());
         $order->revisions()->save($orderRevision);
         event(new OrderRevisionEvent($orderRevision));
     });
     Flash::success('订单修改已提交,等待买家同意');
     return back();
 }
 protected function data($notifiable)
 {
     return ['order' => $this->orderRevision->getOrder(), 'msg' => $this->orderRevision->getChangesHtml()];
 }
예제 #3
0
 public function decide(User $user, OrderRevision $orderRevision)
 {
     return $orderRevision->isActive() and $orderRevision->getReactor()->is($user);
 }