/** * 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'); }