Пример #1
0
 public function apply(Request $request)
 {
     $code = $request->input('coupon');
     $coupon = Coupon::ofCode($code);
     $status = is_object($coupon) ? $coupon->validateCoupon() : $coupon;
     return is_object($status) ? $coupon->toJson() : response()->json(['error' => $status]);
 }
Пример #2
0
 /**
  * Store a newly created resource in storage.
  *
  * @param  Request  $request
  * @return Response
  */
 public function store(Request $request)
 {
     $length = $request->input('length');
     $nb_coupons = $request->input('nb_coupons');
     // setting up characters for coupon code
     for ($i = 0; $i < $nb_coupons; $i++) {
         $coupon = new Coupon();
         $coupon->description = $request->input('description');
         $coupon->discount = $request->input('discount');
         $coupon->code = $this->generate($length);
         $coupon->start_date = $request->input('startdate');
         $coupon->end_date = $request->input('enddate');
         $coupon->save();
     }
     return redirect()->route('coupons.index');
 }
Пример #3
0
 public static function getCurrent()
 {
     $couponCode = session()->get('coupon');
     if ($couponCode) {
         $coupon = \App\Coupon::where('title', $couponCode)->first();
         return $coupon;
     }
     return false;
 }
Пример #4
0
 /**
  * Update coupon model in DB
  * @param $payload
  */
 public function couponNeedsUpdate($payload)
 {
     $payload['data']['object'] = $payload;
     $payload['type'] = null;
     if (!is_null(Coupon::where('uuid', $payload['id'])->first())) {
         (new Coupon())->updateEntity(Coupon::where('uuid', $payload['id'])->first(), $payload);
     } else {
         Coupon::create((new Coupon())->buildAttributesFromStripe($payload));
     }
 }
Пример #5
0
 public function placeOrder($request)
 {
     $shoppingCart = $request->session()->get('cart');
     $shoppingCartItems = $request->session()->get('items');
     $user = Auth::user();
     $code = $request->input('coupon');
     $coupon = Coupon::ofCode($code);
     $transaction = Transaction::create(array('id' => md5(uniqid()), 'coupon' => is_object($coupon) ? $coupon->id : '', 'user_id' => $user->id, 'order_data' => json_encode($shoppingCartItems), 'real_charges' => $request->input('realCharges'), 'amount_off' => $request->input('amountOff')));
     ShoppingCartItem::where('shopping_cart_id', $shoppingCart->id)->delete();
     if (is_object($coupon)) {
         Coupon::where('id', $coupon->id)->update(['times_redeemed' => $coupon->times_redeemed + 1]);
     }
     $request->session()->forget('items');
     $request->session()->put('itemsCtr', 0);
 }
 public function apply(Request $request)
 {
     $coupon = Coupon::where('name', $request->coupon)->first();
     if ($coupon != null) {
         $coupon = $coupon->toArray();
         if (Auth::user()->orders()->where('coupon_id', $coupon['id'])->get()->count() < $coupon['uses']) {
             Session::put('coupon', $coupon);
             return \Redirect()->back()->with(['flash_message' => 'Coupon Code Applied']);
         } else {
             return \Redirect()->back()->with(['flash_message' => 'Maximum Usage Exceeded', 'flash-warning' => true]);
         }
     } else {
         return \Redirect()->back()->with(['flash_message' => 'Invalid Coupon Code', 'flash-warning' => true]);
     }
 }
Пример #7
0
 public function getCouponget(Request $request, $page = 1)
 {
     $user = $request->user();
     $res = ['response' => 'YES', 'status' => 0];
     $coupons = Coupon::apiGet($page, 10);
     if (is_array($coupons)) {
         $res['status'] = 1;
         if (count($coupons) > 0) {
             $res['html'] = view('auth.account.templet.coupon', ['user' => $user, 'coupons' => $coupons])->render();
         } else {
             $res['html'] = '';
         }
     } else {
         $res['msgError'] = '加载失败,请稍后再试';
     }
     return response()->json($res);
 }
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     //
     # First, create an array of all the books we want to associate tags with
     # The *key* will be the book title, and the *value* will be an array of tags.
     $coupons = ['1' => ['*****@*****.**'], '2' => ['*****@*****.**'], '3' => ['*****@*****.**'], '4' => ['*****@*****.**']];
     # Now loop through the above array, creating a new pivot for each book to tag
     foreach ($coupons as $id => $emails) {
         # First get the book
         $coupon = \App\Coupon::where('id', '=', $id)->first();
         # Now loop through each tag for this book, adding the pivot
         foreach ($emails as $email) {
             $user = \App\User::where('email', 'LIKE', $email)->first();
             # Connect this tag to this book
             $coupon->users()->save($user);
         }
     }
 }
