Edit File: GeneralTrait.php
<?php namespace App\Traits; use App\Models\User; use App\Models\Setting; trait GeneralTrait { function phoneValidate($number = ''){ if (substr($number, 0, 1) === '0'){ $number = substr($number, 1); } if (substr($number, 0, 4) === '+966'){ $number = substr($number, 4); } if (substr($number, 0, 4) === '0966'){ $number = substr($number, 4); } if (substr($number, 0, 3) === '+20'){ $number = substr($number, 3); } if (substr($number, 0, 3) === '020'){ $number = substr($number, 3); } $phone = preg_replace('/\s+/', '', $number); return $phone; } function convert2english($string) { $newNumbers = range(0, 9); $arabic = array('٠', '١', '٢', '٣', '٤', '٥', '٦', '٧', '٨', '٩'); $string = str_replace($arabic, $newNumbers, $string); return $string; } function convert2arabic($number) { $number = str_replace("1","۱",$number); $number = str_replace("2","۲",$number); $number = str_replace("3","۳",$number); $number = str_replace("4","٤",$number); $number = str_replace("5","٥",$number); $number = str_replace("6","٦",$number); $number = str_replace("7","۷",$number); $number = str_replace("8","۸",$number); $number = str_replace("9","۹",$number); $number = str_replace("0","۰",$number); return $number; } function is_unique($key,$value){ $user = User::where($key , $value)->first(); if( $user ){ return true; } return false; } function generate_code() { $characters = '0123456789'; $charactersLength = strlen($characters); $token = ''; $length = 4; for ($i = 0; $i < $length; $i++) { // $token .= $characters[rand(0, $charactersLength - 1)]; $token .= 1234; } if($user = User::where(['code'=>$token])->first()){ return generate_code(); } return $token; } function directDistance( $latitudeFrom, $longitudeFrom, $latitudeTo, $longitudeTo){ $earthRadius = 6371000; // convert from degrees to radians $latFrom = deg2rad($latitudeFrom); $lonFrom = deg2rad($longitudeFrom); $latTo = deg2rad($latitudeTo); $lonTo = deg2rad($longitudeTo); $lonDelta = $lonTo - $lonFrom; $a = pow(cos($latTo) * sin($lonDelta), 2) + pow(cos($latFrom) * sin($latTo) - sin($latFrom) * cos($latTo) * cos($lonDelta), 2); $b = sin($latFrom) * sin($latTo) + cos($latFrom) * cos($latTo) * cos($lonDelta); $angle = atan2(sqrt($a), $b); $in_km = ($angle * $earthRadius) / 1000 ; $in_km += (40/100) * $in_km; $in_km = number_format((float)$in_km, 2, '.', ''); return $in_km; } public function deliveryPrice($distance = 0){ $settings = Setting::all()->pluck('value', 'key'); $km_price = $settings['km_price']; $starting_fee = $settings['starting_fee']; $delivery_price = $starting_fee + ($distance * $km_price); $data = []; $data['display_delivery_price'] = number_format($delivery_price, 2); $data['delivery_price'] = $delivery_price; return $data; } public function appPercentage($price = 0){ $settings = Setting::all()->pluck('value', 'key'); $app_percentage = $price * ($settings['app_percentage']/100); return number_format($app_percentage,2); } public function addedValue($price = 0){ $settings = Setting::all()->pluck('value', 'key'); $added_value = $price * ($settings['added_value']/100); return number_format($added_value,2); } public function expected_price(){ $settings = Setting::all()->pluck('value', 'key'); $data['min'] = $settings['min_expected_price']; $data['max'] = $settings['max_expected_price']; return $data; } public function isSuccess($code){ $arr = [ '000.000.000', '000.000.100', '000.100.110', '000.100.111', '000.100.112', '000.300.000', '000.300.100', '000.300.101', '000.300.102', '000.600.000', '000.200.100' ]; return in_array( $code, $arr ) ? true : false; } function get_string_between($string, $start, $end){ $string = ' ' . $string; $ini = strpos($string, $start); if ($ini == 0) return ''; $ini += strlen($start); $len = strpos($string, $end, $ini) - $ini; return substr($string, $ini, $len); } }
Back to File Manager