['class' => 'badge-danger', 'text' => 'Rejected'], 1 => ['class' => 'badge-success', 'text' => 'Accepted'], 2 => ['class' => 'badge-danger', 'text' => 'Pending'], 'pending' => ['class' => 'badge-warning'], 'processing' => ['class' => 'badge-warning'], 'delivered' => ['class' => 'badge-success'], 'rejected' => ['class' => 'badge-danger'], ][$status]; } } if (!function_exists('amount_format')) { /** * format amount * @param string $amount * @param string $icon_type * @return string */ function amount_format($amount=0, $icon_type = 'name') { $currency = get_option('base_currency',true); if ($icon_type == 'name') { $currency = $currency->position == 'right' ? $currency->name.' '.number_format($amount,2) : number_format($amount,2).' '.$currency->name; } elseif ($icon_type == 'both') { $currency = $currency->icon.number_format($amount,2).' '.$currency->name; } else{ $currency = $currency->position == 'right' ? number_format($amount,2).$currency->icon : $currency->icon.number_format($amount,2); } return $currency; } } if (!function_exists('planData')) { /** * plan data * @param string $title * @param string or bool value * @return array */ function planData($title, $value) { if ($title == 'chatbot') { $data['is_bool'] = true; $data['title'] = $title; $data['value'] = filter_var($value,FILTER_VALIDATE_BOOLEAN); return $data; } elseif ($title == 'bulk_message') { $data['is_bool'] = true; $data['title'] = $title; $data['value'] = filter_var($value,FILTER_VALIDATE_BOOLEAN); return $data; } elseif ($title == 'schedule_message') { $data['is_bool'] = true; $data['title'] = $title; $data['value'] = filter_var($value,FILTER_VALIDATE_BOOLEAN); return $data; } elseif ($title == 'template_message') { $data['is_bool'] = true; $data['title'] = $title; $data['value'] = filter_var($value,FILTER_VALIDATE_BOOLEAN); return $data; } elseif ($title == 'access_chat_list') { $data['is_bool'] = true; $data['title'] = $title; $data['value'] = filter_var($value,FILTER_VALIDATE_BOOLEAN); return $data; } elseif ($title == 'access_group_list') { $data['is_bool'] = true; $data['title'] = $title; $data['value'] = filter_var($value,FILTER_VALIDATE_BOOLEAN); return $data; } else{ if ($value == -1) { $value = 'unlimited'; } $data['value'] = null; $data['is_bool'] = false; $data['title'] = $title. ' ('.$value.')'; return $data; } } } if (!function_exists('getUserPlanData')) { /** * get user plan data * @param string $key * @param int $user_id nullable * @return boolean */ function getUserPlanData($key,$user_id = null) { $user = $user_id != null ? User::where('id',$user_id)->where('status',1)->first() : Auth::user(); if ($user->will_expire < now()) { return false; } $plan = json_decode($user->plan); $filterKey = $plan->$key ?? false; $filterKey = filterPlatData($key,$filterKey); if ($filterKey['is_bool'] == false) { if ($filterKey['value'] == 'unlimited') { return true; } else{ if ($key == 'device_limit') { $rows = Device::where('user_id',$user->id)->count(); } elseif ($key == 'apps_limit') { $rows = App::where('user_id',$user->id)->count(); } elseif ($key == 'template_limit') { $rows = Template::where('user_id',$user->id)->count(); } elseif ($key == 'messages_limit') { $rows = Smstransaction::where('user_id',$user->id) ->whereYear('created_at', Carbon::now()->year) ->whereMonth('created_at', Carbon::now()->month) ->count(); } elseif ($key == 'contact_limit') { $rows = Contact::where('user_id',$user->id)->count(); } if ($rows >= (int)$filterKey['value']) { return false; } else{ return true; } } } return $filterKey['value']; } } if (!function_exists('filterPlatData')) { /** * get filtered plan data * @param string $title * @param string $value * @return array */ function filterPlatData($title, $value) { if ($title == 'chatbot') { $data['is_bool'] = true; $data['value'] = filter_var($value,FILTER_VALIDATE_BOOLEAN); return $data; } elseif ($title == 'bulk_message') { $data['is_bool'] = true; $data['value'] = filter_var($value,FILTER_VALIDATE_BOOLEAN); return $data; } elseif ($title == 'schedule_message') { $data['is_bool'] = true; $data['value'] = filter_var($value,FILTER_VALIDATE_BOOLEAN); return $data; } elseif ($title == 'template_message') { $data['is_bool'] = true; $data['value'] = filter_var($value,FILTER_VALIDATE_BOOLEAN); return $data; } elseif ($title == 'access_chat_list') { $data['is_bool'] = true; $data['value'] = filter_var($value,FILTER_VALIDATE_BOOLEAN); return $data; } elseif ($title == 'access_group_list') { $data['is_bool'] = true; $data['value'] = filter_var($value,FILTER_VALIDATE_BOOLEAN); return $data; } else{ if ($value == -1) { $data['value'] = 'unlimited'; } else{ $data['value'] = (int)$value; } $data['is_bool'] = false; return $data; } } } if (!function_exists('get_option')) { /** * Get Settings From Database * @param $key * @param bool $decode * @param $locale * @return mixed */ function get_option($key, bool $decode = false, $locale = false, $associative = false): mixed { if ($locale == true) { $cacheKey = $key.$locale; } else{ $cacheKey = $key; } $cacheKey = $option = cache_remember($cacheKey, function () use ($key, $locale) { $row= Option::query(); if ($locale != false) { $row= $row->where('lang',current_locale()); } return $row = $row->where('key',$key)->first(); }); return $decode ? json_decode($option->value ?? '') : $option->value ?? null; } } if (!function_exists('cache_remember')) { /** * This function will remember the cache * @param string $key * @param callable $callback * @param integer $ttl * @return mixed */ function cache_remember(string $key, callable $callback, int $ttl = 1800): mixed { return cache()->remember($key, env('CACHE_LIFETIME', $ttl), $callback); } } if (!function_exists('current_locale')) { /** * Get Current Locale * Return current locale|lang * @return string|null */ function current_locale() { return app()->getLocale(); } } if (!function_exists('PrintMenu')) { /** * Get Dynamic Menu From Database * @param $position * @param string $path * @return Factory|\Illuminate\Contracts\View\View|Application */ function PrintMenu($position, string $path = 'frontend.menu') { $locale = current_locale(); $data = cache_remember($position . $locale, function () use ($position, $locale) { $menus = Menu::where('position', $position)->where('lang', $locale)->first(); $data['data'] = json_decode($menus->data ?? ''); $data['name'] = $menus->name ?? ''; return $data; }); return view($path . '.main-menu', compact('data')); } } if (!function_exists('filterXss')) { /** * filter script code * @param $string */ function filterXss($string=''){ $string = str_replace('', "", $string); $string = str_replace('