Viewing File: /home/ubuntu/vedadeals-backend-base/app/Helpers/viewHelper.php

<?php

use Carbon\Carbon;

use App\Helpers\Helper;

use Illuminate\Support\Str;

/**
 * @method tr()
 *
 * Description: used to convert the string to language based string
 *
 * @created Vidhya R
 *
 * @updated
 *
 * @param string $key
 *
 * @return string value
 */
function tr($key , $additional_key = "" , $lang_path = "messages.") {

        if (!Session::has('locale')) {

            $locale = Session::put('locale', config('app.locale'));

        }else {

            $locale = Session::get('locale');

        }
    return \Lang::choice('messages.'.$key, 0, Array('other_key' => $additional_key), $locale);

}

function common_date($date , $timezone , $format = "d M Y h:i A") {

    if(!$date) {

        return "";

    }
    
    if($timezone) {

        $date = convertTimeToUSERzone($date , $timezone , $format);

    }   
   
    return date($format , strtotime($date));
}

function convertTimeToUSERzone($str, $userTimezone, $format = 'Y-m-d H:i:s') {

    if(empty($str)){
        return '';
    }
    
    try {
        
        $new_str = new DateTime($str, new DateTimeZone('UTC') );
        
        $new_str->setTimeZone(new DateTimeZone( $userTimezone ));
    }
    catch(\Exception $e) {
        // Do Nothing
    }
    
    return $new_str->format( $format);
}

function routefreestring($string) {

    $string = preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', $string));
    
    $search = [' ', '&', '%', "?",'=','{','}','$'];

    $replace = ['-', '-', '-' , '-', '-', '-' , '-','-'];

    $string = str_replace($search, $replace, $string);

    return $string;
    
}

function shrink_text($text, $end_position) {

    return strlen($text) > $end_position ? substr($text, 0, $end_position).'...' : $text;
}

function formatted_amount($amount = 0.00, $currency_code = "") {

    $amount = str_replace(',', '', $amount);

    $symbol = Setting::get('token_symbol', 'PSCN');

    // $amount = round($amount);

    $amount = number_format((float)$amount, 2, '.', '');

    $formatted_amount = Setting::get('symbol_position') == PREFIX ? $symbol." ".($amount) : ($amount)." ".$symbol;

    return $formatted_amount;

    // $currency_code = $currency_code ? : Setting::get('currency_code', 'USD');

    // $currency = Setting::get('currency', '$');

    // $amount = number_format((float)$amount, 2, '.', '');

    // $formatted_amount = $amount.' '.$currency ? : "0.00";

    // return $formatted_amount;
}

function formatted_duration_type($duration, $duration_type) {
       
    return $formatted_duration_type = $duration > 1 ? "$duration $duration_type" : "$duration ".substr($duration_type, 0, -1);
}

function api_success($key , $other_key = "" , $lang_path = "messages.") {

    if (!\Session::has('locale')) {

        $locale = \Session::put('locale', config('app.locale'));

    } else {

        $locale = \Session::get('locale');

    }
    return \Lang::choice('api-success.'.$key, 0, Array('other_key' => $other_key), $locale);

}

function api_error($key , $other_key = "" , $lang_path = "messages.") {

    if (!\Session::has('locale')) {

        $locale = \Session::put('locale', config('app.locale'));

    } else {

        $locale = \Session::get('locale');

    }
    return \Lang::choice('api-error.'.$key, 0, Array('other_key' => $other_key), $locale);

}

function formatted_day($date, $userTimezone) {

    $user_time_zone = convertTimeToUSERzone($date, $userTimezone);

    $formatted_date = date('Y-m-d', strtotime($user_time_zone));

    switch($formatted_date) {

        case (Carbon::now()->format('Y-m-d')) :
            $formatted_day = "Today";
            break;
        case (Carbon::yesterday()->format('Y-m-d')) :
            $formatted_day = "Yesterday";
            break;
        case ($formatted_date < Carbon::now()) :
            $formatted_day = date("M jS - g:i A" , strtotime($user_time_zone));
            break;
        default:
            $formatted_day = date("l - g:i A" , strtotime($user_time_zone));

    }
   
    return $formatted_day;
}

