示例#1
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function employeeStore(Request $request)
 {
     // $this->validate($request, [
     //     'user' => 'required',
     //     'payment' => 'required',
     // ]);
     $order = new Order();
     $order->user_id = $request->user;
     $order->status_id = 2;
     //make status pending
     $order->dateOrdered = \Carbon\Carbon::now();
     $order->address = 'In store purchase';
     // temporary
     // $order->transaction_total = '10.00'; // temporary
     $order->save();
     $products = Product::all();
     foreach ($products as $p) {
         if ($request->input('quantity' . $p->id) > 0) {
             $orderProduct = new OrderProduct();
             $orderProduct->order_id = $order->id;
             $orderProduct->product_id = $p->id;
             $orderProduct->quantity = $request->input('quantity' . $p->id);
             $orderProduct->save();
         }
     }
     $items = $order->product()->get();
     $sum = 0;
     foreach ($items as $item) {
         $sum += number_format($item->pivot->quantity * $item->price, 2);
     }
     $order = Order::find($order->id);
     $order->transaction_total = $sum;
     $order->save();
     Stripe::setApiKey(env('STRIPE_TEST_KEY'));
     // Get the credit card details submitted by the form
     $token = $_POST['stripeToken'];
     // Create the charge on Stripe's servers - this will charge the user's card
     $stripeAmount = bcmul($order->transaction_total, 100);
     try {
         $charge = \Stripe\Charge::create(array("amount" => $stripeAmount, "currency" => "usd", "source" => $token, "description" => "Sweet Sweet Chocolates"));
     } catch (Card $e) {
         return "We're sorry your credit card has been declined.";
     }
     Activity::log('Created an in store order for ' . $order->user->fname . ' ' . $order->user->lname);
     $request->session()->flash('status', 'Order has been submitted');
     return Redirect::action('OrderController@create');
 }