protected function buy($slug) { //Get buyer $auction = Auction::where('slug', $slug)->first(); $buyer = User::findOrFail(Auth::user()->id); $seller = User::findOrFail($auction->seller_id); // Make sure users can't buy own works if ($buyer->id === $seller->id) { return FALSE; } //Get other bidders $users = DB::table('users')->select(DB::raw('users.id'))->join('bids', 'users.id', '=', 'bids.bidder_id')->where('bids.auction_id', $auction->id)->where('users.id', '!=', Auth::user()->id)->get(); //E-mail buyer Message::auctionBought($auction->id, Auth::user()->id); //E-mail other bidders if (count($users)) { foreach ($users as $user) { Message::auctionClosed($auction->id, $user->id); } } //E-mail seller Message::auctionSold($auction->id, $buyer->id); //Remove from view $buying = Auction::find($auction->id); $buying->state = "sold"; $buying->save(); return $auction; }
public function store(Request $request) { $validator = Validator::make($request->all(), ['name' => 'required|max:255', 'email' => 'required|email|max:255', 'message' => 'required|max:255']); if ($validator->fails()) { return redirect()->back()->withErrors($validator)->withInput(); } $input = $request->all(); $auctionid = explode(',', $input['auction']); $auction = Auction::find($auctionid[0]); Mail::send('email.contactmail', array('name' => $input['name'], 'email' => $input['email'], 'user_message' => $input['message'], 'auctionTitle' => $auction->title), function ($message) { $message->from('*****@*****.**'); $message->to('*****@*****.**', 'Admin')->subject('Landoretti Question'); }); $auctions = ['default' => 'Choose an auction'] + Auction::orderby('title', 'ASC')->lists('title', 'id')->all(); $success = 'Thanks for contacting us!'; $newestAuction = Auction::where('FK_status_id', '=', 1)->orWhere('FK_status_id', '=', 3)->orderBy('created_at', 'desc')->first(); return view('contact')->with('newestAuction', $newestAuction)->with('success', $success)->with('auctions', $auctions); }
protected function auctionDeleted($id) { $auction = Auction::find($id); $bids = Bid::where('auction_id', $id)->get(); $watches = Watchlist::where('auction_id', $id)->get(); $recipients = []; foreach ($bids as $bid) { if (!in_array($bid->bidder_id, $recipients)) { $recipients[] = $bid->bidder_id; } } foreach ($watches as $watch) { if (!in_array($watch->user_id, $recipients)) { $recipients[] = $watch->user_id; } } foreach ($recipients as $recipient) { $message = ['title' => 'Auction for ' . $auction->title . ' closed.', 'message' => 'We regret to inform you that the owner of ' . $auction->title . ' has closed the auction. This means that the work will not be sold and that no further bidding will be possible.', 'opened' => null, 'archived' => 0, 'user_id' => $recipient, 'sender_id' => 1]; self::create($message); } }
public function getAddBet($id) { // Проверка, является ли текущий пользователь участником $haveAccess = Bidders::where(['user_id' => Auth::user()->id, 'auction_id' => $id, 'status' => 1])->get(); // Экземпляр лота $auction = Auction::find($id); // Список ставок $thisBids = Bets::where('auction_id', '=', $id)->orderBy('created_at', 'desc')->get(); // Если пользователь не является участником - редиректим на главную страницу if ($haveAccess->count() == 0) { return redirect('/auctions'); } else { // Если данный пользователь является последним, кто сделал ставку и пытается сделать ее еще раз - редиректим назад и показываем ошибку if ($thisBids->count() > 0 && $thisBids->first()->user_id == Auth::user()->id) { return redirect()->back()->with('bit_error', 'Ви вже зробили ставку!'); } // Если пользователь не делал ставок, но имеет доступ $bet = new Bets(); // Создаем экземпляр ставки $bet->auction_id = $id; // Указываем id аукциона $bet->user_id = Auth::user()->id; // Указываем id пользователя // Если это первая ставка - складываем стартовую цену и цену за шаг if ($thisBids->count() == 0) { $bet->bet = $auction->starting_price + $auction->bid_price; } else { // Добавляем цену за шаг к последнему ценовому предложению $bet->bet = $thisBids->first()->bet + $auction->bid_price; } // Продлеваем аукцион еще на 15 минут $auction->date_end = Carbon::parse($auction->date_end)->addMinutes(15); $auction->save(); $bet->save(); } // В случае успеха - редиректим назад и передаем flash переменную return redirect()->back()->with('bit_success', '1'); }
public function buyout($id) { $newestAuction = Auction::where('FK_status_id', '=', 1)->orWhere('FK_status_id', '=', 3)->orderBy('created_at', 'desc')->first(); $auction = Auction::find($id); $lostbidders = Bidder::where('FK_auction_id', '=', $auction->id)->distinct()->with('user')->get(); //distinct voor duplicate receivers if (Auth::user()->id == $auction->FK_user_id) { $warning = 'This is your own item!'; return redirect()->back()->with('warning', $warning); } $auction->FK_status_id = '5'; //sold $auction->save(); //mail sturen naar andere bieders foreach ($lostbidders as $bidder) { if ($bidder->FK_user_id != Auth::user()->id) { //mail sturen naar verliezende bidders Mail::send('email.lostauction', array('descriptionEnglish' => $auction->descriptionEnglish, 'descriptionDutch' => $auction->descriptionDutch, 'title' => $auction->title), function ($message) { $message->from('*****@*****.**'); $message->to($bidder->user->email, 'Admin')->subject('You have lost an auction on Landoretti'); }); } } return View::make('buynow')->with('newestAuction', $newestAuction); }
/** * Производит добавление участника */ public function postAddBidder(Request $request, $id) { $messages = array('required' => trans('theme.reg.required'), 'mimes' => trans('theme.reg.mimes'), 'rules_agree.required' => 'Необхідно погодитися з правилами'); $rules = ['first_name' => 'required', 'last_name' => 'required', 'middle_name' => 'required', 'phone' => 'required', 'bank_name' => 'required', 'account_number' => 'required', 'bank_code' => 'required', 'passport_series' => 'required', 'passport_number' => 'required', 'passport_issue' => 'required', 'passport_issued' => 'required', 'adress_postcode' => 'required', 'adress_region' => 'required', 'adress_city' => 'required', 'adress_full' => 'required', 'rules_agree' => 'required', 'file1' => 'required|mimes:jpeg,bmp,png,pdf,doc,docx', 'file2' => 'required|mimes:jpeg,bmp,png,pdf,doc,docx', 'file3' => 'mimes:jpeg,bmp,png,pdf,doc,docx', 'file4' => 'required|mimes:jpeg,bmp,png,pdf,doc,docx']; if ($request->payment_type == 2) { $rules = array_add($rules, 'payment_card', 'required'); $rules = array_add($rules, 'payment_code', 'required'); } if (!Auth::check()) { $rules = array_add($rules, 'email', 'required'); } // Если у пользователя нет отказа от ИНН if (!$request->has('inn_waiver')) { $rules = array_add($rules, 'passport_inn', 'required'); } // Валидатор $this->validate($request, $rules, $messages); $request->flash(); $add = new Bidders(); $add->auction_id = $id; // Если пользователь авторизован if (Auth::check()) { $add->user_id = Auth::user()->id; } else { $createUser = new User(); $createUser->first_name = $request->first_name; $createUser->last_name = $request->last_name; $createUser->middle_name = $request->middle_name; $createUser->email = $request->email; $createUser->phone = $request->phone; $genPass = str_random(8); // Случаные 8 символов в качестве пароля $createUser->password = bcrypt($genPass); $createUser->user_group = 1; // По-умолчанию регистрируется как физическое лицо $createUser->save(); $add->user_id = $createUser->id; $sendTo = $request->email; // Отправка письма об успешной регистрации Mail::send('emails.register', array('first_name' => $request->first_name, 'last_name' => $request->last_name, 'email' => $request->email, 'pass' => $genPass), function ($message) use($sendTo) { $message->to($sendTo)->subject('Успешная регистрация'); }); } // Информация о лице $add->first_name = $request->first_name; $add->last_name = $request->last_name; $add->middle_name = $request->middle_name; $add->phone = $request->phone; $add->dop_phone = $request->dop_phone; // Банковские реквизиты $add->payment_type = $request->payment_type; $add->bank_name = $request->bank_name; // Дополнительные поля при оплате картой if ($request->payment_type == 2) { $add->payment_card = $request->payment_card; $add->payment_code = $request->payment_code; } $add->account_number = $request->account_number; $add->bank_code = $request->bank_code; // Паспортные данные $add->passport_series = $request->passport_series; $add->passport_number = $request->passport_number; $add->passport_issue = $request->passport_issue; $add->passport_issued = $request->passport_issued; // Если у пользователя нет отказа от ИНН if (!$request->has('inn_waiver')) { $add->passport_inn = $request->passport_inn; } // Адрес $add->adress_postcode = $request->adress_postcode; $add->adress_region = $request->adress_region; $add->adress_city = $request->adress_city; $add->adress_full = $request->adress_full; $add->status = 0; $surl = $this->globalSiteSettings['site_url']; // Домен сайта из конфигов // Файл 1 if ($request->hasFile('file1')) { $file1 = $request->file('file1'); $filename = str_random(10) . '.' . $file1->getClientOriginalExtension(); $imgurl = $surl . '/userfiles/' . $filename; $file1->move(public_path() . '/userfiles/', $filename); $add->file1 = $imgurl; } // Файл 2 if ($request->hasFile('file2')) { $file2 = $request->file('file2'); $filename = str_random(10) . '.' . $file2->getClientOriginalExtension(); $imgurl = $surl . '/userfiles/' . $filename; $file2->move(public_path() . '/userfiles/', $filename); $add->file2 = $imgurl; } // Файл 3 if ($request->hasFile('file3')) { $file3 = $request->file('file3'); $filename = str_random(10) . '.' . $file3->getClientOriginalExtension(); $imgurl = $surl . '/userfiles/' . $filename; $file3->move(public_path() . '/userfiles/', $filename); $add->file3 = $imgurl; } // Файл 4 if ($request->hasFile('file4')) { $file4 = $request->file('file4'); $filename = str_random(10) . '.' . $file4->getClientOriginalExtension(); $imgurl = $surl . '/userfiles/' . $filename; $file4->move(public_path() . '/userfiles/', $filename); $add->file4 = $imgurl; } $add->save(); $auction = Auction::find($id); $adminEmail = $this->globalSiteSettings['admin_email']; Mail::send('emails.admin-new-bidder', ['lot_title' => $auction->title, 'lot_id' => $auction->id], function ($message) use($adminEmail) { $message->to($adminEmail)->subject('Новий учасник'); }); if (!Auth::check()) { Auth::loginUsingId($createUser->id); } Session::flash('gAnalyticsReachGoal', 'NEW_BIDDER'); Session::flash('YaMetrikaReachGoal', 'NEW_BIDDER'); // Отправка данных о достижении цели в Яндекс Метрику return redirect('/auctions')->with('success_bidders_add', 'Ваша заявка успішно додано. Після перевірки даних адміністрацією, вона буде допущена до системи.'); }
public static function getAuctionForId($id = -1) { return Auction::find($id); }
/** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // $data = Auction::find($id); return view('pages.auction.index', ['data' => $data]); }
public function getDeleteLot($id) { // Удаляем файлы $deleteFiles = App\Uploads::where('auction_id', $id)->get(); if ($deleteFiles->count() > 0) { setlocale(LC_ALL, 'ru_RU.utf8'); foreach ($deleteFiles as $b) { //dd($b); // //$e = substr(strrchr($fname,'.'),1); //$n = preg_replace('/.[^.]*$/', '', $fname); if ($b->type == 'image') { $extension = substr(strrchr($b->name, '.'), 1); $cutName = preg_replace('/.[^.]*$/', '', $b->name); Storage::disk('upload_images')->delete($b->name); Storage::disk('upload_images')->delete($cutName . '-sm.' . $extension); } elseif ($b->type == 'doc') { $fname = pathinfo($b->link); Storage::disk('upload_docs')->delete($fname['basename']); } $b->delete(); } } // Удаляем аукцион $delete = Auction::find($id); $delete->delete(); // Удаляем участников аукциона $deleteBidders = App\Bidders::where('auction_id', $id)->get(); if ($deleteBidders->count() > 0) { foreach ($deleteBidders as $b) { $b->delete(); } } // Удаляем ставки $deleteBets = App\Bets::where('auction_id', $id)->get(); if ($deleteBets->count() > 0) { foreach ($deleteBets as $b) { $b->delete(); } } // Сбрасываем закешированные данные виджета "Останні надходження" if (Cache::has('last_lots')) { Cache::forget('last_lots'); } return redirect()->back(); }
public function getProblem($id) { // // // $auction = Auction::find($id); // ///get All Seller // $sellers = $auction->bidders->unique(); // //Seller1 Bid // $sellersBids = []; // foreach ($sellers as $seller) { // $bids = Bid::where(['auction_id' => $auction->id, 'seller_id' => $seller->id])->get(); // $bidsWithProduct = []; // foreach ($bids as $bid) { // $bidsWithProduct[$bid->id] = $bid; // $bid->products; // } // $sellersBids[$seller->id] = $bidsWithProduct; // //d // } // return response()->json(array($sellersBids)); $auction = Auction::find($id); $products_in_auctions = $auction->products; $problem = array(); ///bids $bids = Bid::where(['auction_id' => $auction->id])->get(); foreach ($bids as $bid) { $bid_data = array(); $bid_data['provider_id'] = $bid->seller_id . ""; $product_in_bid = $bid->products; $bundle = ""; $size = $product_in_bid->count(); for ($x = 0; $x < $size; $x++) { if ($x == $size - 1) { $bundle = $bundle . "A" . ($product_in_bid[$x]->id - 1); } else { $bundle = $bundle . "A" . ($product_in_bid[$x]->id - 1) . "+"; } } $bid_data['bundle'] = $bundle; $bid_data['price'] = $bid->price . ""; $bid_data['bid_id'] = $bid->id . ""; array_push($problem, $bid_data); } //[\"A0\",\"A1\",\"A2\",\"A3\",\"A4\"] $auction_bundle = "["; for ($x = 0; $x < $products_in_auctions->count(); $x++) { if ($x == $products_in_auctions->count() - 1) { $auction_bundle = $auction_bundle . "\"A" . ($products_in_auctions[$x]->id - 1) . "\"]"; } else { $auction_bundle = $auction_bundle . "\"A" . ($products_in_auctions[$x]->id - 1) . "\","; } } $data = ['bundle' => $auction_bundle]; array_push($problem, $data); return json_encode($problem); }
public function bid1() { //Product $A0 = Product::firstOrNew(['product_code' => '12345']); $A1 = Product::firstOrNew(['product_code' => '12346']); $A2 = Product::firstOrNew(['product_code' => '12347']); $A3 = Product::firstOrNew(['product_code' => '12348']); $A4 = Product::firstOrNew(['product_code' => '12349']); //Seller $seller1 = User::where(['email' => '*****@*****.**'])->first(); $seller2 = User::where(['email' => '*****@*****.**'])->first(); $seller3 = User::where(['email' => '*****@*****.**'])->first(); //Auction $auction = Auction::find(1); //Bid $price = 2.98; $bundle = [$A0]; $this->addBid($price, $seller1, $auction, $bundle); $price = 2.56; $bundle = [$A2]; $this->addBid($price, $seller1, $auction, $bundle); // $price = 14.21; $bundle = [$A3]; $this->addBid($price, $seller1, $auction, $bundle); // $price = 12.77; $bundle = [$A0, $A2, $A3]; $this->addBid($price, $seller1, $auction, $bundle); // $price = 0.74; $bundle = [$A1]; $this->addBid($price, $seller2, $auction, $bundle); // $price = 2.37; $bundle = [$A2]; $this->addBid($price, $seller2, $auction, $bundle); // $price = 20.73; $bundle = [$A4]; $this->addBid($price, $seller2, $auction, $bundle); // $price = 20.94; $bundle = [$A1, $A2, $A4]; $this->addBid($price, $seller2, $auction, $bundle); // $price = 31.98; $bundle = [$A0]; $this->addBid($price, $seller3, $auction, $bundle); // $price = 0.78; $bundle = [$A1]; $this->addBid($price, $seller3, $auction, $bundle); // $price = 14.53; $bundle = [$A3]; $this->addBid($price, $seller3, $auction, $bundle); // $price = 21.3; $bundle = [$A4]; $this->addBid($price, $seller3, $auction, $bundle); // $price = 19.11; $bundle = [$A0, $A1, $A3, $A4]; $this->addBid($price, $seller3, $auction, $bundle); // $price = 68; $bundle = [$A0]; $this->addBid($price, $seller1, $auction, $bundle); // $price = 27.36; $bundle = [$A1]; $this->addBid($price, $seller3, $auction, $bundle); // $price = 68; $bundle = [$A2]; $this->addBid($price, $seller1, $auction, $bundle); // $price = 27.36; $bundle = [$A2]; $this->addBid($price, $seller3, $auction, $bundle); // $price = 68; $bundle = [$A3]; $this->addBid($price, $seller1, $auction, $bundle); // $price = 27.36; $bundle = [$A3]; $this->addBid($price, $seller3, $auction, $bundle); // $price = 272; $bundle = [$A4]; $this->addBid($price, $seller1, $auction, $bundle); // $price = 109.44; $bundle = [$A4]; $this->addBid($price, $seller3, $auction, $bundle); }