function get_status_code($status) {

    $status_code = [ PENDING => 'badge-light-primary', CANCELLED => 'badge-light-warning', REJECTED => 'badge-light-danger', PAID => 'badge-light-success' ];

    return isset($status_code[$status]) ? $status_code[$status] : 'badge-light-primary';
}

/**
 * @method envfile()
 *
 * @uses get the configuration value from .env file 
 *
 * @created Vidhya R
 *
 * @updated
 *
 * @param string $key
 *
 * @return string value
 */

function envfile($key) {

    $data = getEnvValues();

    if($data) {
        return $data[$key];
    }

    return "";

}

function getEnvValues() {

    $data =  [];

    $path = base_path('.env');

    if(file_exists($path)) {

        $values = file_get_contents($path);

        $values = explode("\n", $values);

        foreach ($values as $key => $value) {

            $var = explode('=',$value);

            if(count($var) == 2 ) {
                if($var[0] != "")
                    $data[$var[0]] = $var[1] ? $var[1] : null;
            } else if(count($var) > 2 ) {
                $keyvalue = "";
                foreach ($var as $i => $imp) {
                    if ($i != 0) {
                        $keyvalue = ($keyvalue) ? $keyvalue.'='.$imp : $imp;
                    }
                }
                $data[$var[0]] = $var[1] ? $keyvalue : null;
            }else {
                if($var[0] != "")
                    $data[$var[0]] = null;
            }
        }

        array_filter($data);
    
    }

    return $data;

}

function formatted_token($amount = 0.00, $token = "") {

    $amount = str_replace(',', '', $amount);

    $formatted_amount = $amount." ".Setting::get('token', "HNS");

    return $formatted_amount;
}

function emptyObject() {
    return (Object)[];
}

function order_status_badge($status) {

    $order_status_badge = [
        ORDER_RECEIVED => 'badge-light-primary', ORDER_AWAITING_PICKUP => 'badge-light-dark', ORDER_AWAITING_SHIPMENT => 'badge-light-warning', ORDER_SHIPPED => 'badge-light-info', ORDER_COMPLETED => 'badge-light-success', ORDER_CANCELLED => 'badge-light-danger'
    ];

    return isset($order_status_badge[$status]) ? $order_status_badge[$status] : 'badge-light-primary';
}

function generate_payment_id() {

    return strtoupper(sha1(time().rand()));

}

function common_server_date($date , $timezone = "" , $format = "d M Y h:i A") {

    if($date == "0000-00-00 00:00:00" || $date == "0000-00-00" || !$date) {

        return $date = '';
    }

    if($timezone) {

        $date = convertTimeToUTCzone($date, $timezone, $format);

    }

    return $timezone ? $date : date($format, strtotime($date));

}

function withdrawal_status_formatted($status) {

    $status_formattd = [ PENDING => tr('requested'), PAID => tr('paid'), REJECTED => tr('rejected'), CANCELLED => tr('cancelled')];

    return isset($status_formattd[$status]) ? $status_formattd[$status] : tr('na');
}

function formatted_wallet_transaction_amount($amount, $amount_type) {

    return $amount_type == AMOUNT_TYPE_ADD ? "+ ".formatted_amount($amount) : "- ".formatted_amount($amount);
}

/**
 * @method formatted_discount()
 *
 * @uses to formate the discount type & amount
 *
 * @created Karthick
 *
 * @updated
 *
 * @param 
 *
 * @return 
 */
function formatted_discount($discount_type, $discount) {

    $formatted_discount = '';

    if($discount_type == DISCOUNT_TYPE_PERCENTAGE) {

        $formatted_discount = "$discount % OFF";

    } elseif($discount_type == DISCOUNT_TYPE_FLAT_PRICE) {

        $formatted_discount = formatted_amount($discount)." Flat Discount";
    }

    return $formatted_discount;

}

/**
 * @method checkout_type_formatted()
 *
 * @uses to formate the checkout type
 *
 * @created Karthick
 *
 * @updated
 *
 * @param 
 *
 * @return 
 */
function checkout_type_formatted($checkout_type) {

    $status_formattd = [ DIRECT_CHECKOUT => tr('direct'), CART_CHECKOUT => tr('cart')];

    return isset($status_formattd[$checkout_type]) ? $status_formattd[$checkout_type] : tr('na');
}

