ok
Direktori : /home2/selectio/www/3-idiots/app/Http/Controllers/Admin/ |
Current File : /home2/selectio/www/3-idiots/app/Http/Controllers/Admin/DealController.php |
<?php namespace App\Http\Controllers\Admin; use App\CPU\BackEndHelper; use App\CPU\Helpers; use App\CPU\ImageManager; use App\Http\Controllers\Controller; use App\Model\DealOfTheDay; use App\Model\FlashDeal; use App\Model\FlashDealProduct; use App\Model\Product; use App\Model\Translation; use Brian2694\Toastr\Facades\Toastr; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Illuminate\Support\Str; class DealController extends Controller { public function flash_index(Request $request) { $query_param = []; $search = $request['search']; if ($request->has('search')) { $key = explode(' ', $request['search']); $flash_deal = FlashDeal::withCount('products') ->where('deal_type', 'flash_deal') ->where(function ($q) use ($key) { foreach ($key as $value) { $q->Where('title', 'like', "%{$value}%"); } }); $query_param = ['search' => $request['search']]; } else { $flash_deal = FlashDeal::withCount('products')->where('deal_type', 'flash_deal'); } $flash_deal = $flash_deal->latest()->paginate(Helpers::pagination_limit())->appends($query_param); return view('admin-views.deal.flash-index', compact('flash_deal', 'search')); } public function flash_submit(Request $request) { $flash_deal_id = DB::table('flash_deals')->insertGetId([ 'title' => $request['title'][array_search('en', $request->lang)], 'start_date' => $request['start_date'], 'end_date' => $request['end_date'], 'background_color' => $request['background_color'], 'text_color' => $request['text_color'], 'banner' => $request->has('image') ? ImageManager::upload('deal/', 'png', $request->file('image')) : 'def.png', 'slug' => Str::slug($request['title'][array_search('en', $request->lang)]), 'featured' => $request['featured'] == 1 ? 1 : 0, 'deal_type' => $request['deal_type'] == 'flash_deal' ? 'flash_deal' : 'feature_deal', 'status' => 0, 'created_at' => now(), 'updated_at' => now(), ]); if($flash_deal_id) { foreach ($request->lang as $index => $key) { if ($request->title[$index] && $key != 'en') { Translation::updateOrInsert( ['translationable_type' => 'App\Model\FlashDeal', 'translationable_id' => $flash_deal_id, 'locale' => $key, 'key' => 'title'], ['value' => $request->title[$index]] ); } } } Toastr::success('Deal added successfully!'); return back(); } public function edit($deal_id) { $deal = FlashDeal::withoutGlobalScope('translate')->find($deal_id); return view('admin-views.deal.flash-update', compact('deal')); } public function feature_edit($deal_id) { $deal = FlashDeal::withoutGlobalScope('translate')->find($deal_id); return view('admin-views.deal.feature-update', compact('deal')); } public function update(Request $request, $deal_id) { $deal = FlashDeal::find($deal_id); if ($request->image) { $deal['banner'] = ImageManager::update('deal/', $deal['banner'], 'png', $request->file('image')); } DB::table('flash_deals')->where(['id' => $deal_id])->update([ 'title' => $request['title'][array_search('en', $request->lang)], 'start_date' => $request['start_date'], 'end_date' => $request['end_date'], 'background_color' => $request['background_color'], 'text_color' => $request['text_color'], 'banner' => $deal['banner'], 'slug' => Str::slug($request['title'][array_search('en', $request->lang)]), 'featured' => $request['featured'] == 'on' ? 1 : 0, 'deal_type' => $request['deal_type'] == 'flash_deal' ? 'flash_deal' : 'feature_deal', // 'deal_type' => $request['feature_deal'] == 2 ? 2 : 0, 'status' => $deal['status'], 'updated_at' => now(), ]); foreach ($request->lang as $index => $key) { if ($request->title[$index] && $key != 'en') { Translation::updateOrInsert( ['translationable_type' => 'App\Model\FlashDeal', 'translationable_id' => $deal_id, 'locale' => $key, 'key' => 'title'], ['value' => $request->title[$index]] ); } } Toastr::success('Deal updated successfully!'); return back(); } public function status_update(Request $request) { FlashDeal::where(['status' => 1])->where(['deal_type' => 'flash_deal'])->update(['status' => 0]); FlashDeal::where(['id' => $request['id']])->update([ 'status' => $request['status'], ]); return response()->json([ 'success' => 1, ], 200); } public function feature_status(Request $request) { FlashDeal::where(['status' => 1])->where(['deal_type' => 'feature_deal'])->update(['status' => 0]); FlashDeal::where(['id' => $request['id']])->update([ 'status' => $request['status'], ]); return response()->json([ 'success' => 1, ], 200); } public function featured_update(Request $request) { // FlashDeal::where(['featured' => 1])->update(['featured' => 0]); FlashDeal::where(['id' => $request['id']])->update([ 'featured' => $request['featured'], ]); return response()->json([ 'success' => 1, ], 200); } // Feature Deal public function feature_index(Request $request) { $query_param = []; $search = $request['search']; if ($request->has('search')) { $key = explode(' ', $request['search']); $flash_deals = FlashDeal::where('deal_type', 'feature_deal') ->where(function ($q) use ($key) { foreach ($key as $value) { $q->Where('title', 'like', "%{$value}%"); } }); $query_param = ['search' => $request['search']]; } else { $flash_deals = FlashDeal::where('deal_type', 'feature_deal'); } $flash_deals = $flash_deals->latest()->paginate(Helpers::pagination_limit())->appends($query_param); return view('admin-views.deal.feature-index', compact('flash_deals', 'search')); } public function add_product($deal_id) { $flash_deal_products = FlashDealProduct::where('flash_deal_id', $deal_id)->pluck('product_id'); $products = Product::whereIn('id', $flash_deal_products)->paginate(Helpers::pagination_limit()); $deal = FlashDeal::with(['products.product'])->where('id', $deal_id)->first(); return view('admin-views.deal.add-product', compact('deal', 'products','flash_deal_products')); } public function add_product_submit(Request $request, $deal_id) { $this->validate($request, [ 'product_id' => 'required' ]); $flash_deal_products = FlashDealProduct::where('flash_deal_id', $deal_id)->where('product_id',$request['product_id'])->first(); if(!isset($flash_deal_products)) { DB::table('flash_deal_products')->insertOrIgnore([ 'product_id' => $request['product_id'], 'flash_deal_id' => $deal_id, 'discount' => $request['discount'], 'discount_type' => $request['discount_type'], 'created_at' => now(), 'updated_at' => now(), ]); Toastr::success('Product added successfully!'); return back(); }else{ Toastr::info('Product already added!'); return back(); } } public function delete_product(Request $request) { FlashDealProduct::where('product_id', $request->id)->delete(); return response()->json(); } public function deal_of_day(Request $request) { $query_param = []; $search = $request['search']; if ($request->has('search')) { $key = explode(' ', $request['search']); $deals = DealOfTheDay::where(function ($q) use ($key) { foreach ($key as $value) { $q->Where('title', 'like', "%{$value}%"); } }); $query_param = ['search' => $request['search']]; } else { $deals = new DealOfTheDay(); } $deals = $deals->latest()->paginate(Helpers::pagination_limit())->appends($query_param); return view('admin-views.deal.day-index', compact('deals', 'search')); } public function deal_of_day_submit(Request $request) { $product = Product::find($request['product_id']); $deal_id = DB::table('deal_of_the_days')->insertGetId([ 'title' => $request['title'][array_search('en', $request->lang)], 'discount' => $product['discount_type'] == 'amount' ? BackEndHelper::currency_to_usd($product['discount']) : $product['discount'], 'discount_type' => $product['discount_type'], 'product_id' => $request['product_id'], 'status' => 0, 'created_at' => now(), 'updated_at' => now(), ]); if($deal_id) { foreach ($request->lang as $index => $key) { if ($request->title[$index] && $key != 'en') { Translation::updateOrInsert( ['translationable_type' => 'App\Model\DealOfTheDay', 'translationable_id' => $deal_id, 'locale' => $key, 'key' => 'title'], ['value' => $request->title[$index]] ); } } } Toastr::success('Deal added successfully!'); return back(); } public function day_status_update(Request $request) { DealOfTheDay::where(['status' => 1])->update(['status' => 0]); DealOfTheDay::where(['id' => $request['id']])->update([ 'status' => $request['status'], ]); return response()->json([ 'success' => 1, ], 200); } public function day_edit($deal_id) { $deal = DealOfTheDay::withoutGlobalScope('translate')->find($deal_id); return view('admin-views.deal.day-update', compact('deal')); } public function day_update(Request $request, $deal_id) { $product = Product::find($request['product_id']); DB::table('deal_of_the_days')->where(['id' => $deal_id])->update([ 'title' => $request['title'][array_search('en', $request->lang)], 'discount' => $product['discount_type'] == 'amount' ? BackEndHelper::currency_to_usd($product['discount']) : $product['discount'], 'discount_type' => $product['discount_type'], 'product_id' => $request['product_id'], 'status' => 0, 'updated_at' => now(), ]); foreach ($request->lang as $index => $key) { if ($request->title[$index] && $key != 'en') { Translation::updateOrInsert( ['translationable_type' => 'App\Model\DealOfTheDay', 'translationable_id' => $deal_id, 'locale' => $key, 'key' => 'title'], ['value' => $request->title[$index]] ); } } Toastr::success('Deal updated successfully!'); return redirect()->route('admin.deal.day'); } public function day_delete(Request $request) { DealOfTheDay::destroy($request->id); return response()->json(); } }