/home/techb158/ileadtechnology.com/SSM/app/Helper
NameSizeModeActions
Cal.php47990644editdlrm
dumper.php138320644editdlrm
helper.php455080644editdlrm
MathExpression.php61490644editdlrm
Edit: /home/techb158/ileadtechnology.com/SSM/app/Helper/helper.php (45508B)
$value) { if (env($key) === $value) { unset($data[$key]); } } if (!count($data)) { return false; } // write only if there is change in content $env = file_get_contents(base_path() . '/.env'); $env = explode("\n", $env); foreach ((array)$data as $key => $value) { foreach ($env as $env_key => $env_value) { $entry = explode("=", $env_value, 2); if ($entry[0] === $key) { $env[$env_key] = $key . "=" . (is_string($value) ? '"'.$value.'"' : $value); } else { $env[$env_key] = $env_value; } } } $env = implode("\n", $env); file_put_contents(base_path() . '/.env', $env); return true; } function my_version_compare($ver1, $ver2, $operator = null) { $p = '#(\.0+)+($|-)#'; $ver1 = preg_replace($p, '', $ver1); $ver2 = preg_replace($p, '', $ver2); return isset($operator) ? version_compare($ver1, $ver2, $operator) : version_compare($ver1, $ver2); } function getHostNameForCachePrefix() { return isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : 'localhost'; } //////////////////////////////////////////////////////////////////////// Date helper function starts function validateEmail($email) { if (filter_var($email, FILTER_VALIDATE_EMAIL)) { return true; } return false; } /* * Used to check whether date is valid or not * @param * $date as timestamp or date variable * @return true if valid date, else if not */ function validateDate($date) { $d = DateTime::createFromFormat('Y-m-d', $date); return $d && $d->format('Y-m-d') === $date; } /* * Used to calculate date difference between two dates */ function dateDiff($date1, $date2) { if ($date2 > $date1) { return date_diff(date_create($date1), date_create($date2))->days; } else { return date_diff(date_create($date2), date_create($date1))->days; } } /* * Used to get date with start midnight time * @param * $date as timestamp or date variable * @return date with start midnight time */ function getDateTime($date) { return date('Y-m-d', strtotime($date)).' 00:00:00'; } /* * Used to get date with start midnight time * @param * $date as timestamp or date variable * @return date with start midnight time */ function getStartOfDate($date) { return date('Y-m-d', strtotime($date)).' 00:00'; } /* * Used to get date with end midnight time * @param * $date as timestamp or date variable * @return date with end midnight time */ function getEndOfDate($date) { return date('Y-m-d', strtotime($date)).' 23:59'; } /* * Used to get date in desired format * @return date format */ function getDateFormat() { if (config('config.date_format') === 'DD-MM-YYYY') { return 'd-m-Y'; } elseif (config('config.date_format') === 'MM-DD-YYYY') { return 'm-d-Y'; } elseif (config('config.date_format') === 'DD-MMM-YYYY') { return 'd-M-Y'; } elseif (config('config.date_format') === 'MMM-DD-YYYY') { return 'M-d-Y'; } elseif (config('config.date_format') === 'YYYY-MM-DD') { return 'Y-m-d'; } else { return 'd-m-Y'; } } /* * Used to convert date for database * @param * $date as date * @return date */ function toDate($date) { if (!$date) { return; } return date('Y-m-d', strtotime($date)); } /* * Used to convert time for database * @param * $time as time * @return time */ function toTime($time) { if (!$time) { return; } return date('H:i', strtotime($time)); } /* * Used to convert date in desired format * @param * $date as date * @return date */ function showDate($date) { if (!$date) { return; } $date_format = getDateFormat(); return date($date_format, strtotime($date)); } /* * Used to convert time in desired format * @param * $datetime as datetime * @return datetime */ function showDateTime($time = '') { if (!$time) { return; } $date_format = getDateFormat(); if (config('config.time_format') === 'H:mm') { return date($date_format.',H:i', strtotime($time)); } else { return date($date_format.',h:i a', strtotime($time)); } } /* * Used to convert time in desired format * @param * $time as time * @return time */ function showTime($time = '') { if (!$time) { return; } if (config('config.time_format') === 'H:mm') { return date('H:i', strtotime($time)); } else { return date('h:i a', strtotime($time)); } } //////////////////////////////////////////////////////////////////////// Date helper function ends //////////////////////////////////////////////////////////////////////// String helper function starts /* * Used to convert slugs into human readable words * @param * $word as string * @return string */ function toWord($word) { $word = str_replace('_', ' ', $word); $word = str_replace('-', ' ', $word); $word = ucwords($word); return $word; } /* * Used to generate random string of certain lenght * @param * $length as numeric * $type as optional param, can be token or password or username. Default is token * @return random string */ function randomString($length, $type = 'token') { if ($type === 'password') { $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_-=+;:,.?"; } elseif ($type === 'username') { $chars = "abcdefghijklmnopqrstuvwxyz0123456789"; } else { $chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; } $token = substr(str_shuffle($chars), 0, $length); return $token; } /** * Generate OTP * @param integer $n * @return integer */ function generateOTP($n = 6) { $generator = "1357902468"; $result = ""; for ($i = 1; $i <= $n; $i++) { $result .= substr($generator, (rand()%(strlen($generator))), 1); } return $result; } /* * Used to whether string contains unicode * @param * $string as string * @return boolean */ function checkUnicode($string) { if (strlen($string) != strlen(utf8_decode($string))) { return true; } else { return false; } } /* * Used to generate slug from string * @param * $string as string * @return slug */ function createSlug($string) { if (! $string) { return; } if (checkUnicode($string)) { $slug = str_replace(' ', '-', $string); } else { $slug = preg_replace('/[^A-Za-z0-9-]+/', '-', strtolower($string)); } return $slug; } /* * Used to remove script tag from input * @param * $string as string * @return slug */ function scriptStripper($string) { return preg_replace('#(.*?)#is', '', $string); } function isInteger($input) { return(ctype_digit(strval($input))); } function digitCount($number) { return strlen((string)$number); } //////////////////////////////////////////////////////////////////////////////////// String helper function ends //////////////////////////////////////////////////////////////////////////////////// Select helper function starts /* * Used to generate select option for vue.js multiselect plugin * @param * $data as array of key & value pair * @return select options */ function generateSelectOption($data) { $options = array(); foreach ($data as $key => $value) { $options[] = ['name' => $value, 'id' => $key]; } return $options; } /* * Used to generate translated select option for vue.js multiselect plugin * @param * $data as array of key & value pair * @return select options */ function generateTranslatedSelectOption($data) { $options = array(); foreach ($data as $key => $value) { $options[] = ['name' => trans('list.'.$value), 'id' => $value]; } return $options; } /* * Used to generate select option for default select box * @param * $data as array of key & value pair * @return select options */ function generateNormalSelectOption($data) { $options = array(); foreach ($data as $key => $value) { $options[] = ['text' => $value, 'value' => $key]; } return $options; } /* * Used to generate select option for default select box (translated) * @param * $data as array of key & value pair * @return select options */ function generateNormalTranslatedSelectOption($data) { $options = array(); foreach ($data as $key => $value) { $options[] = ['text' => trans('list.'.$value), 'value' => $value]; } return $options; } /* * Used to generate select option for default select box where value is same as text * @param * $data as array of key & value pair * @return select options */ function generateNormalSelectOptionValueOnly($data) { $options = array(); foreach ($data as $value) { $options[] = ['text' => $value, 'value' => $value]; } return $options; } //////////////////////////////////////////////////////////////////////////////////// Select helper function ends /* * Used to round number * @param * $number as numeric value * $decimal_place as integer for round precision * @return number */ function formatNumber($number, $decimal_place = 2) { return round($number, $decimal_place); } function formatSizeUnits($bytes) { if ($bytes >= 1073741824) { $bytes = number_format($bytes / 1073741824, 2) . ' GB'; } elseif ($bytes >= 1048576) { $bytes = number_format($bytes / 1048576, 2) . ' MB'; } elseif ($bytes >= 1024) { $bytes = number_format($bytes / 1024, 2) . ' KB'; } elseif ($bytes > 1) { $bytes = $bytes . ' bytes'; } elseif ($bytes == 1) { $bytes = $bytes . ' byte'; } else { $bytes = '0 bytes'; } return $bytes; } ////////////////////////////////////////////////////////////////////////////////////// IP helper function starts /* * Used to check whether IP is in range */ function ipRange($network, $ip) { $network=trim($network); $orig_network = $network; $ip = trim($ip); if ($ip === $network) { return true; } $network = str_replace(' ', '', $network); if (strpos($network, '*') != false) { if (strpos($network, '/') != false) { $asParts = explode('/', $network); $network = @ $asParts[0]; } $nCount = substr_count($network, '*'); $network = str_replace('*', '0', $network); if ($nCount === 1) { $network .= '/24'; } elseif ($nCount === 2) { $network .= '/16'; } elseif ($nCount === 3) { $network .= '/8'; } elseif ($nCount > 3) { return true; } } $d = strpos($network, '-'); if ($d === false) { $ip_arr = explode('/', $network); if (!preg_match("@\d*\.\d*\.\d*\.\d*@", $ip_arr[0], $matches)) { $ip_arr[0].=".0"; } $network_long = ip2long($ip_arr[0]); $x = ip2long($ip_arr[1]); $mask = long2ip($x) === $ip_arr[1] ? $x : (0xffffffff << (32 - $ip_arr[1])); $ip_long = ip2long($ip); return ($ip_long & $mask) === ($network_long & $mask); } else { $from = trim(ip2long(substr($network, 0, $d))); $to = trim(ip2long(substr($network, $d+1))); $ip = ip2long($ip); return ($ip>=$from and $ip<=$to); } } /* * Used to check whether IP is valid or not * @return boolean */ function validateIp($wl_ips) { // $ip = getClientIp(); $ip = '192.168.1.1'; $allowedIps = array(); foreach ($wl_ips as $wl_ip) { if ($wl_ip->end_ip) { $allowedIps[] = $wl_ip->start_ip.'-'.$wl_ip->end_ip; } else { $allowedIps[] = $wl_ip->start_ip; } } foreach ($allowedIps as $allowedIp) { if (strpos($allowedIp, '*')) { $range = [ str_replace('*', '0', $allowedIp), str_replace('*', '255', $allowedIp) ]; if (ipExistsInRange($range, $ip)) { return true; } } elseif (strpos($allowedIp, '-')) { $range = explode('-', str_replace(' ', '', $allowedIp)); if (ipExistsInRange($range, $ip)) { return true; } } else { if (ip2long($allowedIp) === ip2long($ip)) { return true; } } } return false; } function ipExistsInRange(array $range, $ip) { if (ip2long($ip) >= ip2long($range[0]) && ip2long($ip) <= ip2long($range[1])) { return true; } return false; } /* * Used to get IP address of visitor * @return date */ function getRemoteIPAddress() { if (!empty($_SERVER['HTTP_CLIENT_IP'])) { return $_SERVER['HTTP_CLIENT_IP']; } elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { return $_SERVER['HTTP_X_FORWARDED_FOR']; } return array_key_exists('REMOTE_ADDR', $_SERVER) ? $_SERVER['REMOTE_ADDR'] : null; } /* * Used to get IP address of visitor * @return IP address */ function getClientIp() { $ips = getRemoteIPAddress(); $ips = explode(',', $ips); return !empty($ips[0]) ? $ips[0] : \Request::getClientIp(); } ////////////////////////////////////////////////////////////////////////////////////////// IP helper function ends /* * Used to check mode * @return boolean */ function isTestMode() { if (config('app.mode') == 'test') { return true; } else { return false; } } /* * get Maximum post size of server */ function getPostMaxSize() { if (is_numeric($postMaxSize = ini_get('post_max_size'))) { return (int) $postMaxSize; } $metric = strtoupper(substr($postMaxSize, -1)); $postMaxSize = (int) $postMaxSize; switch ($metric) { case 'K': return $postMaxSize * 1024; case 'M': return $postMaxSize * 1048576; case 'G': return $postMaxSize * 1073741824; default: return $postMaxSize; } } /* * Used to get value-list json * @return array */ function getVar($list) { $file = resource_path('var/'.$list.'.json'); return (\File::exists($file)) ? json_decode(file_get_contents($file), true) : []; } /* * Used to get seed value-list json * @return array */ function getSeedVar($list) { $file = resource_path('var/seed/'.$list.'.json'); return (\File::exists($file)) ? json_decode(file_get_contents($file), true) : []; } function isConnected() { $connected = @fsockopen("www.google.com", 80); if ($connected) { fclose($connected); return true; } return false; } /* * Used to URL via CURL * @return array */ function curlIt($url, $postData = array()) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); $response = curl_exec($ch); curl_close($ch); return json_decode($response, true); } /* * Used to get Default Currency * @return array */ function getDefaultCurrency($prop = null) { $default_currency_key = array_search(config('config.currency'), array_column(getVar('currency'), 'name')); $currency = ($default_currency_key !== false) ? getVar('currency')[$default_currency_key] : null; if (! $prop) { return $currency; } return ($currency && isset($currency[$prop])) ? $currency[$prop] : null; } /* * Used to format amount in given currency * @param * $amount as numeric * $symbol as boolean, 1 for with currency symbol or 0 for without currency symbol * @return string */ function currency($amount, $symbol = 0) { $currency = getDefaultCurrency(); if (! is_numeric($amount)) { return; } if (! $currency) { return round($amount, 2); } $decimal_value = $currency['decimal_place']; if (! $symbol) { return round($amount, $decimal_value); } $position = $currency['position']; $currency_symbol = $currency['symbol']; $amount = round($amount, $decimal_value); // money format $decimal = (floor($amount) != $amount) ? gv($currency, 'decimal_place') : 0; if (gv($currency, 'format') == 'indian') { $integer_part = moneyFormatIndia(floor($amount)); $decimal_part = ($decimal) ? ('.'.explode('.', $amount)[1]) : ''; $amount = $integer_part.$decimal_part; } else { $amount = number_format($amount, $decimal, '.', ','); } if ($position === 'suffix') { return $amount.''.$currency_symbol; } else { return $currency_symbol.''.$amount; } } function gv($params, $key, $default = null) { return (isset($params[$key]) && $params[$key]) ? $params[$key] : $default; } function gkv($data, $key) { return array_map(function ($item) use ($key) { return data_get($item, $key); }, $data); } function gbv($params, $key) { return (isset($params[$key]) && $params[$key]) ? 1 : 0; } function gnv($params, $key, $default = null) { return isset($params[$key]) ? $params[$key] : $default; } function mergeByKey($array1, $array2) { $array1 = ! is_array($array1) ? [] : $array1; $array2 = ! is_array($array2) ? [] : $array2; $data = array(); $arrayAB = array_merge($array1, $array2); foreach ($arrayAB as $value) { $id = $value['id']; if (!isset($data[$id])) { $data[$id] = array(); } $data[$id] = array_merge($data[$id], $value); } return array_values($data); } function dateBetweenSession($date) { if (! $date) { return false; } if (toDate($date) >= config('config.default_academic_session.start_date') && toDate($date) <= config('config.default_academic_session.end_date')) { return true; } return false; } function dateLessThanSessionStart($date) { if (! $date) { return false; } if (toDate($date) <= config('config.default_academic_session.start_date')) { return true; } return false; } function dateLessThanSessionEnd($date) { if (! $date) { return false; } if (toDate($date) <= config('config.default_academic_session.end_date')) { return true; } return false; } function dateGreaterThanSessionStart($date) { if (! $date) { return false; } if (toDate($date) >= config('config.default_academic_session.start_date')) { return true; } return false; } function dateGreaterThanSessionEnd($date) { if (! $date) { return false; } if (toDate($date) >= config('config.default_academic_session.end_date')) { return true; } return false; } function getDayInInteger($day) { if ($day == 'monday') { return 1; } elseif ($day == 'tuesday') { return 2; } elseif ($day == 'wednesday') { return 3; } elseif ($day == 'thursday') { return 4; } elseif ($day == 'friday') { return 5; } elseif ($day == 'saturday') { return 6; } else { return 0; } } function getDaysInOrder() { $list = getVar('list'); $days = $list['day']; for ($i=0; $i < getDayInInteger(config('config.first_day_of_week')); $i++) { array_push($days, array_shift($days)); } return generateTranslatedSelectOption($days); } function getLateFeeFrequencies() { return [ ['value' => '1', 'text' => trans('finance.late_fee_frequency_daily')], ['value' => '7', 'text' => trans('finance.late_fee_frequency_weekly')], ['value' => '15', 'text' => trans('finance.late_fee_frequency_fortnightly')], ['value' => '30', 'text' => trans('finance.late_fee_frequency_monthly')], ['value' => '60', 'text' => trans('finance.late_fee_frequency_bi_monthly')], ['value' => '90', 'text' => trans('finance.late_fee_frequency_quarterly')], ['value' => '180', 'text' => trans('finance.late_fee_frequency_bi_annually')], ['value' => '365', 'text' => trans('finance.late_fee_frequency_annually')] ]; } function getLateFeeFrequenciesInWord($frequency) { if ($frequency == 1) { return 'daily'; } elseif ($frequency == 7) { return 'weekly'; } elseif ($frequency == 15) { return 'fortnightly'; } elseif ($frequency == 30) { return 'monthly'; } elseif ($frequency == 60) { return 'bi_monthly'; } elseif ($frequency == 90) { return 'quarterly'; } elseif ($frequency == 180) { return 'bi_annually'; } elseif ($frequency == 365) { return 'annually'; } else { return 'daily'; } } function getLateFeeFrequenciesInDays($frequency) { if ($frequency == 'daily') { return 1; } elseif ($frequency == 'weekly') { return 7; } elseif ($frequency == 'fortnightly') { return 15; } elseif ($frequency == 'monthly') { return 30; } elseif ($frequency == 'bi_monthly') { return 60; } elseif ($frequency == 'quarterly') { return 90; } elseif ($frequency == 'bi_annually') { return 180; } elseif ($frequency == 'annually') { return 365; } else { return 1; } } function getAuthUserBatchId() { if (\Auth::user()->hasRole(config('system.default_role.student'))) { return getAuthStudentBatch(); } else if (\Auth::user()->hasRole(config('system.default_role.parent'))) { return getAuthParentStudentsBatch(); } else { return []; } } function getAuthUserStudentRecordId() { if (\Auth::user()->hasRole(config('system.default_role.student'))) { return getAuthStudentRecordIds(); } else if (\Auth::user()->hasRole(config('system.default_role.parent'))) { return getAuthParentStudentRecordIds(); } else { return []; } } function getAuthStudentBatch() { $student = \App\Models\Student\Student::with('studentRecords')->filterById(\Auth::user()->Student->id)->first(); if (! $student) { return []; } return $student->studentRecords->where('academic_session_id', config('config.default_academic_session.id'))->pluck('batch_id')->all(); } function getAuthStudentRecordIds() { $student = \App\Models\Student\Student::with('studentRecords')->filterById(\Auth::user()->Student->id)->first(); if (! $student) { return []; } return $student->studentRecords->where('academic_session_id', config('config.default_academic_session.id'))->pluck('id')->all(); } function getAuthParentStudentsBatch() { if (! \Auth::user()->hasRole(config('system.default_role.parent'))) { return []; } $student_ids = \Auth::user()->Parent->Students->pluck('id')->all(); $students = \App\Models\Student\Student::with('studentRecords')->whereIn('id', $student_ids)->get(); if (! $students) { return []; } $batch_id = array(); foreach ($students as $student) { $student_records = $student->studentRecords->where('academic_session_id', config('config.default_academic_session.id'))->where('date_of_exit', null)->all(); foreach ($student_records as $student_record) { $batch_id[] = $student_record->batch_id; } } return $batch_id; } function getAuthParentStudentRecordIds() { if (! \Auth::user()->hasRole(config('system.default_role.parent'))) { return []; } $student_ids = \Auth::user()->Parent->Students->pluck('id')->all(); $students = \App\Models\Student\Student::with('studentRecords')->whereIn('id', $student_ids)->get(); if (! $students) { return []; } $ids = array(); foreach ($students as $student) { $student_records = $student->studentRecords->where('academic_session_id', config('config.default_academic_session.id'))->where('date_of_exit', null)->all(); foreach ($student_records as $student_record) { $ids[] = $student_record->id; } } return $ids; } function getRollNumber($student_record) { if ($student_record && ! $student_record->roll_number) { return; } if ($student_record->batch->getOption('roll_number_digit')) { $roll_number = str_pad($student_record->roll_number, $student_record->batch->getOption('roll_number_digit'), '0', STR_PAD_LEFT); } else { $roll_number = $student_record->roll_number; } return $student_record->batch->getOption('roll_number_prefix').$roll_number; } function getStudentRecordForSession($student_records, $session_id, $data = null) { $student_record = $student_records->where('academic_session_id', $session_id)->sortByDesc('date_of_entry')->first(); if (! $student_record) { return null; } if ($data == 'batch') { return $student_record->Batch->name; } else if ($data == 'course') { return $student_record->Batch->Course->name; } else if ($data == 'batch_with_course') { return $student_record->Batch->Course->name.' '.$student_record->Batch->name; } else if ($data == 'date_of_entry') { return showDate($student_record->date_of_entry); } else if ($data == 'date_of_admission') { return showDate($student_record->Admission->date_of_admission); } else if ($data == 'admission_number') { return $student_record->Admission->admission_number; } else { return $student_record; } } function getStudentBatchOnDate($student, $date = null) { $date = ($date) ? : date('Y-m-d'); if (! $student->studentRecords()->count()) { return null; } $student_record = $student->StudentRecords->where('date_of_entry', '<=', $date)->where('is_promoted', 0)->first(); return ($student_record) ? $student_record->Batch->batch_with_course : null; } function getEmployeeDesignation($employee, $date = null) { $date = ($date) ? : date('Y-m-d'); if (! $employee) { return null; } if (! $employee->relationLoaded('employeeDesignations')) { $employee->load('employeeDesignations'); } return $employee->employeeDesignations->sortByDesc('date_effective')->firstWhere('date_effective', '<=', getDateTime($date)); } function getEmployeeDesignationId($employee, $date = null) { $designation = getEmployeeDesignation($employee, $date); return $designation ? $designation->designation_id : null; } function getEmployeeDesignationName($employee, $date = null) { $designation = getEmployeeDesignation($employee, $date); return $designation ? $designation->Designation->name.' ('.$designation->Designation->EmployeeCategory->name.')' : null; } function getEmployeeTerm($employee, $date = null) { $date = ($date) ? : date('Y-m-d'); return $employee->EmployeeTerms->sortByDesc('date_of_joining')->filter(function ($term) use ($date) { return ($term->date_of_joining <= $date && (!$term->date_of_leaving || $term->date_of_leaving >= $date)); })->first(); } function isActiveEmployee($employee, $date = null) { return getEmployeeTerm($employee, $date) ? true : false; } function amIClassTeacherOnDate($class_teachers, $date = null) { $date = ($date) ? : date('Y-m-d'); $employee_id = optional(\Auth::user()->Employee)->id; $class_teacher = $class_teachers->where('date_effective', '<=', $date)->where('employee_id', $employee_id)->first(); if (! $class_teacher) { return false; } $next_class_teacher = $class_teachers->where('employee_id', '!=', $employee_id)->where('date_effective', '>', $class_teacher->date_effective)->where('date_effective', '<=', $date)->first(); if (! $next_class_teacher) { return true; } return false; } function amISubjectTeacherOnDate($subject_teachers, $date = null) { $date = ($date) ? : date('Y-m-d'); $employee_id = optional(\Auth::user()->Employee)->id; $subject_teacher = $subject_teachers->where('date_effective', '<=', $date)->where('employee_id', $employee_id)->first(); if (! $subject_teacher) { return false; } $next_subject_teacher = $subject_teachers->where('employee_id', '!=', $employee_id)->where('date_effective', '>', $subject_teacher->date_effective)->where('date_effective', '<=', $date)->first(); if (! $next_subject_teacher) { return true; } return false; } /* * Used to get children from tree structure * @return array */ function getChilds($array, $currentParent = 1, $level = 1, $child = array(), $currLevel = 0, $prevLevel = -1) { foreach ($array as $categoryId => $category) { if ($currentParent === $category['parent_id']) { if ($currLevel > $prevLevel) { } if ($currLevel === $prevLevel) { } $child[] = $categoryId; if ($currLevel > $prevLevel) { $prevLevel = $currLevel; } $currLevel++; if ($level) { $child = getChilds($array, $categoryId, $level, $child, $currLevel, $prevLevel); } $currLevel--; } } if ($currLevel === $prevLevel) { } return $child; } /* * Used to get logo * @return string */ function getLogo() { if (config('config.logo') && \File::exists(config('config.logo'))) { return ''; } else { return ''; } } function numberPadding($number, $length) { return str_pad($number, $length, '0', STR_PAD_LEFT); } function getCurrentVehicleInchargeEmployeeId($vehicle_incharges = array()) { $date = date('Y-m-d'); $vehicle_incharge = $vehicle_incharges->sortByDesc('date_effective')->filter(function ($vehicle_incharge) use ($date) { return ($vehicle_incharge->date_effective <= $date); })->first(); if ($vehicle_incharge) { return $vehicle_incharge->employee_id; } return null; } function getCurrentVehicleIncharge($batch, $vehicle_incharges = array()) { $date = date('Y-m-d'); $vehicle_incharge = $vehicle_incharges->sortByDesc('date_effective')->filter(function ($vehicle_incharge) use ($date) { return ($vehicle_incharge->date_effective <= $date); })->first(); if ($vehicle_incharge) { return $vehicle_incharge->Employee->name_with_code; } return '-'; } function getCurrentClassTeacherEmployeeId($class_teachers = array()) { $date = date('Y-m-d'); $class_teacher = $class_teachers->sortByDesc('date_effective')->filter(function ($class_teacher) use ($date) { return ($class_teacher->date_effective <= $date); })->first(); if ($class_teacher) { return $class_teacher->employee_id; } return null; } function getCurrentClassTeacher($batch, $class_teachers = array()) { $date = date('Y-m-d'); $class_teacher = $class_teachers->sortByDesc('date_effective')->filter(function ($class_teacher) use ($date) { return ($class_teacher->date_effective <= $date); })->first(); if ($class_teacher) { return $class_teacher->Employee->name_with_code; } return '-'; } function getCurrentSubjectTeacher($batch, $subject_teachers = array()) { $date = date('Y-m-d'); $subject_teacher = $subject_teachers->sortByDesc('date_effective')->filter(function ($subject_teacher) use ($date) { return ($subject_teacher->date_effective <= $date); })->first(); if ($subject_teacher) { return $subject_teacher->Employee->name_with_code; } return '-'; } function getTimetableStatus($timetable) { $total = 0; $allocated = 0; foreach ($timetable->TimetableAllocations as $timetable_allocation) { foreach ($timetable_allocation->TimetableAllocationDetails as $timetable_allocation_detail) { if (! $timetable_allocation_detail->ClassTimingSession->is_a_break) { $total++; if ($timetable_allocation_detail->subject_id) { $allocated++; } } } } return $allocated.'/'.$total; } function getSubjectTeacher($subject, $date = null) { $date = $date ? $date : date('Y-m-d'); $subject_teacher = $subject->SubjectTeachers->sortByDesc('date_effective')->filter(function ($subject_teacher) use ($date) { return ($subject_teacher->date_effective <= $date); })->first(); if ($subject_teacher) { return $subject_teacher->Employee->name_with_code; } return '-'; } function getLeaveRequestCount($leave_request) { $holidays = $leave_request->getOption('holidays'); $excluded_holiday = gv($holidays, 'excluded', []); $included_holiday = gv($holidays, 'included', []); $day = dateDiff($leave_request->start_date, $leave_request->end_date) + 1; return $day - count($excluded_holiday); } function getSelectedEmployee($employee) { return ($employee) ? ['id' => $employee->id, 'name' => $employee->name.' ('.$employee->code.')'] : null; } function getPayrollNumber($number, $length = 3) { return str_pad($number, $length, '0', STR_PAD_LEFT); } function isColumnVisible($column, $filter) { if (! isset($filter['columns'])) { return true; } if (in_array($column, $filter['columns'])) { return true; } return false; } function createExcerpt($content, $length = 20, $more = '...') { $excerpt = strip_tags(trim($content)); $words = str_word_count($excerpt, 2); if (count($words) > $length) { $words = array_slice($words, 0, $length, true); end($words); // $position = key( $words ) + strlen( current( $words ) ); $position = key($words); $excerpt = substr($excerpt, 0, $position) . $more; } return $excerpt; } function stripInlineStyle($content) { return preg_replace('/(<[^>]+) style=".*?"/i', '$1', $content); } function getPaymentGatewayHandlingFee($gateway, $amount) { if (! config('config.'.$gateway.'_charge_handling_fee')) { return 0; } if (config('config.'.$gateway.'_fixed_handling_fee')) { return config('config.'.$gateway.'_handling_fee'); } else { return currency($amount * (config('config.'.$gateway.'_handling_fee') / 100)); } } function generateAdmitCardNumber($exam_schedule, $student) { return strtoupper($exam_schedule->id.$student->id.substr($student->first_name, 0, 2).substr($student->last_name, 0, 2)); } function beginTransaction() { \DB::beginTransaction(); } function rollBackTransaction() { \DB::rollBack(); } function commitTransaction() { \DB::commit(); } function calc($mathString) { $mathString = trim($mathString); $mathString = preg_replace('[^0-9\+-\*\/\(\) ]', '', $mathString); $compute = create_function("", "return (" . $mathString . ");"); return 0 + $compute(); } function searchByKey($data, $key, $value) { $index = array_search($value, array_column($data, $key)); return ($index === false) ? [] : $data[$index]; } function moreThanErrorMsg($data, $count = 2) { $data = array_unique($data); $error = implode(',', $data); if (count($data) > $count) { $error = implode(', ', array_slice($data, 0, $count)).' '.trans('general.and_count_other', ['count' => count($data) - 2]); } return $error; } function dateToWord($date) { $dates = [ 1 => 'First', 2 => 'Second', 3 => 'Third', 4 => 'Fourth', 5 => 'Fifth', 6 => 'Sixth', 7 => 'Seventh', 8 => 'Eight', 9 => 'Ninth', 10 => 'Tenth', 11 => 'Eleventh', 12 => 'Twelfth', 13 => 'Thirteen', 14 => 'Fourteen', 15 => 'Fifteen', 16 => 'Sixteen', 17 => 'Seventeen', 18 => 'Eighteen', 19 => 'Ninteen', 20 => 'Twenty', 21 => 'Twenty First', 22 => 'First', 21 => 'Twenty First', 22 => 'Twenty Second', 23 => 'Twenty Third', 24 => 'Twenty Fourth', 25 => 'Twenty Fifth', 26 => 'Twenty Sixth', 27 => 'Twenty Seventh', 28 => 'Twenty Eight', 29 => 'Twenty Ninth', 30 => 'Thirty', 31 => 'Thirty First' ]; $day = date('d', strtotime($date)); $month = date('F', strtotime($date)); $year = date('Y', strtotime($date)); return ucwords(gv($dates, $day).' '.$month.' '.numberToWord($year)); } function numberToWord($num = false) { $num = str_replace(array(',', ' '), '', trim($num)); if (! $num) { return false; } $num = (int) $num; $words = array(); $list1 = array('', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve', 'thirteen', 'fourteen', 'fifteen', 'sixteen', 'seventeen', 'eighteen', 'nineteen' ); $list2 = array('', 'ten', 'twenty', 'thirty', 'forty', 'fifty', 'sixty', 'seventy', 'eighty', 'ninety', 'hundred'); $list3 = array('', 'thousand', 'million', 'billion', 'trillion', 'quadrillion', 'quintillion', 'sextillion', 'septillion', 'octillion', 'nonillion', 'decillion', 'undecillion', 'duodecillion', 'tredecillion', 'quattuordecillion', 'quindecillion', 'sexdecillion', 'septendecillion', 'octodecillion', 'novemdecillion', 'vigintillion' ); $num_length = strlen($num); $levels = (int) (($num_length + 2) / 3); $max_length = $levels * 3; $num = substr('00' . $num, -$max_length); $num_levels = str_split($num, 3); for ($i = 0; $i < count($num_levels); $i++) { $levels--; $hundreds = (int) ($num_levels[$i] / 100); $hundreds = ($hundreds ? ' ' . $list1[$hundreds] . ' hundred' . ' ' : ''); $tens = (int) ($num_levels[$i] % 100); $singles = ''; if ($tens < 20) { $tens = ($tens ? ' ' . $list1[$tens] . ' ' : '' ); } else { $tens = (int)($tens / 10); $tens = ' ' . $list2[$tens] . ' '; $singles = (int) ($num_levels[$i] % 10); $singles = ' ' . $list1[$singles] . ' '; } $words[] = $hundreds . $tens . $singles . ( ( $levels && ( int ) ( $num_levels[$i] ) ) ? ' ' . $list3[$levels] . ' ' : '' ); } $commas = count($words); if ($commas > 1) { $commas = $commas - 1; } return ucwords(implode(' ', $words)); } function currencyInWord(float $number) { $currency = getDefaultCurrency(); $number_value = array_key_exists('number_value', $currency) ? $currency['number_value'] : 'Rupee'; $decimal_value = array_key_exists('decimal_value', $currency) ? $currency['decimal_value'] : 'Rupee'; $decimal = round($number - ($no = floor($number)), 2) * 100; $hundred = null; $digits_length = strlen($no); $i = 0; $str = array(); $words = array(0 => '', 1 => 'one', 2 => 'two', 3 => 'three', 4 => 'four', 5 => 'five', 6 => 'six', 7 => 'seven', 8 => 'eight', 9 => 'nine', 10 => 'ten', 11 => 'eleven', 12 => 'twelve', 13 => 'thirteen', 14 => 'fourteen', 15 => 'fifteen', 16 => 'sixteen', 17 => 'seventeen', 18 => 'eighteen', 19 => 'nineteen', 20 => 'twenty', 30 => 'thirty', 40 => 'forty', 50 => 'fifty', 60 => 'sixty', 70 => 'seventy', 80 => 'eighty', 90 => 'ninety'); $digits = array('', 'hundred','thousand','lakh', 'crore'); while ($i < $digits_length) { $divider = ($i == 2) ? 10 : 100; $number = floor($no % $divider); $no = floor($no / $divider); $i += $divider == 10 ? 1 : 2; if ($number) { $plural = (($counter = count($str)) && $number > 9) ? 's' : null; $hundred = ($counter == 1 && $str[0]) ? ' and ' : null; $str [] = ($number < 21) ? $words[$number].' '. $digits[$counter]. $plural.' '.$hundred:$words[floor($number / 10) * 10].' '.$words[$number % 10]. ' '.$digits[$counter].$plural.' '.$hundred; } else { $str[] = null; } } $Rupees = implode('', array_reverse($str)); $digits_length = strlen($decimal); $dec = $decimal; $i = 0; $str = array(); while ($i < $digits_length) { $divider = ($i == 2) ? 10 : 100; $number = floor($dec % $divider); $dec = floor($dec / $divider); $i += $divider == 10 ? 1 : 2; if ($number) { $plural = (($counter = count($str)) && $number > 9) ? 's' : null; $hundred = ($counter == 1 && $str[0]) ? ' and ' : null; $str [] = ($number < 21) ? $words[$number].' '. $digits[$counter]. $plural.' '.$hundred:$words[floor($number / 10) * 10].' '.$words[$number % 10]. ' '.$digits[$counter].$plural.' '.$hundred; } else { $str[] = null; } } $paise = ($decimal) ? implode('', array_reverse($str)) . $decimal_value : ''; // $paise = ($decimal) ? ($words[floor($decimal / 10)] . " " . $words[$decimal % 10]) . ' Paise' : ''; return ucwords(($Rupees ? $Rupees . $number_value." " : '') . $paise); } function moneyFormatIndia($num) { $explrestunits = "" ; if (strlen($num)>3) { $lastthree = substr($num, strlen($num)-3, strlen($num)); $restunits = substr($num, 0, strlen($num)-3); // extracts the last three digits $restunits = (strlen($restunits)%2 == 1)?"0".$restunits:$restunits; // explodes the remaining digits in 2's formats, adds a zero in the beginning to maintain the 2's grouping. $expunit = str_split($restunits, 2); for ($i=0; $i trans('student.attendance_method_'.$student_attendance_method), 'value' => $student_attendance_method ); } return $attendance_methods; } function getOnlineExamTypes() { $data = getVar('data'); $online_exam_types = gv($data, 'online_exam_types', []); $types = array(); foreach ($online_exam_types as $online_exam_type) { $types[] = array( 'text' => trans('exam.online_exam_type_'.$online_exam_type), 'value' => $online_exam_type ); } return $types; } function getOnlineExamQuestionTypes() { $data = getVar('data'); $online_exam_question_types = gv($data, 'online_exam_question_types', []); $types = array(); foreach ($online_exam_question_types as $online_exam_question_type) { $types[] = array( 'text' => trans('exam.online_exam_question_type_'.$online_exam_question_type), 'value' => $online_exam_question_type ); } return $types; } function getStudentAttendanceMoreThanOnceTypes() { $data = array( array('text' => trans('student.attendance_session_name', ['attribute' => trans('list.first')]), 'value' => 1), array('text' => trans('student.attendance_session_name', ['attribute' => trans('list.second')]), 'value' => 2), array('text' => trans('student.attendance_session_name', ['attribute' => trans('list.third')]), 'value' => 3), array('text' => trans('student.attendance_session_name', ['attribute' => trans('list.fourth')]), 'value' => 4), array('text' => trans('student.attendance_session_name', ['attribute' => trans('list.fifth')]), 'value' => 5), array('text' => trans('student.attendance_session_name', ['attribute' => trans('list.sixth')]), 'value' => 6), array('text' => trans('student.attendance_session_name', ['attribute' => trans('list.seventh')]), 'value' => 7), array('text' => trans('student.attendance_session_name', ['attribute' => trans('list.eight')]), 'value' => 8), array('text' => trans('student.attendance_session_name', ['attribute' => trans('list.ninth')]), 'value' => 9), array('text' => trans('student.attendance_session_name', ['attribute' => trans('list.tenth')]), 'value' => 10) ); return $data; } function cleanBody($body) { return clean($body, 'youtube'); } function mobileDescription($description) { preg_replace('/<\/iframe>/isU', '', $description); return $description; }