/** * Store a newly created resource in storage. * * @param Request $request * @return Response */ public function store(Request $request) { $squares = $request->input('chosen'); $purchase = Purchase::create(array('name' => $request->input('name'), 'email' => $request->input('email'))); foreach ($squares as $square_id) { $s = Square::find($square_id); $s->class = 'taken'; $s->status = 'purchased'; $s->save(); PurchaseSquare::create(array('purchase_id' => $purchase->id, 'square_id' => $s->id)); } return PurchaseSquare::where('purchase_id', $purchase->id)->get(); }
/** * Store a newly created resource in storage. * * @param Request $request * @return Response */ public function store(Request $request) { \Stripe\Stripe::setApiKey(env('STRIPE_PRI', null)); // Create a Customer $customer = \Stripe\Customer::create(array("source" => $request->input('token_id'), "description" => $request->input('name') . ' ' . $request->input('email'))); // Charge the Customer instead of the card \Stripe\Charge::create(array("amount" => $request->input('price') * 100, "currency" => "usd", "customer" => $customer->id)); $set = Set::find(1); $data = array('set_id' => $set->id, 'customer_id' => $customer->id, 'price' => $request->input('price'), 'name' => $request->input('name'), 'email' => $request->input('email'), 'optin' => $request->input('optin')); if ($request->has('media_id')) { $data['media_id'] = $request->input('media_id'); } else { if ($request->has('color')) { $data['color'] = $request->input('color'); } } $purchase = Purchase::create($data); // Mobile doesn't have chosen array if ($request->has('mobile')) { $squares = Square::where('status', 'available')->where('set_id', $set->id)->take($request->input('blocks'))->get(); foreach ($squares as $s) { $s->class = 'taken'; $s->status = 'unavailable'; $s->save(); PurchaseSquare::create(array('purchase_id' => $purchase->id, 'square_id' => $s->id, 'set_id' => $set->id)); } } else { $squares = $request->input('chosen'); foreach ($squares as $square_id) { $s = Square::find($square_id); $s->class = 'taken'; $s->status = 'unavailable'; $s->save(); PurchaseSquare::create(array('purchase_id' => $purchase->id, 'square_id' => $s->id, 'set_id' => $set->id)); } } return $purchase; }
/** * Update the specified resource in storage. * /api/admin/set/{id}/move * @param Request $request * @param int $id * @return Response */ public function move(Request $request, $id) { $from = PurchaseSquare::where('square_id', $request->input('from'))->first(); $from->square_id = $request->input('to'); $from->save(); $square_old = Square::find($request->input('from')); $square_old->status = 'available'; $square_old->class = null; $square_old->save(); $square_new = Square::find($request->input('to')); $square_new->class = 'taken'; $square_new->status = 'unavailable'; $square_new->save(); return $from; }
/** * Display an overview of the donations and progress * /admin * @return Response */ public function index() { $set = Set::with('purchases.squares', 'squares.purchase.media')->where('id', 1)->first(); $purchased_squares = PurchaseSquare::where('set_id', $set->id)->count(); return view('admin.index', ['set' => $set, 'purchased_squares' => $purchased_squares]); }