File manager - Edit - /var/www/payraty/inventory_main/app/Http/Controllers/Admin/Coupon/CouponController.php
Back
<?php namespace App\Http\Controllers\Admin\Coupon; use App\DataTables\CouponDataTable; use App\Http\Controllers\Controller; use App\Http\Requests\CouponRequest; use App\Services\Coupon\CouponService; use App\Models\Coupon; use Illuminate\Support\Facades\Auth; use Illuminate\Http\Request; use PDF; use Excel; use App\Exports\CouponsExport; use Illuminate\Support\Facades\DB; class CouponController extends Controller { protected $couponService; public function __construct(CouponService $couponService) { $this->couponService = $couponService; $this->middleware(['permission:List Coupon'])->only(['index']); $this->middleware(['permission:Add Coupon'])->only(['create']); $this->middleware(['permission:Edit Coupon'])->only(['edit']); $this->middleware(['permission:Delete Coupon'])->only(['destroy']); } public function index(CouponDataTable $dataTable) { set_page_meta(__('custom.coupon')); $user = Auth::user(); $orgId = $user->organisation_id; $coupons = Coupon::where('organisation_id', $orgId)->paginate(10); // return $dataTable->render('admin.coupons.index'); $profile = DB::table('profiles')->where('user_id', $user->id)->first(); return view('admin.coupons.index', compact('coupons', 'profile')); } public function filter(Request $request) { $user = Auth::user(); $orgId = $user->organisation_id; $period = $request->get('period', 'all'); $query = Coupon::where('organisation_id', $orgId); switch ($period) { case 'monthly': $query->whereMonth('created_at', now()->month); break; case 'yearly': $query->whereYear('created_at', now()->year); break; // 'all' case doesn't need additional filtering } $coupons = $query->paginate(10); if ($request->ajax()) { return response()->json([ 'coupons' => $coupons ]); } // Fallback for non-AJAX requests return redirect()->route('admin.coupons.index'); } public function search(Request $request) { $user = Auth::user(); $orgId = $user->organisation_id; $searchTerm = $request->get('q'); $coupons = Coupon::where('organisation_id', $orgId) ->where(function ($query) use ($searchTerm) { $query->where('title', 'LIKE', "%{$searchTerm}%") ->orWhere('code', 'LIKE', "%{$searchTerm}%"); }) ->paginate(10); if ($request->ajax()) { return response()->json([ 'coupons' => $coupons ]); } // Fallback for non-AJAX requests return view('admin.coupons.index', compact('coupons')); } /** * exportCoupons * * @param mixed $request * @return void */ public function exportCoupons(Request $request) { $sales = []; $type = $request->type; $user = Auth::user(); $orgId = $user->organisation_id; $coupons = Coupon::where('organisation_id', $orgId)->get(); $name = 'Coupon_' . now()->format('YmdHis'); if ($type == 'pdf') { $pdf = PDF::loadView('admin.coupons.pdf.index', ['coupons' => $coupons]); return $pdf->download($name . '.pdf'); } else if ($type == 'csv') { return Excel::download(new CouponsExport($coupons), $name . '.csv'); } else if ($type == 'excel') { return Excel::download(new CouponsExport($coupons), $name . '.xlsx'); } } public function create() { set_page_meta(__('custom.add_coupon')); return view('admin.coupons.create'); } public function store(CouponRequest $request) { $data = $request->validated(); if ($coupon = $this->couponService->createOrUpdateWithFile($data, 'banner')) { flash(__('custom.coupon_create_successful'))->success(); } else { flash(__('custom.coupon_create_failed'))->error(); } if ($request->is_submit_set_product) { return redirect()->route('admin.coupon.products', $coupon->id); } return redirect()->route('admin.coupons.index'); } public function show($id) { // } public function edit($id) { $coupon = $this->couponService->get($id); set_page_meta(__('custom.edit_coupon')); return view('admin.coupons.edit', compact('coupon')); } public function update(CouponRequest $request, $id) { $data = $request->validated(); if ($this->couponService->createOrUpdateWithFile($data, 'banner', $id)) { flash(__('custom.coupon_updated_successful'))->success(); } else { flash(__('custom.coupon_updated_failed'))->error(); } return redirect()->route('admin.coupons.index'); } public function destroy($id) { if ($this->couponService->delete($id)) { flash(__('custom.coupon_deleted_successful'))->success(); } else { flash(__('custom.coupon_deleted_failed'))->error(); } return redirect()->route('admin.coupons.index'); } public function getActiveCouponByCode($code) { $coupon = $this->couponService->getActiveCouponByCode($code); if ($coupon) { return response()->json([ 'status' => true, 'coupon' => $coupon, 'coupon_product_ids' => $coupon->couponProducts->pluck('product_id')->toArray() ]); } else { return response()->json([ 'status' => false, 'coupon' => null, 'coupon_product_ids' => null ]); } } }
| ver. 1.4 |
Github
|
.
| PHP 8.3.30 | Generation time: 0 |
proxy
|
phpinfo
|
Settings