%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/www/admin1/app/Helper/ |
Upload File : |
<?php
/*
|--------------------------------------------------------------------------
| Register Namespaces And Routes
|--------------------------------------------------------------------------
|
| When a module starting, this file will executed automatically. This helps
| to register some namespaces like translator or view. Also this file
| will load the routes file for each module. You may also modify
| this file as you want.
|
*/
use App\Helper\Files;
use App\Http\Controllers\FileController;
use App\Models\Company;
use App\Models\Currency;
use App\Models\CurrencyFormatSetting;
use App\Models\InvoiceSetting;
use App\Models\Permission;
use App\Models\QuickBooksSetting;
use App\Models\StorageSetting;
use App\Models\ThemeSetting;
use App\Models\UserPermission;
use App\Scopes\CompanyScope;
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
if (!function_exists('user')) {
/**
* Return current logged in user
*/
function user()
{
if (session()->has('user')) {
return session('user');
}
$user = auth()->user();
if ($user) {
session(['user' => $user]);
return session('user');
}
return null;
}
}
if (!function_exists('user_roles')) {
/**
* Return current logged in user
*/
// @codingStandardsIgnoreLine
function user_roles()
{
if (session()->has('user_roles')) {
return session('user_roles');
}
$user = user();
if ($user) {
$roles = user()->roles;
session(['user_roles' => $roles->pluck('name')->toArray()]);
session(['user_role_ids' => $roles->pluck('id')->toArray()]);
return session('user_roles');
}
return null;
}
}
if (!function_exists('admin_theme')) {
// @codingStandardsIgnoreLine
function admin_theme()
{
if (!session()->has('admin_theme')) {
session(['admin_theme' => ThemeSetting::where('panel', 'admin')->first()]);
}
return session('admin_theme');
}
}
if (!function_exists('employee_theme')) {
// @codingStandardsIgnoreLine
function employee_theme()
{
if (!session()->has('employee_theme')) {
session(['employee_theme' => ThemeSetting::where('panel', 'employee')->first()]);
}
return session('employee_theme');
}
}
if (!function_exists('client_theme')) {
// @codingStandardsIgnoreLine
function client_theme()
{
if (!session()->has('client_theme')) {
session(['client_theme' => ThemeSetting::where('panel', 'client')->first()]);
}
return session('client_theme');
}
}
if (!function_exists('global_setting')) {
// @codingStandardsIgnoreLine
function global_setting()
{
if (!cache()->has('global_setting')) {
$setting = \App\Models\GlobalSetting::first();
cache(['global_setting' => $setting]);
return $setting;
}
return cache('global_setting');
}
}
if (!function_exists('push_setting')) {
// @codingStandardsIgnoreLine
function push_setting()
{
if (!session()->has('push_setting')) {
session(['push_setting' => \App\Models\PushNotificationSetting::first()]);
}
return session('push_setting');
}
}
if (!function_exists('language_setting')) {
// @codingStandardsIgnoreLine
function language_setting()
{
if (!cache()->has('language_setting')) {
cache(['language_setting' => \App\Models\LanguageSetting::where('status', 'enabled')->get()]);
}
return cache('language_setting');
}
}
if (!function_exists('language_setting_locale')) {
// @codingStandardsIgnoreLine
function language_setting_locale($locale)
{
if (!cache()->has('language_setting_'.$locale)) {
cache(['language_setting_'.$locale => \App\Models\LanguageSetting::where('language_code', $locale)->first()]);
}
return cache('language_setting_'.$locale);
}
}
if (!function_exists('smtp_setting')) {
// @codingStandardsIgnoreLine
function smtp_setting()
{
if (!session()->has('smtp_setting')) {
session(['smtp_setting' => \App\Models\SmtpSetting::first()]);
}
return session('smtp_setting');
}
}
if (!function_exists('message_setting')) {
// @codingStandardsIgnoreLine
function message_setting()
{
if (!session()->has('message_setting')) {
session(['message_setting' => \App\Models\MessageSetting::first()]);
}
return session('message_setting');
}
}
if (!function_exists('storage_setting')) {
// @codingStandardsIgnoreLine
function storage_setting()
{
if (!session()->has('storage_setting')) {
$setting = StorageSetting::where('status', 'enabled')->first();
session(['storage_setting' => $setting]);
}
return session('storage_setting');
}
}
if (!function_exists('email_notification_setting')) {
// @codingStandardsIgnoreLine
function email_notification_setting()
{
if (in_array('client', user_roles()) || in_array('employee', user_roles())) {
if (!session()->has('email_notification_setting')) {
session(['email_notification_setting' => \App\Models\EmailNotificationSetting::all()]);
}
}
if (!session()->has('email_notification_setting')) {
session(['email_notification_setting' => \App\Models\EmailNotificationSetting::all()]);
}
return session('email_notification_setting');
}
}
if (!function_exists('asset_url')) {
// @codingStandardsIgnoreLine
function asset_url($path)
{
$path = \App\Helper\Files::UPLOAD_FOLDER . '/' . $path;
$storageUrl = $path;
if (!Str::startsWith($storageUrl, 'http')) {
return url($storageUrl);
}
return $storageUrl;
}
}
if (!function_exists('user_modules')) {
// @codingStandardsIgnoreLine
function user_modules()
{
$user = user();
if (!$user) {
return [];
}
if (cache()->has('user_modules_' . $user->id)) {
return cache('user_modules_' . $user->id);
}
$module = new \App\Models\ModuleSetting();
if (in_array('admin', user_roles())) {
$module = $module->where('type', 'admin');
}
elseif (in_array('client', user_roles())) {
$module = $module->where('type', 'client');
}
elseif (in_array('employee', user_roles())) {
$module = $module->where('type', 'employee');
}
$module = $module->where('status', 'active');
$module->select('module_name');
$module = $module->get();
$moduleArray = [];
foreach ($module->toArray() as $item) {
$moduleArray[] = array_values($item)[0];
}
cache()->put('user_modules_' . $user->id, $moduleArray);
return $moduleArray;
}
}
if (!function_exists('worksuite_plugins')) {
// @codingStandardsIgnoreLine
function worksuite_plugins()
{
if (!cache()->has('worksuite_plugins')) {
$plugins = \Nwidart\Modules\Facades\Module::allEnabled();
foreach ($plugins as $plugin) {
Artisan::call('module:migrate', array($plugin, '--force' => true));
}
cache(['worksuite_plugins' => array_keys($plugins)]);
}
return cache('worksuite_plugins');
}
}
if (!function_exists('pusher_settings')) {
// @codingStandardsIgnoreLine
function pusher_settings()
{
if (!session()->has('pusher_settings')) {
session(['pusher_settings' => \App\Models\PusherSetting::first()]);
}
return session('pusher_settings');
}
}
if (!function_exists('isSeedingData')) {
/**
* Check if app is seeding data
* @return boolean
*/
function isSeedingData()
{
// We set config(['app.seeding' => true]) at the beginning of each seeder. And check here
return config('app.seeding');
}
}
if (!function_exists('isRunningInConsoleOrSeeding')) {
/**
* Check if app is seeding data
* @return boolean
*/
function isRunningInConsoleOrSeeding()
{
// We set config(['app.seeding' => true]) at the beginning of each seeder. And check here
return app()->runningInConsole() || isSeedingData();
}
}
if (!function_exists('asset_url_local_s3')) {
// @codingStandardsIgnoreLine
function asset_url_local_s3($path, $appRoute = false, $type = 'file')
{
if (in_array(config('filesystems.default'), StorageSetting::S3_COMPATIBLE_STORAGE)) {
if ($appRoute) {
$filePath = FileController::encryptDecrypt($path);
if ($type == 'image') {
$filePath = $filePath . '.png';
}
return route('file.getFile', ['type' => $type, 'path' => $filePath]);
}
return Storage::disk(config('filesystems.default'))->temporaryUrl($path, now()->addMinutes(StorageSetting::HASH_TEMP_FILE_TIME));
}
$path = Files::UPLOAD_FOLDER . '/' . $path;
$storageUrl = $path;
if (!Str::startsWith($storageUrl, 'http')) {
return url($storageUrl);
}
return $storageUrl;
}
}
if (!function_exists('download_local_s3')) {
// @codingStandardsIgnoreLine
function download_local_s3($file, $path)
{
if (in_array(config('filesystems.default'), StorageSetting::S3_COMPATIBLE_STORAGE)) {
return Storage::disk(config('filesystems.default'))->download($path, basename($file->filename));
}
$path = Files::UPLOAD_FOLDER . '/' . $path;
$ext = pathinfo($file->filename, PATHINFO_EXTENSION);
$filename = $file->name ? $file->name . '.' . $ext : $file->filename;
try {
return response()->download($path, $filename);
} catch (\Exception $e) {
return response()->view('errors.file_not_found', ['message' => $e->getMessage()], 404);
}
}
}
if (!function_exists('gdpr_setting')) {
// @codingStandardsIgnoreLine
function gdpr_setting()
{
if (!session()->has('gdpr_setting')) {
session(['gdpr_setting' => \App\Models\GdprSetting::first()]);
}
return session('gdpr_setting');
}
}
if (!function_exists('social_auth_setting')) {
// @codingStandardsIgnoreLine
function social_auth_setting()
{
if (!cache()->has('social_auth_setting')) {
cache(['social_auth_setting' => \App\Models\SocialAuthSetting::first()]);
}
return cache('social_auth_setting');
}
}
if (!function_exists('invoice_setting')) {
// @codingStandardsIgnoreLine
function invoice_setting()
{
if (!session()->has('invoice_setting')) {
return session(['invoice_setting' => InvoiceSetting::first()]);
}
return session('invoice_setting');
}
// @codingStandardsIgnoreLine
}
if (!function_exists('time_log_setting')) {
// @codingStandardsIgnoreLine
function time_log_setting()
{
if (!session()->has('time_log_setting')) {
session(['time_log_setting' => \App\Models\LogTimeFor::first()]);
}
return session('time_log_setting');
}
}
if (!function_exists('check_migrate_status')) {
// @codingStandardsIgnoreLine
function check_migrate_status()
{
if (!session()->has('check_migrate_status')) {
$status = Artisan::call('migrate:check');
if ($status && !request()->ajax()) {
Artisan::call('migrate', ['--force' => true, '--schema-path' => 'do not run schema path']); // Migrate database
Artisan::call('optimize:clear');
}
session(['check_migrate_status' => 'Good']);
}
return session('check_migrate_status');
}
}
if (!function_exists('countries')) {
// @codingStandardsIgnoreLine
function countries()
{
if (!cache()->has('countries')) {
cache(['countries' => \App\Models\Country::all()]);
}
return cache('countries');
}
}
if (!function_exists('module_enabled')) {
// @codingStandardsIgnoreLine
function module_enabled($moduleName)
{
return \Nwidart\Modules\Facades\Module::collections()->has($moduleName);
}
}
if (!function_exists('currency_format_setting')) {
// @codingStandardsIgnoreLine
function currency_format_setting($currencyId = null)
{
if (!session()->has('currency_format_setting' . $currencyId)) {
$setting = $currencyId == null ? Currency::first() : Currency::where('id', $currencyId)->first();
session(['currency_format_setting' . $currencyId => $setting]);
}
return session('currency_format_setting' . $currencyId);
}
}
if (!function_exists('currency_format')) {
// @codingStandardsIgnoreLine
function currency_format($amount, $currencyId = null, $showSymbol = true)
{
$formats = currency_format_setting($currencyId);
if (!$showSymbol) {
$currency_symbol = '';
}
else {
$settings = $formats->company ?? Company::find($formats->company_id);
$currency_symbol = $currencyId == null ? $settings->currency->currency_symbol : $formats->currency_symbol;
}
$currency_position = $formats->currency_position;
$no_of_decimal = !is_null($formats->no_of_decimal) ? $formats->no_of_decimal : '0';
$thousand_separator = !is_null($formats->thousand_separator) ? $formats->thousand_separator : '';
$decimal_separator = !is_null($formats->decimal_separator) ? $formats->decimal_separator : '0';
$amount = number_format($amount, $no_of_decimal, $decimal_separator, $thousand_separator);
$amount = match ($currency_position) {
'right' => $amount . $currency_symbol,
'left_with_space' => $currency_symbol . ' ' . $amount,
'right_with_space' => $amount . ' ' . $currency_symbol,
default => $currency_symbol . $amount,
};
return $amount;
}
}
if (!function_exists('attendance_setting')) {
// @codingStandardsIgnoreLine
function attendance_setting()
{
if (!session()->has('attendance_setting')) {
session(['attendance_setting' => \App\Models\AttendanceSetting::first()]);
}
return session('attendance_setting');
}
}
if (!function_exists('add_project_permission')) {
// @codingStandardsIgnoreLine
function add_project_permission()
{
if (!session()->has('add_project_permission') && user()) {
session(['add_project_permission' => user()->permission('add_projects')]);
}
return session('add_project_permission');
}
}
if (!function_exists('add_tasks_permission')) {
// @codingStandardsIgnoreLine
function add_tasks_permission()
{
if (!session()->has('add_tasks_permission') && user()) {
session(['add_tasks_permission' => user()->permission('add_tasks')]);
}
return session('add_tasks_permission');
}
}
if (!function_exists('add_clients_permission')) {
// @codingStandardsIgnoreLine
function add_clients_permission()
{
if (!session()->has('add_clients_permission') && user()) {
session(['add_clients_permission' => user()->permission('add_clients')]);
}
return session('add_clients_permission');
}
}
if (!function_exists('add_employees_permission')) {
// @codingStandardsIgnoreLine
function add_employees_permission()
{
if (!session()->has('add_employees_permission') && user()) {
session(['add_employees_permission' => user()->permission('add_employees')]);
}
return session('add_employees_permission');
}
// @codingStandardsIgnoreLine
}
if (!function_exists('add_payments_permission')) {
// @codingStandardsIgnoreLine
function add_payments_permission()
{
if (!session()->has('add_payments_permission') && user()) {
session(['add_payments_permission' => user()->permission('add_payments')]);
}
return session('add_payments_permission');
}
// @codingStandardsIgnoreLine
}
if (!function_exists('add_tickets_permission')) {
// @codingStandardsIgnoreLine
function add_tickets_permission()
{
if (!session()->has('add_tickets_permission') && user()) {
session(['add_tickets_permission' => user()->permission('add_tickets')]);
}
return session('add_tickets_permission');
}
}
if (!function_exists('add_timelogs_permission')) {
// @codingStandardsIgnoreLine
function add_timelogs_permission()
{
if (!session()->has('add_timelogs_permission') && user()) {
session(['add_timelogs_permission' => user()->permission('add_timelogs')]);
}
return session('add_timelogs_permission');
}
}
if (!function_exists('manage_active_timelogs')) {
// @codingStandardsIgnoreLine
function manage_active_timelogs()
{
if (!session()->has('manage_active_timelogs') && user()) {
session(['manage_active_timelogs' => user()->permission('manage_active_timelogs')]);
}
return session('manage_active_timelogs');
}
}
if (!function_exists('slack_setting')) {
// @codingStandardsIgnoreLine
function slack_setting()
{
if (!session()->has('slack_setting')) {
session(['slack_setting' => \App\Models\SlackSetting::first()]);
}
return session('slack_setting');
}
}
if (!function_exists('default_address')) {
// @codingStandardsIgnoreLine
function default_address()
{
if (!session()->has('default_address')) {
session(['default_address' => company()->defaultAddress]);
}
return session('default_address');
}
}
if (!function_exists('abort_403')) {
// @codingStandardsIgnoreLine
function abort_403($condition)
{
abort_if($condition, 403, __('messages.permissionDenied'));
}
}
if (!function_exists('sidebar_user_perms')) {
// @codingStandardsIgnoreLine
function sidebar_user_perms()
{
if (!session()->has('sidebar_user_perms')) {
$sidebarPermissionsArray = [
'view_clients',
'view_lead',
'view_employees',
'view_leave',
'view_attendance',
'view_holiday',
'view_contract',
'view_projects',
'view_tasks',
'view_timelogs',
'view_estimates',
'view_invoices',
'view_payments',
'view_expenses',
'view_product',
'view_order',
'view_tickets',
'view_events',
'view_notice',
'view_task_report',
'view_time_log_report',
'view_finance_report',
'view_income_expense_report',
'view_leave_report',
'view_lead_proposals',
'view_attendance_report',
'manage_company_setting',
'add_employees',
'view_knowledgebase',
'view_shift_roster',
'view_designation',
'view_department',
'view_overview_dashboard',
'view_project_dashboard',
'view_client_dashboard',
'view_hr_dashboard',
'view_ticket_dashboard',
'view_finance_dashboard',
'view_expense_report',
'view_client_note',
'view_bankaccount',
'view_appreciation',
'manage_award',
'view_lead_report',
'view_sales_report',
];
$sidebarPermissions = Permission::whereIn('name', $sidebarPermissionsArray)->select('id', 'name')->orderBy('id', 'asc')->get();
$sidebarPermissionsId = $sidebarPermissions->pluck('id')->toArray();
$sidebarUserPermissionType = UserPermission::where('user_id', user()->id)
->whereIn('permission_id', $sidebarPermissionsId)
->join('permissions', 'permissions.id', '=', 'user_permissions.permission_id')
->orderBy('user_permissions.id')
->select('user_permissions.permission_type_id', 'permissions.name', 'permissions.id')
->groupBy(['user_id', 'permission_id', 'permission_type_id'])
->get()
->keyBy('name');
$sidebarUserPermissions = array_combine($sidebarUserPermissionType->pluck('name')->toArray(), $sidebarUserPermissionType->pluck('permission_type_id')->toArray());
$unassignedPermissions = array_diff($sidebarPermissionsId, $sidebarUserPermissionType->pluck('id')->toArray());
$filteredPermissions = $sidebarPermissions->filter(function ($item) use ($unassignedPermissions) {
return in_array($item->id, $unassignedPermissions);
});
foreach ($filteredPermissions as $item) {
$sidebarUserPermissions[$item->name] = 5;
}
session(['sidebar_user_perms' => $sidebarUserPermissions]);
}
return session('sidebar_user_perms');
}
}
if (!function_exists('mb_ucfirst')) {
// @codingStandardsIgnoreLine
function mb_ucfirst($string, $encoding = 'utf8')
{
$firstChar = mb_substr($string, 0, 1, $encoding);
$then = mb_substr($string, 1, null, $encoding);
return mb_strtoupper($firstChar, $encoding) . $then;
}
}
if (!function_exists('mb_ucwords')) {
// @codingStandardsIgnoreLine
function mb_ucwords($string, $encoding = 'utf8')
{
return mb_convert_case($string, MB_CASE_TITLE, $encoding);
}
}
if (!function_exists('minute_to_hour')) {
// @codingStandardsIgnoreLine
function minute_to_hour($totalMinutes)
{
return \Carbon\CarbonInterval::formatHuman($totalMinutes); /** @phpstan-ignore-line */
}
}
if (!function_exists('can_upload')) {
// @codingStandardsIgnoreLine
function can_upload($size = 0)
{
if (!session()->has('client_company')) {
session()->forget(['company_setting', 'company']);
}
// Return true for unlimited file storage
if (company()->package->max_storage_size == -1) {
return true;
}
// Total Space in package in MB
$totalSpace = (company()->package->storage_unit == 'mb') ? company()->package->max_storage_size : company()->package->max_storage_size * 1024;
// Used space in mb
$fileStorage = \App\Models\FileStorage::all();
$usedSpace = $fileStorage->count() > 0 ? round($fileStorage->sum('size') / (1000 * 1024), 4) : 0;
$remainingSpace = $totalSpace - $usedSpace;
if ($usedSpace > $totalSpace || $size > $remainingSpace) {
return false;
}
return true;
}
}
if (!function_exists('isWorksuiteSaas')) {
function isWorksuiteSaas()
{
return strtolower(config('app.app_name')) === 'worksuite-saas';
}
}
if (!function_exists('isWorksuite')) {
function isWorksuite()
{
return strtolower(config('app.app_name')) === 'worksuite';
}
}
if (!function_exists('showId')) {
function showId()
{
return isWorksuite();
}
}
if (!function_exists('getDomainSpecificUrl')) {
function getDomainSpecificUrl($url, $company = null)
{
// Check if Subdomain module exist
if (!module_enabled('Subdomain')) {
return $url;
}
// If company specific
if ($company) {
$url = str_replace(request()->getHost(), $company->sub_domain, $url);
$url = str_replace('www.', '', $url);
// Replace https to http for sub-domain to
if (!\config('app.redirect_https')) {
return str_replace('https', 'http', $url);
}
return $url;
}
// If there is no company and url has login means
// New superadmin is created
return str_replace('login', 'super-admin-login', $url);
}
}
if (!function_exists('getSubdomainSchema')) {
function getSubdomainSchema()
{
if (!session()->has('subdomain_schema')) {
if (\Illuminate\Support\Facades\Schema::hasTable('sub_domain_module_settings')) {
$data = \Illuminate\Support\Facades\DB::table('sub_domain_module_settings')->first();
}
session(['subdomain_schema' => isset($data->schema) ? $data->schema : 'http']);
}
return session('subdomain_schema');
}
}
if (!function_exists('getDomain')) {
function getDomain($host = false)
{
if (!$host) {
$host = $_SERVER['SERVER_NAME'];
}
$shortDomain = config('app.short_domain_name');
$dotCount = ($shortDomain === true) ? 2 : 3;
$myHost = strtolower(trim($host));
$count = substr_count($myHost, '.');
if ($count === 2) {
if (strlen(explode('.', $myHost)[1]) >= $dotCount) {
$myHost = explode('.', $myHost, 2)[1];
}
}
else if ($count > 2) {
$myHost = getDomain(explode('.', $myHost, 2)[1]);
}
return $myHost;
}
}
if (!function_exists('company')) {
function company()
{
if (session()->has('company')) {
return session('company');
}
if (user()) {
if (user()->company) {
$company = \App\Models\Company::find(user()->company_id);
session(['company' => $company]);
return $company;
}
return session('company');
}
return false;
}
}
if (!function_exists('companyOrGlobalSetting')) {
function companyOrGlobalSetting()
{
if (session()->has('companyOrGlobalSetting')) {
return session('companyOrGlobalSetting');
}
if (user()) {
if (user()->company) {
$company = user()->company;
session(['companyOrGlobalSetting' => $company]);
return $company;
}
return global_setting();
}
return global_setting();
}
}
if (!function_exists('superadmin_theme')) {
// @codingStandardsIgnoreLine
function superadmin_theme()
{
if (!session()->has('superadmin_theme')) {
session(['superadmin_theme' => ThemeSetting::withoutGlobalScope(CompanyScope::class)->where('panel', 'superadmin')->first()]);
}
return session('superadmin_theme');
}
}
if (!function_exists('trim_editor')) {
// @codingStandardsIgnoreLine
function trim_editor($text)
{
return trim(str_replace('<p><br></p>', '', trim($text)));
}
}
if (!function_exists('quickbooks_setting')) {
// @codingStandardsIgnoreLine
function quickbooks_setting()
{
if (!session()->has('quickbooks_setting')) {
$qbSetting = QuickBooksSetting::first();
session(['quickbooks_setting' => $qbSetting]);
return $qbSetting;
}
return session('quickbooks_setting');
}
// @codingStandardsIgnoreLine
}
if (!function_exists('user_role_ids')) {
/**
* Return current logged in user
*/
// @codingStandardsIgnoreLine
function user_role_ids()
{
if (session()->has('user_role_ids')) {
return session('user_role_ids');
}
return null;
}
}