/**
 * @method order_status_formatted()
 *
 * @uses to formate the order status
 *
 * @created Karthick
 *
 * @updated
 *
 * @param 
 *
 * @return 
 */
function order_status_formatted($status) {

    $status_formattd = [ ORDER_RECEIVED => tr('received'), ORDER_AWAITING_PICKUP => tr('awaiting_pickup'), ORDER_AWAITING_SHIPMENT => tr('awaiting_shipment'), ORDER_SHIPPED => tr('shipped'), ORDER_COMPLETED => tr('completed'), ORDER_CANCELLED => tr('cancelled'), ORDER_RETURN_INITIATED => tr('return_initiated'), ORDER_RETURN_REJECTED => tr('return_rejected'), ORDER_RETURN_ACCEPTED => tr('return_accepted'), ORDER_RETURN_USER_DAMAGE => tr('return_user_damage'), ORDER_RETURN_SUCCESS => tr('return_success'), ORDER_REFUND_INITIATED => tr('refund_initiated'), ORDER_REFUND_SUCCESS => tr('refund_success'), ORDER_REFUND_FAILED => tr('refund_failed')];

    return isset($status_formattd[$status]) ? $status_formattd[$status] : tr('na');
}

/**
 * @method stock_availablity_formatted()
 *
 * @uses to formate the stock availablity status formatted
 *
 * @created Karthick
 *
 * @updated
 *
 * @param 
 *
 * @return 
 */
function stock_availablity_formatted($quantity) {

    if(!$quantity) {

        $stock_availablity_formatted = tr('product_out_of_stock');

    } elseif($quantity < STOCK_AVAILABILITY_STATUS_COUNT) {

        $stock_availablity_formatted = tr('hurry_only').$quantity.' '.Str::of(tr('unit'))->plural($quantity)." ".tr('left_in_stock');

    } else {

        $stock_availablity_formatted = $quantity.' '.Str::of(tr('unit'))->plural($quantity)." ".tr('left_in_stock');
    }

    return $stock_availablity_formatted;

}

/**
 * @method payment_status_formatted()
 *
 * @uses to formate the payment status
 *
 * @created Karthick
 *
 * @updated
 *
 * @param 
 *
 * @return 
 */
function payment_status_formatted($status) {

    $status_formattd = [ PENDING => tr('pending'), PAID => tr('paid'), REJECTED => tr('rejected'), CANCELLED => tr('cancelled')];

    return isset($status_formattd[$status]) ? $status_formattd[$status] : tr('na');
}

/**
 * @method get_units()
 *
 * @uses to get all units
 *
 * @created Karthick
 *
 * @updated
 *
 * @param 
 *
 * @return 
 */
function get_units() {

    return [MILLIGRAM, GRAM, KILOGRAM, MILLILITRE, LITRE, UNIT, ITEM, OZ];
}

/**
 * @method payment_status_badge()
 *
 * @uses to get bootstrap badge for payment status
 *
 * @created Karthick
 *
 * @updated
 *
 * @param 
 *
 * @return 
 */
function payment_status_badge($status) {

    $payment_status_badge = [
        PENDING => 'badge-light-primary', REJECTED => 'badge-light-warning', CANCELLED => 'badge-light-danger', PAID => 'badge-light-success'
    ];

    return isset($payment_status_badge[$status]) ? $payment_status_badge[$status] : 'badge-light-danger';
}

function order_popup_status($order_status) {

    return '';
}

/**
 * @method add_days()
 *
 * @uses to get bootstrap badge for payment status
 *
 * @created Karthick
 *
 * @updated
 *
 * @param 
 *
 * @return 
 */
function add_days($ordered_at, $timezone, $days) {

    return common_date(Carbon::parse($ordered_at)->addDays($days), $timezone, 'd M Y');
}

/**
 * @method order_status_badge_email()
 *
 * @uses to get background color for order status for email.
 *
 * @created Karthick
 *
 * @updated
 *
 * @param 
 *
 * @return 
 */
function order_status_badge_email($status) {

    $order_status_badge = [
        ORDER_RECEIVED => 'badge-light-primary', ORDER_AWAITING_PICKUP => 'badge-light-dark', ORDER_AWAITING_SHIPMENT => 'badge-light-warning', ORDER_SHIPPED => 'badge-light-info', ORDER_COMPLETED => 'badge-light-success', ORDER_CANCELLED => 'badge-light-danger'
    ];

    return isset($order_status_badge[$status]) ? $order_status_badge[$status] : 'badge-light-info';
}

