refresh();
$roles = [];
if($user) { // -- will always be true!
if($user->is_super_admin) $roles[] = 'Admin';
if($user->is_agreed_as_manager) $roles[] = 'Manager';
if($user->is_agreed_as_rep) $roles[] = 'Reseller';
}
return $roles;
}
}
if(!function_exists('myPersona')) {
function myPersona(\App\Models\User $user) {
$user->refresh();
$roles = [];
if($user) { // -- will always be true!
if($user->is_super_admin) $roles[] = 'Admin';
if($user->is_agreed_as_manager) $roles[] = 'Manager';
if($user->is_agreed_as_rep) $roles[] = 'Reseller';
}
$role = count($roles)?$roles[0]:null;
if(!$role){
return null;
}else{
return request()->session()->get('my_persona', $role);
}
}
}
if (!function_exists('toHumanReadable')) {
function toHumanReadable($name)
{
return ucwords(preg_replace("/[^0-9a-z]/i", " ", $name));
}
}
if(!function_exists('friendly_date_time')) {
function friendly_date_time($value, $includeTime = true, $default = '-', $long_year=false) {
if(!$value || empty($value)) return $default;
try {
if($includeTime) {
$realTimezone = 'US/Eastern';
$date = new DateTime($value);
$date->setTimezone(new DateTimeZone($realTimezone));
return $date->format("m/d/y" . ($includeTime ? ", h:ia" : "")) . ($includeTime ? ' EST' : '');
}
else {
$result = strtotime($value);
if($long_year){
$result = date("m/d/Y" . ($includeTime ? ", h:ia" : ""), $result);
}else{
$result = date("m/d/y" . ($includeTime ? ", h:ia" : ""), $result);
}
return $result;
}
}
catch (Exception $e) {
return $value;
}
}
}
if(!function_exists('friendly_date')) {
function friendly_date($value) {
if(!$value || empty($value)) return '';
try {
$result = strtotime($value);
$result = date("m/d/Y", $result);
return $result;
}
catch (Exception $e) {
return $value;
}
}
}
if (!function_exists('parseRender')) {
function parseRender($_data)
{
$excludeWhole = [
'uid', 'id', 'password'
];
$excludeEndsWith = [
'_token', '_json', '_id', '_set_at'
];
if ($_data) {
$type = gettype($_data);
if (is_string($_data) || is_numeric($_data)) {
echo $_data;
} else {
echo "
";
foreach ($_data as $k => $v) {
if(in_array($k, $excludeWhole)) continue;
if(\Illuminate\Support\Str::endsWith($k, $excludeEndsWith)) continue;
echo "";
echo "" . toHumanReadable($k) . " | ";
echo "";
if (is_object($v)) {
parseRender($v);
} elseif (is_array($v)) {
foreach ($v as $k2 => $v2) {
parseRender($v2);
}
} else {
if(\Illuminate\Support\Str::endsWith($k, '_at')) {
echo friendly_date_time($v);
}
elseif(\Illuminate\Support\Str::endsWith($k, 'date')) {
echo friendly_date($v);
}
elseif($k == 'tracking_number') {
echo "{$v}";
}
else {
echo $v;
}
}
echo " | ";
echo "
";
}
echo "
";
}
}
}
}
if(!function_exists('is_wanted_as_color_class')) {
function is_wanted_as_color_class($status) {
if($status == 'APPROVED') return 'bg-success';
if($status == 'REJECTED') return 'bg-danger';
if($status == 'UNDEFINED') return 'bg-white';
}
}
if(!function_exists('getFirstSectionUID')) {
function getFirstSectionUID($uid) {
$sections = explode('-', $uid);
return strtoupper(@$sections[0]);
}
}
if (!function_exists('displayAmount')) {
function displayAmount($prefix, $number)
{
return $prefix . '' . number_format($number, 2);
}
}
if (!function_exists('is_future_date')) {
function is_future_date($date)
{
$startDate = strtotime(date('Y-m-d', strtotime($date) ) );
$currentDate = strtotime(date('Y-m-d'));
if($startDate > $currentDate) {
return true;
}
return false;
}
}
if (!function_exists('days_until_this_date')) {
function days_until_this_date($date)
{
$futureDate = $date;
$d = new DateTime($futureDate);
$days = $d->diff(new DateTime())->format('%a');
if($days == 0) return 'Few hours';
return $days . ' days';
}
}
if(!function_exists('friendly_date_est')) {
function friendly_date_est($value, $default = '-') {
if(!$value || empty($value)) return $default;
try {
$realTimezone = resolve_timezone('EASTERN');
$date = new DateTime($value);
$date->setTimezone(new DateTimeZone($realTimezone));
return $date->format("m/d/y");
}
catch (Exception $e) {
return $e->getMessage();
}
}
}
if(!function_exists('resolve_timezone')) {
function resolve_timezone($value) {
try {
switch ($value) {
case 'ALASKA': {
return 'US/Alaska';
}
case 'CENTRAL': {
return 'US/Central';
}
case 'EASTERN': {
return 'US/Eastern';
}
case 'HAWAII': {
return 'US/Hawaii';
}
case 'MOUNTAIN': {
return 'US/Mountain';
}
case 'PACIFIC': {
return 'US/Pacific';
}
case 'PUERTO_RICO': {
return 'America/Puerto_Rico';
}
case 'UTC': {
return 'UTC';
}
}
}
catch (Exception $e) {
return $value;
}
}
}
if(!function_exists('friendly_time_by_time_zone')) {
function friendly_time_by_time_zone($value, $default = '-', $fromTz = 'UCT', $toTz = 'US/Eastern') {
if(!$value || empty($value)) return $default;
try {
$date = new DateTime($value, new DateTimeZone($fromTz));
$date->setTimezone(new DateTimeZone($toTz));
return $date->format('h:i a') . ' ' . friendly_timezone($toTz);
}
catch (Exception $e) {
return $value;
}
}
}
if(!function_exists('friendly_timezone')) {
function friendly_timezone($value) {
try {
switch ($value) {
case 'US/Eastern': {
return 'EST';
}
}
}catch(Exception $e){
return $value;
}
}
}
if (!function_exists('generate_password')) {
function generate_password($length = 20)
{
$chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz' .
'0123456789`-=~!@#$%^&*()_+,./<>?;:[]{}\|';
$str = '';
$max = strlen($chars) - 1;
for ($i = 0; $i < $length; $i++)
$str .= $chars[random_int(0, $max)];
return $str;
}
}
if (!function_exists('selected_lab_html_address')) {
function selected_lab_html_address($selectedLab)
{
return '
'.$selectedLab->lab_title.'
'.$selectedLab->street.'
'.$selectedLab->city.', '.$selectedLab->state.' '.$selectedLab->postcode.'
';
}
}
function getTestInfo($key){
$lbsTests = (array) config('constants.lbs_tests');
$test = @$lbsTests[$key];
if($test) return $test;
return null;
}
function getTestDisplayName($key){
$test = (array) getTestInfo($key);
if(isset($test['label'])) return $test['label'];
return toHumanReadable($key);
}
function getAllTests(){
return (array) config('constants.lbs_tests');
}
function getTest($testKey) {
return @getAllTests()[$testKey];
}
function getTestLabelByKey( $testKey ) {
$label = getTestLabel(getTest($testKey));
if($label) return $label;
return toHumanReadable($testKey);
}
function getTestLabel( $test ) {
return @$test[ 'label' ];
}
function getTestPrice( $testKey ) {
return floatval( config( 'app.'.$testKey ) );
}
if ( !function_exists( 'get_lab_station_summary2' ) ) {
function get_lab_station_summary2( $lab ) {
$states = config( 'constants.states' );
$data = json_decode( $lab->data );
return [
'id' => @$data->id,
'city' => @$data->city,
'distance' => '', //todo use zips table to get distance between zips
'fax_number' => @$data->fax_number,
'lab_title' => @$data->title,
'latitude' => @$data->latitude,
'longitude' => @$data->longitude,
'phone_number' => @$data->phone_number,
'postcode' => @$data->zip_code,
'state' => @$data->state,
'street' => @$data->address,
// 'services' => json_decode( $lab->services ),
'hrs_of_operation' => @$data->opening_hours,
'show_hrs_of_operation' => false,
'augmented' => @$data->augmented
];
}
}
function labAddress(array $selectedLab, $short = false){
$parts = [];
if(isset($selectedLab['lab_title'])) array_push($parts, $selectedLab['lab_title'] . '
');
if(isset($selectedLab['street'])) array_push($parts, $selectedLab['street'] . '
');
if(isset($selectedLab['city'])) array_push($parts, $selectedLab['city'] . ', ');
if(isset($selectedLab['state'])) array_push($parts, $selectedLab['state']);
if(isset($selectedLab['postcode'])) array_push($parts, $selectedLab['postcode']);
return implode($parts);
}
?>