|
Server : Apache/2.4.41 (Ubuntu) System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64 User : www-data ( 33) PHP Version : 8.2.12 Disable Function : NONE Directory : /var/www/navinclasses.studylms.in/app/Http/Controllers/ |
Upload File : |
<?php
namespace App\Http\Controllers;
use App\Models\Log;
use App\Models\Product;
use App\Models\Promocode;
use Illuminate\Http\Request;
use App\Models\Product_promocode;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Session;
class PromocodeController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index(Request $request)
{
$data['mainMenu'] = 'promocodeManagement';
$data['subMenu'] = 'promocodeList';
$admin_id = $request->session()->get('loggedIn')['id'];
$admin_id = $request->session()->get('loggedIn')['id'];
if (isset($_GET['query']) && strlen($_GET['query']) > 1) {
$search_text = $_GET['query'];
// dd($search_text);
$data['promocodes'] = DB::table('promocodes')->where('code', 'LIKE', '%' . $search_text . '%')->where(['admin_id' => $admin_id])->paginate(10);
} else {
$data['promocodes'] = DB::table('promocodes')->paginate(10);
}
return view('admin.promocodes.promocode-list', $data);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create(Request $request)
{
$admin_id = $request->session()->get('loggedIn')['id'];
$data['mainMenu'] = 'promocodeManagement';
$data['subMenu'] = 'promocodeList';
$data['products'] = Product::where(['admin_id' => $admin_id])->get();
return view('admin.promocodes.add-promocode', $data);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
// dd($request->input());
$admin_id = $request->session()->get('loggedIn')['id'];
$request->validate([
'code' => 'required|unique:promocodes',
'discount_type' => 'required',
'amount' => 'required',
'promo_for' => 'required',
'promo_type' => 'required',
'start_date' => 'required',
'end_date' => 'required',
]);
$data = array(
'admin_id' => $admin_id,
'code' => $request->code,
'discount_type' => $request->discount_type,
'amount' => $request->amount,
'limit_value' => $request->limit_value,
'promo_for' => $request->promo_for,
'promo_type' => $request->promo_type,
'start_date' => $request->start_date,
'end_date' => $request->end_date,
'status' => 1,
);
$res = Promocode::create($data);
$promo_id = $res->id;
if ($request->promo_for == 'selected_courses') {
$courses = $request->courses;
if (!empty($courses)) {
foreach ($courses as $course) {
$mapData = array(
'promo_id' => $promo_id,
'product_id' => $course,
);
Product_promocode::create($mapData);
// Log Data Entry ===========
$logData = array(
'user_id' => Session::get('loggedIn')['id'],
'activity' => "Product_promocode ID: " . $promo_id . " added",
'created_at' => date('Y-m-d H:i:s')
);
Log::create($logData);
// End Log =============
}
}
}
return back()->with('success', 'Promocode Has Been Added!.');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
$data['mainMenu'] = 'promocodeManagement';
$data['subMenu'] = 'promocodeList';
$data['promocode'] = Promocode::where(['id' => $id])->first();
return view('admin.promocodes.view-promocode', $data);
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($id)
{
$data['mainMenu'] = 'promocodeManagement';
$data['subMenu'] = 'promocodeList';
$data['promocode'] = Promocode::where(['id' => $id])->first();
return view('admin.promocodes.edit-promocode', $data);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $id)
{
$admin_id = $request->session()->get('loggedIn')['id'];
$request->validate([
'code' => 'required|unique:promocodes',
'discount_type' => 'required',
'amount' => 'required',
'promo_for' => 'required',
'promo_type' => 'required',
'start_date' => 'required',
'end_date' => 'required',
]);
$data = array(
'admin_id' => $admin_id,
'code' => $request->code,
'discount_type' => $request->discount_type,
'amount' => $request->amount,
'limit_value' => $request->limit_value,
'promo_for' => $request->promo_for,
'promo_type' => $request->promo_type,
'start_date' => $request->start_date,
'end_date' => $request->end_date,
'status' => 1,
);
Promocode::where('id', $id)->update($data);
// Log Data Entry ===========
$logData = array(
'user_id' => Session::get('loggedIn')['id'],
'activity' => "Product_promocode ID: " . $id . " updated",
'created_at' => date('Y-m-d H:i:s')
);
Log::create($logData);
// End Log =============
return back()->with('success', 'Promocode Has Been Added!.');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
Promocode::where(['id' => $id])->delete();
// Log Data Entry ===========
$logData = array(
'user_id' => Session::get('loggedIn')['id'],
'activity' => "Product_promocode ID: " . $id . " deleted",
'created_at' => date('Y-m-d H:i:s')
);
Log::create($logData);
// End Log =============
return back()->with('success', 'Post deleted successfully');
}
// map course list
public function mapCourseList(Request $request, $promo_id)
{
$data['mainMenu'] = 'promocodeManagement';
$data['subMenu'] = 'promocodeList';
$admin_id = $request->session()->get('loggedIn')['id'];
$admin_id = $request->session()->get('loggedIn')['id'];
if (isset($_GET['query']) && strlen($_GET['query']) > 1) {
$search_text = $_GET['query'];
$data['promocodes'] = Product::where('products.name', 'LIKE', '%' . $search_text . '%')
->where(['product_promocodes.promo_id' => $promo_id])
->join('product_promocodes', 'product_promocodes.product_id', '=', 'products.id')
->paginate(10, ['products.name', 'product_promocodes.id']);
} else {
$data['promocodes'] = Product::where(['product_promocodes.promo_id' => $promo_id])
->join('product_promocodes', 'product_promocodes.product_id', '=', 'products.id')
->paginate(10, ['products.name', 'product_promocodes.id']);
}
$data['promo'] = Promocode::where('id', $promo_id)->first();
return view('admin.promocodes.map-product-list', $data);
}
public function deleteMapPromocode($id)
{
Product_promocode::where(['id' => $id])->delete();
// Log Data Entry ===========
$logData = array(
'user_id' => Session::get('loggedIn')['id'],
'activity' => "Product_promocode ID: " . $id . " deleted",
'created_at' => date('Y-m-d H:i:s')
);
Log::create($logData);
// End Log =============
return back()->with('success', 'Post deleted successfully');
}
}