/**
 * @method get_order_email_subject()
 *
 * @uses to the subject for order email
 *
 * @created Karthick
 *
 * @updated
 *
 * @param 
 *
 * @return 
 */
function get_order_email_subject($status, $order_unique_id) {

    $order_status_subject = [
        ORDER_RECEIVED => tr('order_subject_received', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_AWAITING_PICKUP => tr('order_subject_awaiting_pickup', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_AWAITING_SHIPMENT => tr('order_subject_awaiting_shipment', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_SHIPPED => tr('order_subject_shipped', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_COMPLETED => tr('order_subject_completed', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_CANCELLED => tr('order_subject_cancelled', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_RETURN_INITIATED => tr('order_subject_return_initiated', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_RETURN_REJECTED => tr('order_subject_return_rejected', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_RETURN_ACCEPTED => tr('order_subject_return_accepted', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_RETURN_USER_DAMAGE => tr('order_subject_return_user_damage', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_RETURN_SUCCESS => tr('order_subject_return_success', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_REFUND_INITIATED => tr('order_subject_refund_initiated', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_REFUND_SUCCESS => tr('order_subject_refund_success', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_REFUND_FAILED => tr('order_subject_refund_failed', $order_unique_id).' - '.Setting::get('site_name'),
    ];

    return isset($order_status_subject[$status]) ? $order_status_subject[$status] : tr('na');
}

/**
 * @method get_order_email_content()
 *
 * @uses to the content for order email
 *
 * @created Karthick
 *
 * @updated
 *
 * @param 
 *
 * @return 
 */
function get_order_email_content($status, $order_unique_id) {

    $order_status_content = [
        ORDER_RECEIVED => tr('order_content_received', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_AWAITING_PICKUP => tr('order_content_awaiting_pickup', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_AWAITING_SHIPMENT => tr('order_content_awaiting_shipment', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_SHIPPED => tr('order_content_shipped', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_COMPLETED => tr('order_content_completed', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_CANCELLED => tr('order_content_cancelled', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_RETURN_INITIATED => tr('order_content_return_initiated', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_RETURN_REJECTED => tr('order_content_return_rejected', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_RETURN_ACCEPTED => tr('order_content_return_accepted', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_RETURN_USER_DAMAGE => tr('order_content_return_user_damage', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_RETURN_SUCCESS => tr('order_content_return_success', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_REFUND_INITIATED => tr('order_content_refund_initiated', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_REFUND_SUCCESS => tr('order_content_refund_success', $order_unique_id).' - '.Setting::get('site_name'),
        ORDER_REFUND_FAILED => tr('order_content_refund_failed', $order_unique_id).' - '.Setting::get('site_name'),
    ];

    return isset($order_status_content[$status]) ? $order_status_content[$status] : tr('na');
}

/**
 * @method get_orders_sub_page()
 *
 * @uses to get sub page name for orders in sidebar.
 *
 * @created Karthick
 *
 * @updated
 *
 * @param 
 *
 * @return 
 */
function get_orders_sub_page($status) {

    $order_status_badge = [
        ORDER_STATUS_PENDING => 'ongoing', ORDER_STATUS_CANCELLED => 'cancelled', ORDER_STATUS_RETURNED => 'returned', ORDER_STATUS_COMPLETED => 'completed'
    ];

    return isset($order_status_badge[$status]) ? $order_status_badge[$status] : 'orders-ongoing';
}

/**
 * @method cannabidiol_per_formatted()
 *
 * @uses to formate the thc & cbd values
 *
 * @created Karthick
 *
 * @updated
 *
 * @param float, float
 *
 * @return 
 */
function cannabidiol_per_formatted($from, $to, $unit, $decimal = 0) {

    $cannabidiol_per_formatted = $from || $to ? number_format($from, $decimal, '.', '') : '';

    if($to) {

        $separation = $decimal ? " - " : "-";

        $cannabidiol_per_formatted = $from || $to ? $cannabidiol_per_formatted.' '.$separation.number_format($to, $decimal, '.', '') : '';
    }

    return $cannabidiol_per_formatted ? $cannabidiol_per_formatted.($decimal ? " $unit" : "%") : '';
}

/**
 * @method cannabidiol_formatted()
 *
 * @uses to formate the thc & cbd values in mg / g format
 *
 * @created Karthick
 *
 * @updated
 *
 * @param float, float, int
 *
 * @return string
 */
function cannabidiol_formatted($from, $to, $unit, $decimal = 0) {

    $cannabidiol_formatted = $from || $to ? number_format($from, $decimal, '.', '') : '';

    if($to) {

        $cannabidiol_formatted = $from || $to ? $cannabidiol_formatted." - ".number_format($to, $decimal, '.', '') : '';
    }

    return $cannabidiol_formatted ? $cannabidiol_formatted.($decimal ? " $unit" : "%") : '';
}

/**
 * @method cannabidiol_avg()
 *
 * @uses to get the average of cannabidiol content in product (from, to values avg).
 *
 * @created Karthick
 *
 * @updated
 *
 * @param float, float
 *
 * @return int
 */
function cannabidiol_avg($from, $to) {

    if($to == 0) { 

        return round($from);
    }

    $cannabidiol_avg = ($from + $to) / 2;

    return round($cannabidiol_avg);
}

/**
 * @method removeSpecialCharacters()
 *
 * @uses to remove special characters from string
 *
 * @created Karthick
 *
 * @updated
 *
 * @param
 *
 * @return
 */
function removeSpecialCharacters($string, $symbol) {

    $string = preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', $symbol, $string));
    
    $search = [' ', '&', '%', "?",'=','{','}','$'];

    $replace = ['-', '-', '-' , '-', '-', '-' , '-','-'];

    $string = str_replace($search, $replace, $string);

    return strtolower($string);
    
}

/**
 * @method get_cannabidiol_units()
 *
 * @uses to get all cannabidiol units
 *
 * @created Karthick
 *
 * @updated
 *
 * @param 
 *
 * @return 
 */
function get_cannabidiol_units() {

    return [UNIT_PERCENTAGE, UNIT_MG, UNIT_MG_PER_G, UNIT_MG_PER_CAPSULE, UNIT_MG_PER_SPRAY];
}

/**
 * @method get_order_push_notification_content()
 *
 * @uses to the content for order push_notification
 *
 * @created Karthick
 *
 * @updated
 *
 * @param 
 *
 * @return 
 */
function get_order_push_notification_content($status, $order_unique_id) {

    $order_status_content = [
        ORDER_RECEIVED => tr('order_content_received').'- '.$order_unique_id,
        ORDER_AWAITING_PICKUP => tr('order_content_awaiting_pickup').'- '.$order_unique_id,
        ORDER_AWAITING_SHIPMENT => tr('order_content_awaiting_shipment').'- '.$order_unique_id,
        ORDER_SHIPPED => tr('order_content_shipped').'- '.$order_unique_id,
        ORDER_COMPLETED => tr('order_content_completed').'- '.$order_unique_id,
        ORDER_CANCELLED => tr('order_content_cancelled').'- '.$order_unique_id,
        ORDER_RETURN_INITIATED => tr('order_content_return_initiated').'- '.$order_unique_id,
        ORDER_RETURN_REJECTED => tr('order_content_return_rejected').'- '.$order_unique_id,
        ORDER_RETURN_ACCEPTED => tr('order_content_return_accepted').'- '.$order_unique_id,
        ORDER_RETURN_USER_DAMAGE => tr('order_content_return_user_damage').'- '.$order_unique_id,
        ORDER_RETURN_SUCCESS => tr('order_content_return_success').'- '.$order_unique_id,
        ORDER_REFUND_INITIATED => tr('order_content_refund_initiated').'- '.$order_unique_id,
        ORDER_REFUND_SUCCESS => tr('order_content_refund_success').'- '.$order_unique_id,
        ORDER_REFUND_FAILED => tr('order_content_refund_failed').'- '.$order_unique_id,
    ];

    return isset($order_status_content[$status]) ? $order_status_content[$status] : tr('na');
}

function current_time($tz = IST_TIMEZONE, $format = 'd M Y h:i:s.u A')
{
    return now()->timezone($tz)->format($format);
}
?>
Back to Directory File Manager