Esempio n. 1
0
 /**
  * Show the form for creating a new resource.
  *
  * @return Response
  */
 public function create($orderId)
 {
     $order = Order::whereId($orderId)->select('id', 'type')->first();
     $user = \Auth::user();
     if ($user) {
         //If a user is not trusted, send the error. Avoiding direct access routes to action by invalid user
         if (!$user->isTrusted()) {
             return redirect()->route('orders.show_cart', [$order->id])->withErrors(trans('freeproduct.unauthorized_access'));
         }
         //You can create free product from a sort order cart or wish list
         if ($order->type != 'cart' && $order->type != 'wishlist') {
             return redirect()->route('orders.show_cart', [$order->id])->withErrors(trans('freeproduct.order_type_invalid'));
         }
         //As is authorized to create, I check order detail
         $order_content = OrderDetail::where('order_id', $order->id)->get();
         //Sumatorial the total order to validate that the free product creator has enough points for the transaction
         $total_points = 0;
         foreach ($order_content as $orderDetail) {
             $product = Product::whereId($orderDetail->product_id)->select('id', 'price')->first();
             $total_points += $orderDetail->quantity * $product->price;
         }
         if ($user->current_points < $total_points) {
             return redirect()->route('orders.show_cart')->withErrors(['main_error' => [trans('store.cart_view.insufficient_funds')]]);
         }
         $jsonOrder = json_encode($order_content->toArray());
         $panel = $this->panel;
         return view('freeproducts.create', compact('jsonOrder', 'panel', 'orderId'));
     } else {
         return redirect()->route('products')->withErrors(trans('freeproduct.unauthorized_access'));
     }
 }
Esempio n. 2
0
 public function getOrderCancel($id, Order $order, Payment $payment)
 {
     $customer_order = $order->whereId((int) $id)->first();
     $amount = $customer_order->order_amount;
     $customer_id = $customer_order->customer_id;
     $delete = $order->whereId((int) $id)->delete();
     if ($delete) {
         //            ->increment('votes', 5);
         $payment->where('customer_id', (int) $customer_id)->increment('account_balance', $amount);
         flash()->success('Order #' . $id . ' has been cancelled and ' . nairaFormater($amount) . ' refunded to ' . customerFullname($customer_id) . '!');
     } else {
         flash()->error('An error occurred while cancelling Order #' . $id . '!');
     }
     return redirect()->back();
 }
Esempio n. 3
0
 public function destroy($id)
 {
     $order = Order::whereId($id)->firstOrFail();
     $order->delete();
     return redirect('/order/index')->with('status', 'The selected order has been deleted');
 }
Esempio n. 4
0
 public function delete(Request $request)
 {
     $order = Order::whereId($request->id)->first();
     foreach ($order->events as $event) {
         $event->delete();
     }
     $order->event()->delete();
     return Order::whereId($request->id)->delete();
 }