Пример #9
0
 public function getDoDelete($coupon_id)
 {
     $coupon = \App\Coupon::find($coupon_id);
     if (is_null($coupon)) {
         \Session::flash('flash_message', 'Coupon not found.');
         return redirect('\\coupons');
     }
     if ($coupon->users()) {
         $coupon->users()->detach();
     }
     $coupon->delete();
     \Session::flash('flash_message', $coupon->name_of_store . ' ' . $coupon->description . ' was deleted.');
     return redirect('/coupons');
 }
 public function editCoupon($id)
 {
     $coupon = Coupon::find($id);
     return view('admin.editCoupon', compact('coupon'));
 }
Пример #11
0
 /**
  * Define your route model bindings, pattern filters, etc.
  *
  * @param  \Illuminate\Routing\Router  $router
  * @return void
  */
 public function boot(Router $router)
 {
     parent::boot($router);
     //        $router->model('user' , 'App\User');
     $router->bind('user', function ($value) {
         return User::with('roles')->findOrFail($value);
     });
     /**
      * created by dara on 6/9/2015
      * add binding for admin wild card
      */
     $router->bind('admin', function ($value) {
         return User::with('roles')->findOrFail($value);
     });
     /**
      * Created by Emad Mirzaie on 09/09/2015.
      * province wild cart
      */
     $router->model('province', 'App\\Province');
     $router->model('city', 'App\\Province');
     $router->model('university', 'App\\University');
     $router->model('article', 'App\\Article');
     $router->model('post', 'App\\Post');
     $router->model('category', 'App\\Category');
     $router->model('sub_category', 'App\\Category');
     $router->model('skill', 'App\\Skill');
     $router->model('profile', 'App\\User');
     $router->model('comment', 'App\\Comment');
     $router->model('poll', 'App\\Poll');
     $router->model('questionnaire', 'App\\Questionnaire');
     $router->model('coupon_user', 'App\\CouponUser');
     $router->model('showcase', 'App\\Showcase');
     $router->model('sticky', 'App\\Sticky');
     /**
      * Created By Dara on 22/10/2015
      */
     //        $router->bind('offer',function($value){
     //            return Offer::findOrFail($value);
     //        });
     $router->bind('service', function ($value) {
         return CouponGallery::findOrFail($value);
     });
     $router->bind('coupon', function ($value) {
         return Coupon::findOrFail($value);
     });
     $router->bind('group', function ($value) {
         return Group::findOrFail($value);
     });
     $router->bind('problem', function ($value) {
         return Problem::findOrFail($value);
     });
     $router->model('offer', 'App\\Offer');
     $router->model('shop', 'App\\Shop');
     $router->model('product', 'App\\Product');
     $router->bind('event', function ($value) {
         return Event::findOrFail($value);
     });
     $router->bind('settle', function ($value) {
         return Settle::findOrFail($value);
     });
     $router->bind('report', function ($value) {
         return Report::findOrFail($value);
     });
     $router->bind('corporation', function ($value) {
         return Corporation::findOrFail($value);
     });
     /**
      * Created By Dara on 25/12/2015
      */
     $router->bind('announcement', function ($value) {
         return Announcement::findOrFail($value);
     });
     $router->bind('storage', function ($value) {
         return Storage::findOrFail($value);
     });
     $router->bind('role', function ($value) {
         return Role::findOrFail($value);
     });
 }
Пример #12
0
<?php

use App\Coupon;
get('/', function () {
    return view('store.checkout');
});
get('checkout', function () {
    return view('store.checkout');
});
// API
get('api/coupons/{code}', function ($code) {
    return Coupon::whereCode($code)->firstOrFail();
});
Пример #13
0
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function destroy($id)
 {
     $coupon = Coupon::findOrFail($id);
     $coupon->delete();
     return Redirect::route('admin.coupon.index');
 }
