[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: BaseController.php
<?php namespace Modules\Superadmin\Http\Controllers; use App\System; use Illuminate\Routing\Controller; use Modules\Superadmin\Entities\Package; use Modules\Superadmin\Entities\Subscription; use Modules\Superadmin\Notifications\NewSubscriptionNotification; use Notification; class BaseController extends Controller { /** * Returns the list of all configured payment gateway * * @return Response */ public function _payment_gateways() { $gateways = []; //Check if stripe is configured or not if (env('STRIPE_PUB_KEY') && env('STRIPE_SECRET_KEY')) { $gateways['stripe'] = 'Stripe'; } //Check if paypal is configured or not if (env('PAYPAL_CLIENT_ID') && env('PAYPAL_APP_SECRET')) { $gateways['paypal'] = 'PayPal'; } //Check if Razorpay is configured or not if ((env('RAZORPAY_KEY_ID') && env('RAZORPAY_KEY_SECRET'))) { $gateways['razorpay'] = 'Razor Pay'; } //Check if Pesapal is configured or not if ((config('pesapal.consumer_key') && config('pesapal.consumer_secret'))) { $gateways['pesapal'] = 'PesaPal'; } //check if Paystack is configured or not $system = System::getCurrency(); if (in_array($system->country, ['Nigeria', 'Ghana']) && (config('paystack.publicKey') && config('paystack.secretKey'))) { $gateways['paystack'] = 'Paystack'; } //check if Flutterwave is configured or not if (env('FLUTTERWAVE_PUBLIC_KEY') && env('FLUTTERWAVE_SECRET_KEY') && env('FLUTTERWAVE_ENCRYPTION_KEY')) { $gateways['flutterwave'] = 'Flutterwave'; } //check if MY FATOORAH is configured or not if (env('MY_FATOORAH_API_KEY') && env('MY_FATOORAH_COUNTRY_ISO')) { $gateways['myfatoorah'] = 'My Fatoorah'; } // check if offline payment is enabled or not $is_offline_payment_enabled = System::getProperty('enable_offline_payment'); if ($is_offline_payment_enabled) { $gateways['offline'] = 'Offline'; } return $gateways; } /** * Enter details for subscriptions * * @return object */ public function _add_subscription($code, $price, $business_id, $package, $gateway, $payment_transaction_id, $user_id, $is_superadmin = false) { if (! is_object($package)) { $package = Package::active()->find($package); } $subscription = ['business_id' => $business_id, 'package_id' => $package->id, 'paid_via' => $gateway, 'payment_transaction_id' => $payment_transaction_id, ]; if ($package->price != 0 && (in_array($gateway, ['offline', 'pesapal']) && ! $is_superadmin)) { //If offline then dates will be decided when approved by superadmin $subscription['start_date'] = null; $subscription['end_date'] = null; $subscription['trial_end_date'] = null; $subscription['status'] = 'waiting'; } else { $dates = $this->_get_package_dates($business_id, $package); $subscription['start_date'] = $dates['start']; $subscription['end_date'] = $dates['end']; $subscription['trial_end_date'] = $dates['trial']; $subscription['status'] = 'approved'; } $subscription['package_price'] = empty($code) ? $package->price : $price; $subscription['coupon_code'] = $code; $subscription['original_price'] = $package->price; $subscription['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, ]; //Custom permissions. if (! empty($package->custom_permissions)) { foreach ($package->custom_permissions as $name => $value) { $subscription['package_details'][$name] = $value; } } $subscription['created_id'] = $user_id; $subscription = Subscription::create($subscription); if (! $is_superadmin) { $email = System::getProperty('email'); $is_notif_enabled = System::getProperty('enable_new_subscription_notification'); if (! empty($email) && $is_notif_enabled == 1) { Notification::route('mail', $email) ->notify(new NewSubscriptionNotification($subscription)); } } return $subscription; } /** * The function returns the start/end/trial end date for a package. * * @param int $business_id * @param object $package * @return array */ protected function _get_package_dates($business_id, $package) { $output = ['start' => '', 'end' => '', 'trial' => '']; //calculate start date $start_date = Subscription::end_date($business_id); $output['start'] = $start_date->toDateString(); //Calculate end date if ($package->interval == 'days') { $output['end'] = $start_date->addDays($package->interval_count)->toDateString(); } elseif ($package->interval == 'months') { $output['end'] = $start_date->addMonths($package->interval_count)->toDateString(); } elseif ($package->interval == 'years') { $output['end'] = $start_date->addYears($package->interval_count)->toDateString(); } $output['trial'] = $start_date->addDays($package->trial_days); return $output; } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: premium320.web-hosting.com
Server IP: 66.29.153.54
PHP Version: 8.2.29
Server Software: LiteSpeed
System: Linux premium320.web-hosting.com 4.18.0-553.50.1.lve.el8.x86_64 #1 SMP Thu Apr 17 19:10:24 UTC 2025 x86_64
HDD Total: 97.87 GB
HDD Free: 76.85 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
No
git:
Yes
User Info
Username: aoneqssk
User ID (UID): 1285
Group ID (GID): 1290
Script Owner UID: 1285
Current Dir Owner: 1285