![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /home/fdshops/public_html/Modules/Superadmin/Http/Controllers/ |
<?php namespace Modules\Superadmin\Http\Controllers; use App\Business; use App\System; use App\Utils\BusinessUtil; use App\Utils\ModuleUtil; use Illuminate\Http\Request; use Illuminate\Http\Response; use Modules\Superadmin\Entities\Package; use Modules\Superadmin\Entities\Subscription; use Illuminate\Routing\Controller; class PackagesController extends Controller { /** * All Utils instance. */ protected $businessUtil; protected $moduleUtil; /** * Constructor * * @param ProductUtils $product * @return void */ public function __construct(BusinessUtil $businessUtil, ModuleUtil $moduleUtil) { $this->businessUtil = $businessUtil; $this->moduleUtil = $moduleUtil; } /** * Display a listing of the resource. * * @return Response */ public function index() { if (! auth()->user()->can('superadmin')) { abort(403, 'Unauthorized action.'); } $packages = Package::orderby('sort_order', 'asc') ->paginate(20); //Get all module permissions and convert them into name => label $permissions = $this->moduleUtil->getModuleData('superadmin_package'); $permission_formatted = []; foreach ($permissions as $permission) { foreach ($permission as $details) { $permission_formatted[$details['name']] = $details['label']; } } return view('superadmin::packages.index') ->with(compact('packages', 'permission_formatted')); } /** * Show the form for creating a new resource. * * @return Response */ public function create() { if (! auth()->user()->can('superadmin')) { abort(403, 'Unauthorized action.'); } $intervals = ['days' => __('lang_v1.days'), 'months' => __('lang_v1.months'), 'years' => __('lang_v1.years')]; $currency = System::getCurrency(); $businesses = Business::get()->pluck('name', 'id'); $permissions = $this->moduleUtil->getModuleData('superadmin_package'); return view('superadmin::packages.create') ->with(compact('intervals', 'currency', 'permissions', 'businesses')); } /** * Store a newly created resource in storage. * * @param Request $request * @return Response */ public function store(Request $request) { if (! auth()->user()->can('superadmin')) { abort(403, 'Unauthorized action.'); } try { $input = $request->only(['name', 'description', 'location_count', 'user_count', 'product_count', 'invoice_count', 'interval', 'interval_count', 'trial_days', 'price', 'sort_order', 'is_active', 'mark_package_as_popular', 'custom_permissions', 'is_private', 'is_one_time', 'enable_custom_link', 'custom_link', 'custom_link_text', 'businesses' ]); $currency = System::getCurrency(); $input['price'] = $this->businessUtil->num_uf($input['price'], $currency); $input['is_active'] = empty($input['is_active']) ? 0 : 1; $input['mark_package_as_popular'] = empty($input['mark_package_as_popular']) ? 0 : 1; $input['created_by'] = $request->session()->get('user.id'); $input['is_private'] = empty($input['is_private']) ? 0 : 1; $input['is_one_time'] = empty($input['is_one_time']) ? 0 : 1; $input['enable_custom_link'] = empty($input['enable_custom_link']) ? 0 : 1; $input['custom_link'] = empty($input['enable_custom_link']) ? '' : $input['custom_link']; $input['custom_link_text'] = empty($input['enable_custom_link']) ? '' : $input['custom_link_text']; $input['businesses'] = $input['businesses'] = empty($input['businesses']) ? null : json_encode($input['businesses']); $package = new Package; $package->fill($input); $package->save(); $output = ['success' => 1, 'msg' => __('lang_v1.success')]; } catch (\Exception $e) { \Log::emergency('File:'.$e->getFile().'Line:'.$e->getLine().'Message:'.$e->getMessage()); $output = ['success' => 0, 'msg' => __('messages.something_went_wrong'), ]; } return redirect() ->action([\Modules\Superadmin\Http\Controllers\PackagesController::class, 'index']) ->with('status', $output); } /** * Show the specified resource. * * @return Response */ public function show() { return view('superadmin::show'); } /** * Show the form for editing the specified resource. * * @return Response */ public function edit($id) { $packages = Package::where('id', $id) ->first(); $intervals = ['days' => __('lang_v1.days'), 'months' => __('lang_v1.months'), 'years' => __('lang_v1.years')]; $permissions = $this->moduleUtil->getModuleData('superadmin_package', true); $businesses = Business::get()->pluck('name', 'id'); return view('superadmin::packages.edit') ->with(compact('packages', 'intervals', 'permissions', 'businesses')); } /** * Update the specified resource in storage. * * @param Request $request * @return Response */ public function update(Request $request, $id) { if (! auth()->user()->can('superadmin')) { abort(403, 'Unauthorized action.'); } try { $packages_details = $request->only(['name', 'id', 'description', 'location_count', 'user_count', 'product_count', 'invoice_count', 'interval', 'interval_count', 'trial_days', 'price', 'sort_order', 'is_active', 'mark_package_as_popular', 'custom_permissions', 'is_private', 'is_one_time', 'enable_custom_link', 'custom_link', 'custom_link_text', 'businesses']); $packages_details['is_active'] = empty($packages_details['is_active']) ? 0 : 1; $packages_details['mark_package_as_popular'] = empty($packages_details['mark_package_as_popular']) ? 0 : 1; $packages_details['custom_permissions'] = empty($packages_details['custom_permissions']) ? null : $packages_details['custom_permissions']; $packages_details['is_private'] = empty($packages_details['is_private']) ? 0 : 1; $packages_details['is_one_time'] = empty($packages_details['is_one_time']) ? 0 : 1; $packages_details['enable_custom_link'] = empty($packages_details['enable_custom_link']) ? 0 : 1; $packages_details['custom_link'] = empty($packages_details['enable_custom_link']) ? '' : $packages_details['custom_link']; $packages_details['custom_link_text'] = empty($packages_details['enable_custom_link']) ? '' : $packages_details['custom_link_text']; $packages_details['businesses'] = empty($packages_details['businesses']) ? null : json_encode($packages_details['businesses']); $package = Package::where('id', $id) ->first(); $package->fill($packages_details); $package->save(); if (! empty($request->input('update_subscriptions'))) { $package_details = [ 'location_count' => $package->location_count, 'user_count' => $package->user_count, 'product_count' => $package->product_count, 'invoice_count' => $package->invoice_count, 'name' => $package->name, ]; if (! empty($package->custom_permissions)) { foreach ($package->custom_permissions as $name => $value) { $package_details[$name] = $value; } } //Update subscription package details $subscriptions = Subscription::where('package_id', $package->id) ->whereDate('end_date', '>=', \Carbon::now()) ->update(['package_details' => json_encode($package_details)]); } $output = ['success' => 1, 'msg' => __('lang_v1.success')]; } catch (\Exception $e) { \Log::emergency('File:'.$e->getFile().'Line:'.$e->getLine().'Message:'.$e->getMessage()); $output = ['success' => 0, 'msg' => __('messages.something_went_wrong'), ]; } return redirect() ->action([\Modules\Superadmin\Http\Controllers\PackagesController::class, 'index']) ->with('status', $output); } /** * Remove the specified resource from storage. * * @return Response */ public function destroy($id) { if (! auth()->user()->can('superadmin')) { abort(403, 'Unauthorized action.'); } try { Package::where('id', $id) ->delete(); $output = ['success' => 1, 'msg' => __('lang_v1.success')]; } catch (\Exception $e) { \Log::emergency('File:'.$e->getFile().'Line:'.$e->getLine().'Message:'.$e->getMessage()); $output = ['success' => 0, 'msg' => __('messages.something_went_wrong'), ]; } return redirect() ->action([\Modules\Superadmin\Http\Controllers\PackagesController::class, 'index']) ->with('status', $output); } }