Пример #14
0
 public function run()
 {
     \App\Coupon::create(['id' => md5(microtime()), 'code' => 'blackfriday25', 'type' => 'onetime', 'description' => 'whole store 25 percentage off on black friday.', 'percent_off' => 25, 'amount_off' => 0.0, 'expire_at' => date('Y-m-d H:i:s', time() + 365 * 24 * 60 * 60), 'times_redeemed' => 0]);
     \App\Coupon::create(['id' => md5(microtime()), 'code' => 'cybermonday10', 'type' => 'repeating', 'description' => 'whole store 10 percentage off on cyber monday.', 'percent_off' => 10, 'amount_off' => 0.0, 'expire_at' => date('Y-m-d H:i:s', time() + 365 * 24 * 60 * 60), 'times_redeemed' => 0]);
 }
Пример #15
0
Route::get('/article/detail/{id}', array('uses' => 'ArticleController@showPublic'));
Route::get('/index', function () {
    $coupons = Coupon::all();
    return View::make('index')->with('coupons', $coupons);
});
Route::get('/admin', 'UserController@getAdminLogin');
Route::post('/admin', 'UserController@postAdminLogin');
Route::get('/logout', 'UserController@getLogout');
Route::get('/admin/dashboard', function () {
    return view('admin.content');
});
Route::model('articles', 'Article');
Route::model('merchants', 'Merchant');
Route::model('coupons', 'Coupon');
Route::model('categories', 'Category');
Route::bind('articles', function ($value, $route) {
    return App\Article::whereSlug($value)->first();
});
Route::bind('merchants', function ($value, $route) {
    return App\Merchant::whereSlug($value)->first();
});
Route::bind('coupons', function ($value, $route) {
    return App\Coupon::whereSlug($value)->first();
});
Route::bind('categories', function ($value, $route) {
    return App\Category::whereSlug($value)->first();
});
Route::resource('admin/article', 'ArticleController');
Route::resource('admin/merchant', 'MerchantController');
Route::resource('admin/coupon', 'CouponController');
Route::resource('admin/category', 'CategoryController');
Пример #16
0
 /**
  * Display the specified resource for coupons.
  *
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function showCategoryModal($id)
 {
     $coupon = Coupon::find($id);
     $merchant = Coupon::find($id)->merchant;
     $articles = Article::all();
     return view('modal')->with('coupon', $coupon)->with('articles', $articles)->with('merchant', $merchant);
 }
Пример #17
0
 public function subscribe(Request $request, $prefix)
 {
     $runner = Runner::find($request->session()->get('runner_id'));
     $type = $request->session()->get('type');
     if ($runner->bib > 0) {
         return redirect($prefix . '/error');
     }
     $race = $runner->race;
     if ($runner->payment->id == 1) {
         $transaction = Transaction::find($runner->ticket);
         if ($transaction->coupon != '') {
             $coupon = Coupon::where('coupon', $transaction->coupon)->first();
             $coupon->redeem($runner->ticket, $runner->event_id, $runner->id);
         }
         $code = Code::makeDummy();
     } else {
         $code = $runner->race->codes->where('code', $runner->ticket)->first();
         if ($code->code == 'QWERTY69') {
             $code->event_id = 0;
             $code->status = 0;
             $code->bib = 0;
             $code->save();
         } else {
             $code->redeem($runner->bib, $runner->event_id);
         }
         $transaction = Transaction::makeDummy();
     }
     $size_name = $runner->size->name_short;
     $runner->size_name = $size_name;
     if ($race->assign_method == 'onAge') {
         $runner_age = $runner->race->ageOnRaceDate($runner->dob);
         $age_group = $runner->event->setAgeGroup($runner_age)->name;
     } else {
         $age_group = $runner->event->setYearGroup($runner->dob->year)->name;
     }
     $runner->age_group = $age_group;
     if ($type == 'elite') {
         $bib = $runner->event->generateElite();
     } else {
         $bib = $runner->event->generateBib();
     }
     $runner->bib = $bib;
     $runner->status = 1;
     $runner->save();
     $runner->size->grabOneSize();
     Mail::send('emails.confirmation', ['runner' => $runner, 'transaction' => $transaction, 'code' => $code], function ($message) use($runner) {
         $message->from($_ENV['MAIL_USERNAME'], 'Inscripciones ' . $runner->race->name . ' ' . $runner->race->date->year);
         $message->to($runner->mail, $name = null);
         $message->bcc($_ENV['MAIL_USERNAME'], $name = null);
         $message->subject('Bienvenido a ' . $runner->race->pre . ' ' . $runner->race->name . ' ' . $runner->race->date->year);
     });
     return redirect($race->prefix . '/manifest')->with(['runner_id' => $runner->id]);
 }
Пример #18
0
    /**
     * save articles for a page which display list.
     * @param $url
     * @param $category_id
     */
    protected function saveCoupons($url, $category_id)
    {
        $response = $this->crawlerLink($url);
        $crawler = new Crawler($response);
        $coupons = $crawler->filter('div#show_coupons > article');
        $data = [];
        foreach ($coupons as $i => $item) {
            $itemCrawler = new Crawler($item);

            $temp = $itemCrawler->filter('div.col-md-10 > div.shop-at > a')->attr('href');
            $temp = str_replace('http://www.mostcoupon.com/', '', $temp);
            $temp = str_replace('-coupons', '', $temp);
            $store = Store::where('slug', trim($temp))->first();
            if (!$store) {
                $name = $itemCrawler->filter('div.col-md-10 > div.shop-at > a')->text();
                $image = $itemCrawler->filter('div.logo > img')->attr('src');
                $image = $this->downloadImage($image);
                $store = Store::create(['name' => $name, 'logo' => $image, 'category_id' => $category_id]);
            }
            $data[$i]['event_id'] = 1;
            $data[$i]['store_id'] = $store->id;
            $data[$i]['title'] = $itemCrawler->filter('div.col-md-10 > p.title')->text();


            try {
                $expired = $itemCrawler->filter('div.col-md-10 > div.expries > span.note')->text();
                $data[$i]['expired_date'] = str_replace('End: ', '', $expired);
            } catch(InvalidArgumentException $e) {}

            try {
                $data[$i]['coupon_code'] = $itemCrawler->filter('div.get-code > div.action-mask  div.action-wrap > p')->text();
                $data[$i]['coupon_type'] = 'code';
            } catch (InvalidArgumentException $e) {
                if ($itemCrawler->filter('div.get-code > div.action-mask > span.action')->text() == 'Free Shipping') {
                    $data[$i]['coupon_type'] = 'ship';
                } else {
                    $data[$i]['coupon_type'] = 'deal';
                }
            }

            $data[$i]['desc'] = $itemCrawler->filter('div.description > p.description')->html();
            $temp = $itemCrawler->filter('div.information > span.expries')->text();
            $data[$i]['published_date'] = str_replace('Publish: ', '', $temp);
            try {
                Coupon::create($data[$i]);
            } catch(QueryException $e) {

            }
        }
    }
