/** @test */ public function it_is_unique_for_the_same_email_and_order() { $this->setExpectedException('Illuminate\\Database\\QueryException'); $share = new Share(['email' => $this->user->email, 'phone' => '676676766', 'comments' => 'Lorem ipsum comment']); $share->order_id = $this->order->id; $share->save(); $share = new Share(['email' => $this->user->email, 'phone' => '77474736', 'comments' => 'Another Lorem ipsum comment']); $share->order_id = $this->order->id; $share->save(); }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request, Order $order) { // @todo: request validation // create a new share with contact information $share = new Share($request->only('email', 'phone', 'comments')); $share->order_id = $order->id; $share->save(); // attach the share items $shareItems = $order->getShareItems($request->input('products')); $share->items()->saveMany($shareItems); return redirect()->action('ShareController@show', [$order->id, $share->id]); }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $object = new Model(); $params = $request->only('ru_title', 'en_title', 'ua_title', 'ru_description', 'en_description', 'ua_description', 'ru_text', 'en_text', 'ua_text', 'ru_requirements', 'en_requirements', 'ua_requirements'); $filter = $object->validator($params); if ($filter->fails()) { $error = $filter->errors()->toArray(); return view('admin.share.create', ['input' => $params, 'error' => $error]); } if ($request->hasFile('file')) { $params['file'] = $this->upload('file'); } $object->fill($params); $object->save(); return redirect('admin/share/' . $object->id); }
private function generateOrderSharesFor($group) { $users = User::all(); foreach ($group->orders as $order) { foreach ($users->random(6)->values()->all() as $user) { $share = new Share(['email' => $user->email, 'order_id' => $order->id]); $share->save(); $items = []; $order->products->random(5)->each(function ($item) { $items[$item->id] = rand(1, 7) * $item->pivot->step_amount; }, array()); $items = $order->getShareItems($items); $share->items()->saveMany($items); } } }