Пример #19
0
 public function delete(Request $request)
 {
     Coupon::find($request->input('id'))->delete();
     return 'done';
 }
Пример #20
0
 public function adminBuyerIndex(User $user, Offer $offer, CouponGallery $service, Coupon $coupon)
 {
     $buyers = $coupon->coupon_user()->paginate(20);
     return view('admin.offer.service.coupon.buyer.index', compact('user', 'offer', 'service', 'coupon', 'buyers'))->with(['title' => 'Coupon Buyers Management']);
 }
Пример #21
0
 public function destroy($id)
 {
     $item = Coupon::find($id);
     $item->delete();
     return redirect()->action('CouponController@index');
 }
Пример #22
0
 public function updateCart(Request $request)
 {
     $items = $request->get('items');
     $rowids = [];
     foreach ($items as $item) {
         $rowids[] = $item['rowid'];
         $coupon = Coupon::getCurrent();
         $product = \App\Product::find($item['id']);
         if ($product) {
             \Cart::update($item['rowid'], ['price' => $product->price]);
             if ($coupon) {
                 $price = ceil(abs($product->price - $product->price * ($coupon->discount / 100)));
                 \Cart::update($item['rowid'], ['price' => $price]);
             }
         }
         \Cart::update($item['rowid'], $item['qty']);
     }
     // Fjarlægjum vörur sem ekki lengur eru í körfunni
     foreach (\Cart::content() as $rowid => $item) {
         if (!in_array($rowid, $rowids)) {
             \Cart::remove($item['rowid']);
         }
     }
     return response()->json('success', 200);
 }
Пример #23
0
 public function getBanner()
 {
     return Response::json(Coupon::getBanner());
 }