????ThemeService.php 0000644 00000015266 15007250627 0007656 0 ustar 00 file('theme_upload'); $filename = $file->getClientOriginalName(); $tempPath = $file->storeAs('temp', $filename); $zip = new ZipArchive(); if ($zip->open(storage_path('app/' . $tempPath)) === TRUE) { $genFolderName = explode('/', $zip->getNameIndex(0))[0]; if ($genFolderName === "__MACOSX") { for ($i = 0; $i < $zip->numFiles; $i++) { if (strpos($zip->getNameIndex($i), "__MACOSX") === false) { $getThemeFolder = explode('/', $zip->getNameIndex($i))[0]; break; } } } $getThemeFolder = explode('.', $genFolderName)[0]; $zip->extractTo(storage_path('app/temp')); $infoPath = storage_path('app/temp/'.$getThemeFolder.'/public/addon/info.php'); if(File::exists($infoPath)) { $extractPath = base_path('resources/themes'); $zip->extractTo($extractPath); $zip->close(); File::chmod($extractPath.'/'.$getThemeFolder.'/public/addon', 0777); $status = 'success'; $message = translate('theme_upload_successfully'); }else { File::cleanDirectory(storage_path('app/temp')); $status = 'error'; $message = translate('invalid_theme'); } }else{ $status = 'error'; $message = translate('theme_upload_fail'); } if (File::exists(base_path('resources/themes/__MACOSX'))) { File::deleteDirectory(base_path('resources/themes/__MACOSX')); } File::cleanDirectory(storage_path('app/temp')); return [ 'status' => $status, 'message'=> $message ]; } public function getPublishData(object $request): array { $themeInfo = include(base_path('resources/themes/'.$request['theme'].'/public/addon/info.php')); if ($request['theme'] != 'default' && (empty($themeInfo['purchase_code']) || empty($themeInfo['username']) || $themeInfo['is_active'] == '0')) { $theme = $request['theme']; return [ 'flag' => 'inactive', 'view' => view(ThemeSetup::ACTIVE_MODAL[VIEW], compact('themeInfo', 'theme'))->render(), ]; } $currentTheme = theme_root_path(); $currentThemeRoutes = include(base_path('resources/themes/'.$currentTheme.'/public/addon/theme_routes.php')); $this->setEnvironmentValue('WEB_THEME', $request['theme']); $reloadAction = 1; $informationModal = ''; if (is_file(base_path('resources/themes/'.$request['theme'].'/public/addon/theme_routes.php'))) { $themeRoutes = include(base_path('resources/themes/'.$request['theme'].'/public/addon/theme_routes.php')); $reloadAction = 0; $informationModal = view(ThemeSetup::INFO_MODAL[VIEW], compact('currentTheme', 'themeInfo', 'themeRoutes', 'currentThemeRoutes'))->render(); } return [ 'reload_action' => $reloadAction, 'informationModal' => $informationModal, ]; } public function getActivationData(object $request): bool { $activationStatus = 0; $remove = ["http://", "https://", "www."]; $url = str_replace($remove, "", url('/')); $full_data = include(base_path('resources/themes/'.$request['theme'].'/public/addon/info.php')); $post = [ base64_decode('dXNlcm5hbWU=') => $request['username'], base64_decode('cHVyY2hhc2Vfa2V5') => $request['purchase_code'], base64_decode('ZG9tYWlu') => $url, ]; $response = Http::post(base64_decode('aHR0cHM6Ly9jaGVjay42YW10ZWNoLmNvbS9hcGkvdjEvZG9tYWluLXJlZ2lzdGVy'), $post)->json(); $status = base64_decode($response['active']) ?? 1; if((int)$status){ $full_data['is_active'] = 1; $full_data['username'] = $request['username']; $full_data['purchase_code'] = $request['purchase_code']; $str = " 'admin', 'sent_to' => 'seller', 'title' => 'Theme Changed to '.ucwords(str_replace('_',' ',theme_root_path())), 'description' => 'Theme Changed Description, time - '.Carbon::now(), 'image' => $request->has('image') ? $this->upload(dir: 'notification/', format: 'webp', image: $request->file('image')) : null, 'status' => 1, 'notification_count' => 1 ]; } public function deleteTheme(object $request): array { if(theme_root_path() == $request['theme']){ $status = 'error'; $message = translate("cannot_delete_the_active_theme"); }else { $full_path = base_path('resources/themes/'.$request['theme']); if(File::deleteDirectory($full_path)){ $status = 'success'; $message = translate("theme_delete_successfully"); }else{ $status = 'error'; $message = translate("theme_delete_fail"); } } return [ 'status' => $status, 'message'=> $message ]; } function getDirectories(): array { $scan = scandir(base_path('resources/themes')); $themesFolders = array_diff($scan, ['.', '..','.DS_Store']); $themes = []; foreach ($themesFolders as $folder){ if(file_exists(base_path('resources/themes/'.$folder.'/public/addon/info.php'))) { $info = include(base_path('resources/themes/'.$folder.'/public/addon/info.php')); }else { $info = []; } $themes[$folder] = $info; } return $themes; } } WithdrawRequestService.php 0000644 00000003023 15007250627 0011742 0 ustar 00 $addedBy === 'vendor' ? $vendorId : '', 'amount' => currencyConverter($request['amount']), 'transaction_note' => null, 'withdrawal_method_id' => $request['withdraw_method'], 'withdrawal_method_fields' => json_encode($this->getWithdrawMethodFields(request:$request,withdrawMethod:$withdrawMethod)), 'approved' => 0, 'created_at' => now(), 'updated_at' => now() ]; } /** * @param object $request * @param object $withdrawMethod * @return array */ public function getWithdrawMethodFields(object $request, object $withdrawMethod):array { $inputFields = array_column($withdrawMethod['method_fields'], 'input_name'); $method['method_name'] = $withdrawMethod['method_name']; $values = $request->all(); foreach ($inputFields as $field) { if(key_exists($field, $values)) { $method[$field] = $values[$field]; } } return $method; } } CartService.php 0000644 00000033456 15007250627 0007506 0 ustar 00 makeVariation( request:$request, colorName: $colorName, choiceOptions: json_decode($product['choice_options']) ); if ($variation != null) { $count = count(json_decode($product->variation)); for ($i = 0; $i < $count; $i++) { if (json_decode($product->variation)[$i]->type == $variation) { $discount = $this->getDiscountAmount(price:json_decode($product->variation)[$i]->price,discount: $product['discount'],discountType: $product['discount_type']); $tax = $product->tax_model=='exclude' ? $this->getTaxAmount(price: json_decode($product->variation)[$i]->price-$discount, tax: $product['tax']) : 0; $price = json_decode($product->variation)[$i]->price - $discount + $tax; $quantity = json_decode($product->variation)[$i]->qty; } } } else { $discount = $this->getDiscountAmount(price:$product['unit_price'],discount:$product['discount'],discountType:$product['discount_type']); $tax = $product->tax_model=='exclude' ? $this->getTaxAmount(price:$product->unit_price-$discount, tax:$product['tax']) : 0; $price = $product['unit_price'] - $discount + $tax; $quantity = $product['current_stock']; } $requestQuantity = (int)$request['quantity']; $inCartStatus = 0; $cartData = session()->get(session(SessionKey::CURRENT_USER)) ?? []; $inCartData = null; foreach ($cartData as $cart) { if(is_array($cart) && $cart['id'] == $product['id'] && $cart['variant'] == $variation){ $inCartStatus = 1; if ($product['discount_type'] == 'percent') { $discount = ($cart['price'] * $product['discount']) / 100; } elseif ($product['discount_type'] == 'flat') { $discount = $product['discount']; } $inCartData = [ 'price' => usdToDefaultCurrency(amount:($cart['price']-$discount+$tax)*$cart['quantity']), 'discount' => usdToDefaultCurrency($discount), 'tax' => $product->tax_model == 'exclude' ? setCurrencySymbol(amount: usdToDefaultCurrency(amount: $tax * $cart['quantity']), currencyCode: getCurrencyCode()) : 'incl.', 'quantity' => (int)$cart['quantity'], 'variant' => $cart['variant'], 'id' => $cart['id'], ]; $requestQuantity = (int)$request['quantity_in_cart']; } } return [ 'price' => usdToDefaultCurrency(amount: $price * $requestQuantity), 'discount' => usdToDefaultCurrency($discount), 'tax' => $product->tax_model == 'exclude' ? setCurrencySymbol(amount: usdToDefaultCurrency(amount: $tax * $requestQuantity), currencyCode: getCurrencyCode()) : 'incl.', 'quantity' => $product['product_type'] == 'physical' ? $quantity : 100, 'inCartStatus' => $inCartStatus, 'inCartData' => $inCartData, 'requestQuantity' => $requestQuantity, ]; } public function makeVariation(object $request , string|null $colorName ,array $choiceOptions):string { $variation = ''; if ($colorName) { $variation = $colorName; } foreach ($choiceOptions as $key => $choice) { if ($variation != null) { $variation .= '-' . str_replace(' ', '', $request[$choice->name]); } else { $variation .= str_replace(' ', '', $request[$choice->name]); } } return $variation; } public function getUserId():int { $userId = 0; if(Str::contains(session(SessionKey::CURRENT_USER), 'saved-customer')) { $userId = explode('-',session(SessionKey::CURRENT_USER))[2]; } return $userId; } public function getUserType():string { $userType = 'walking-customer'; if(Str::contains(session(SessionKey::CURRENT_USER), 'saved-customer')) { $userType = 'saved-customer'; } return $userType; } public function getNewCartSession( string|int $cartId):Void { if(!session()->has(SessionKey::CURRENT_USER)){ session()->put(SessionKey::CURRENT_USER,$cartId); } if(!session()->has(SessionKey::CART_NAME)) { if(!in_array($cartId,session(SessionKey::CART_NAME)??[])) { session()->push(SessionKey::CART_NAME, $cartId); } } } public function getCartKeeper():Void { $cartId = session(SessionKey::CURRENT_USER); $cart = session($cartId); $cartKeeper = []; if (session()->has($cartId) && count($cart) > 0) { foreach ($cart as $cartItem) { $cartKeeper[] = $cartItem; } } session()->put(session(SessionKey::CURRENT_USER) , $cartKeeper); } public function getVariationPrice(array $variation,string $variant):float { $count = count($variation); $price = 0; for ($i = 0; $i < $count; $i++) { if ($variation[$i]->type == $variant) { $price = $variation[$i]->price; } } return $price; } public function getVariationQuantity(array $variation,string $variant):int { $count = count($variation); $productQuantity = 0; for ($i = 0; $i < $count; $i++) { if ($variation[$i]->type == $variant) { $productQuantity = $variation[$i]->qty; } } return $productQuantity; } public function getCurrentQuantity($variation,$variant,$quantity):int { $productQuantity = $this->getVariationQuantity($variation,$variant); return $productQuantity - $quantity; } public function addCartDataOnSession(object $product,int $quantity,float $price,float $discount,string $variant,array $variations):array { $cartId =session(SessionKey::CURRENT_USER); $sessionData =[ 'id' => $product['id'], 'customerId' => $this->getUserId(), 'customerOnHold' => false, 'quantity' => $quantity, 'price' => $price, 'name' => $product['name'], 'productType' => $product['product_type'], 'image'=> $product['thumbnail'], 'discount' => $discount, 'tax_model'=>$product['tax_model'], 'variant' => $variant, 'variations' => $variations, ]; if (session()->has($cartId)) { $keeper = []; foreach (session($cartId) as $item) { $keeper[] = $item; } $keeper[] = $sessionData; if(!isset(session()->get($cartId)['add_to_cart_time'])) { $keeper += ['add_to_cart_time' => Carbon::now()]; } session()->put($cartId, $keeper); } else { session()->put($cartId, [$sessionData]+['add_to_cart_time' => Carbon::now()]); } return $sessionData ; } public function getQuantityAndUpdateTime(object $request,object $product):int { $quantity = 0 ; $cartId = session(SessionKey::CURRENT_USER); $cart = session($cartId); $keeper=[]; foreach ($cart as $item){ if (is_array($item)) { $variantCheck = false; if(!empty($item['variant']) && ($item['variant'] ==$request['variant']) && ($item['id'] == $request['key'])){ $variantCheck = true; }elseif(empty($request['variant']) && $item['id'] == $request['key']){ $variantCheck = true; } if ($variantCheck) { $variant = ''; if($item['variations']) { foreach($item['variations'] as $value) { if($variant!=null) { $variant .= '-' . str_replace(' ', '', $value); }else{ $variant .= str_replace(' ', '', $value); } } } if ($variant != null) { $productQuantity = $this->getVariationQuantity(json_decode($product['variation']),$variant); } else { $productQuantity = $product['current_stock']; } $quantity = $productQuantity - $request['quantity'] ; if($product['product_type'] =='physical' && $quantity < 0) { return $quantity ; } $item['quantity'] = $request['quantity']; } $keeper[] = $item; } } $keeper += ['add_to_cart_time' => Carbon::now()]; session()->put($cartId, $keeper); return $quantity; } public function getNewCartId():void { $cartId = 'walking-customer-'.rand(10,1000); session()->put(SessionKey::CURRENT_USER,$cartId); if(!in_array($cartId,session(SessionKey::CART_NAME)??[])) { session()->push(SessionKey::CART_NAME, $cartId); } } public function getCartSubtotalCalculation(object $product,array $cartItem,array $calculation):array { $taxCalculate = $calculation['taxCalculate'] + ($this->getTaxAmount($cartItem['price'], $product['tax'])*$cartItem['quantity']); $productSubtotal = (($cartItem['price']-$cartItem['discount']) * $cartItem['quantity']); return [ 'countItem' => $calculation['countItem']+1, 'taxCalculate' => $taxCalculate , 'totalTaxShow' => $calculation['totalTaxShow'] + $taxCalculate, 'totalTax' => $taxCalculate, 'productSubtotal' => $productSubtotal, 'subtotal' => $calculation['subtotal'] + $productSubtotal - ($cartItem['tax_model'] == 'include'?$taxCalculate : 0 ), 'discountOnProduct' => $calculation['discountOnProduct'] + ($cartItem['discount'] * $cartItem['quantity']), ]; } public function getTotalCalculation(array $subTotalCalculation, string $cartName):array { $total = $subTotalCalculation['subtotal']; $extraDiscount = session()->get($cartName)['ext_discount'] ?? 0; $extraDiscountType = session()->get($cartName)['ext_discount_type'] ?? 'amount'; if ($extraDiscountType == 'percent' && $extraDiscount > 0) { $extraDiscount = (($subTotalCalculation['subtotal']+$subTotalCalculation['discountOnProduct']) * $extraDiscount) / 100; } if ($extraDiscount) { $total -= $extraDiscount; } $couponDiscount = 0; if (isset(session()->get($cartName)['coupon_discount'])) { $couponDiscount = session()->get($cartName)['coupon_discount']; } return [ 'total' => $total, 'couponDiscount' => $couponDiscount, 'extraDiscount' => $extraDiscount ]; } public function customerOnHoldStatus($status):void { $cart = session(session(SessionKey::CURRENT_USER)); $cartKeeper = []; if (session()->has(session(SessionKey::CURRENT_USER)) && count($cart) > 0) { foreach ($cart as $cartItem) { if (is_array($cartItem)) { $cartItem['customerOnHold'] = $status; } $cartKeeper[] = $cartItem; } } session()->put(session(SessionKey::CURRENT_USER) , $cartKeeper); } public function checkCurrentStock(string $variant,array $variation,int $productQty,int $quantity):int { if ($variant != null) { $currentQty = $this->getCurrentQuantity(variation:$variation,variant: $variant,quantity: $quantity); }else { $currentQty = $productQty - $quantity; } return $currentQty; } public function checkProductTypeDigital(string|int $cartId):bool { $cart = session($cartId); $isDigitalProduct = false; foreach($cart as $item) { if(is_array($item) && $item['productType'] == 'digital' ) { $isDigitalProduct = true; } } return $isDigitalProduct; } public function getCustomerInfo(object|null $currentCustomerData,int $customerId):array { if($currentCustomerData) { $customerName = $currentCustomerData['f_name'] . ' ' . $currentCustomerData['l_name']; $customerPhone = $currentCustomerData['phone']; }else{ $customerName = ""; $customerPhone = ""; session()->forget(session($customerId)); $this->getNewCartId(); } return [ 'customerName'=>$customerName, 'customerPhone'=>$customerPhone ]; } } FileManagerService.php 0000644 00000003551 15007250627 0010760 0 ustar 00 hasfile('images')) { $images = $request->file('images'); foreach ($images as $image) { $name = $image->getClientOriginalName(); Storage::disk('local')->put($request['path'] . '/' . $name, file_get_contents($image)); } } if ($request->hasfile('file')) { Madzipper::make($request->file('file'))->extractTo('storage/app/' . $request['path']); } return true; } private function getFileName($path): bool|string { $temp = explode('/', $path); return end($temp); } private function getFileExtension($name): bool|string { $temp = explode('.', $name); return end($temp); } private function getPathForDatabase($fullPath): bool|string { $temp = explode('/', $fullPath, 3); return end($temp); } public function formatFileAndFolders($files, $type): array { $data = []; foreach ($files as $file) { $name = self::getFileName($file); $ext = self::getFileExtension($name); $path = ''; if ($type == 'file') { $path = $file; } if ($type == 'folder') { $path = $file; } if (in_array($ext, ['jpg', 'png', 'jpeg', 'gif', 'bmp', 'tif', 'tiff', 'webp']) || $type == 'folder') $data[] = [ 'name' => $name, 'path' => $path, 'db_path' => self::getPathForDatabase($file), 'type' => $type ]; } return $data; } } SettingService.php 0000644 00000012037 15007250627 0010222 0 ustar 00 each(fn($item, $key) => $request[$item] = $request->has($item) ? (int)$request[$item] : 0); $validation = [ 'gateway' => 'required|in:releans,twilio,nexmo,2factor,msg91,hubtel,paradox,signal_wire,019_sms,viatech,global_sms,akandit_sms,sms_to,alphanet_sms', 'mode' => 'required|in:live,test' ]; $additional_data = []; if ($request['gateway'] == 'releans') { $additional_data = [ 'status' => 'required|in:1,0', 'api_key' => 'required', 'from' => 'required', 'otp_template' => 'required' ]; } elseif ($request['gateway'] == 'twilio') { $additional_data = [ 'status' => 'required|in:1,0', 'sid' => 'required', 'messaging_service_sid' => 'required', 'token' => 'required', 'from' => 'required', 'otp_template' => 'required' ]; } elseif ($request['gateway'] == 'nexmo') { $additional_data = [ 'status' => 'required|in:1,0', 'api_key' => 'required', 'api_secret' => 'required', 'token' => 'required', 'from' => 'required', 'otp_template' => 'required' ]; } elseif ($request['gateway'] == '2factor') { $additional_data = [ 'status' => 'required|in:1,0', 'api_key' => 'required' ]; } elseif ($request['gateway'] == 'msg91') { $additional_data = [ 'status' => 'required|in:1,0', 'template_id' => 'required', 'auth_key' => 'required', ]; } elseif ($request['gateway'] == 'hubtel') { $additional_data = [ 'status' => 'required|in:1,0', 'sender_id' => 'required', 'client_id' => 'required', 'client_secret' => 'required', 'otp_template' => 'required', ]; } elseif ($request['gateway'] == 'paradox') { $additional_data = [ 'status' => 'required|in:1,0', 'api_key' => 'required', 'sender_id' => 'required', ]; } elseif ($request['gateway'] == 'signal_wire') { $additional_data = [ 'status' => 'required|in:1,0', 'project_id' => 'required', 'token' => 'required', 'space_url' => 'required', 'from' => 'required', 'otp_template' => 'required', ]; } elseif ($request['gateway'] == '019_sms') { $additional_data = [ 'status' => 'required|in:1,0', 'password' => 'required', 'username' => 'required', 'username_for_token' => 'required', 'sender' => 'required', 'otp_template' => 'required', ]; } elseif ($request['gateway'] == 'viatech') { $additional_data = [ 'status' => 'required|in:1,0', 'api_url' => 'required', 'api_key' => 'required', 'sender_id' => 'required', 'otp_template' => 'required', ]; } elseif ($request['gateway'] == 'global_sms') { $additional_data = [ 'status' => 'required|in:1,0', 'user_name' => 'required', 'password' => 'required', 'from' => 'required', 'otp_template' => 'required', ]; } elseif ($request['gateway'] == 'akandit_sms') { $additional_data = [ 'status' => 'required|in:1,0', 'username' => 'required', 'password' => 'required', 'otp_template' => 'required', ]; } elseif ($request['gateway'] == 'sms_to') { $additional_data = [ 'status' => 'required|in:1,0', 'api_key' => 'required', 'sender_id' => 'required', 'otp_template' => 'required', ]; } elseif ($request['gateway'] == 'alphanet_sms') { $additional_data = [ 'status' => 'required|in:1,0', 'api_key' => 'required', 'otp_template' => 'required', ]; } return $request->validate(array_merge($validation, $additional_data));; } } LanguageService.php 0000644 00000015214 15007250627 0010330 0 ustar 00 $data) { if ($data['code'] != $request['code']) { if (!array_key_exists('default', $data)) { $default = array('default' => $data['code'] == 'en'); $data = array_merge($data, $default); } $languageArray[] = $data; $codes[] = $data['code']; } } $codes[] = $request['code']; if (!file_exists(base_path('resources/lang/' . $request['code']))) { mkdir(base_path('resources/lang/' . $request['code']), 0777, true); } $lang_file = fopen(base_path('resources/lang/' . $request['code'] . '/' . 'messages.php'), "w") or die("Unable to open file!"); $read = file_get_contents(base_path('resources/lang/en/messages.php')); fwrite($lang_file, $read); $languageValue = json_decode($language['value'], true); $languageCount = count($languageValue); $id = $languageValue[$languageCount-1]['id']+1; $languageArray[] = [ 'id' => $id, 'name' => $request['name'], 'code' => $request['code'], 'direction' => $request['direction'], 'status' => 0, 'default' => false, ]; return [ 'languages' => $languageArray, 'codes' => $codes, ]; } public function getStatusData(object $request, object $language): array { $languageArray = []; foreach (json_decode($language['value'], true) as $key => $data) { if ($data['code'] == $request['code']) { $lang = [ 'id' => $data['id'], 'name' => $data['name'], 'direction' => $data['direction'] ?? 'ltr', 'code' => $data['code'], 'status' => $data['status'] == 1 ? 0 : 1, 'default' => (array_key_exists('default', $data) ? $data['default'] : $data['code'] == 'en'), ]; } else { $lang = [ 'id' => $data['id'], 'name' => $data['name'], 'direction' => $data['direction'] ?? 'ltr', 'code' => $data['code'], 'status' => $data['status'], 'default' => (array_key_exists('default', $data) ? $data['default'] : $data['code'] == 'en'), ]; } $languageArray[] = $lang; } return $languageArray; } public function getDefaultData(object $request, object $language): array { $languageArray = []; foreach (json_decode($language['value'], true) as $key => $data) { if ($data['code'] == $request['code']) { $lang = [ 'id' => $data['id'], 'name' => $data['name'], 'direction' => $data['direction'] ?? 'ltr', 'code' => $data['code'], 'status' => 1, 'default' => true, ]; } else { $lang = [ 'id' => $data['id'], 'name' => $data['name'], 'direction' => $data['direction'] ?? 'ltr', 'code' => $data['code'], 'status' => $data['status'], 'default' => false, ]; } $languageArray[] = $lang; } return $languageArray; } public function getUpdateData(object $request, object $language): array { $languageArray = []; foreach (json_decode($language['value'], true) as $key => $data) { if ($data['code'] == $request['code']) { $lang = [ 'id' => $data['id'], 'name' => $request['name'], 'direction' => $request['direction'] ?? 'ltr', 'code' => $data['code'], 'status' => 0, 'default' => (array_key_exists('default', $data) ? $data['default'] : (($data['code'] == 'en') ? true : false)), ]; } else { $lang = [ 'id' => $data['id'], 'name' => $data['name'], 'direction' => $data['direction'] ?? 'ltr', 'code' => $data['code'], 'status' => $data['status'], 'default' => (array_key_exists('default', $data) ? $data['default'] : (($data['code'] == 'en') ? true : false)), ]; } $languageArray[] = $lang; } return $languageArray; } public function getLangDelete(object $language, string $code): array { $del_default = false; foreach (json_decode($language['value'], true) as $key => $data) { if ($data['code'] == $code && array_key_exists('default', $data) && $data['default']) { $del_default = true; } } $languageArray = []; foreach (json_decode($language['value'], true) as $key => $data) { if ($data['code'] != $code) { $lang_data = [ 'id' => $data['id'], 'name' => $data['name'], 'direction' => $data['direction'] ?? 'ltr', 'code' => $data['code'], 'status' => ($del_default && $data['code'] == 'en') ? 1 : $data['status'], 'default' => ($del_default && $data['code'] == 'en') ? true : (array_key_exists('default', $data) ? $data['default'] : $data['code'] == 'en'), ]; $languageArray[] = $lang_data; } } $dir = base_path('resources/lang/' . $code); if (File::isDirectory($dir)) { $it = new RecursiveDirectoryIterator($dir, RecursiveDirectoryIterator::SKIP_DOTS); $files = new RecursiveIteratorIterator($it, RecursiveIteratorIterator::CHILD_FIRST); foreach ($files as $file) { if ($file->isDir()) { rmdir($file->getRealPath()); } else { unlink($file->getRealPath()); } } rmdir($dir); } return $languageArray; } } ProductService.php 0000644 00000062642 15007250627 0010234 0 ustar 00 has('colors_active') && $request->has('colors') && count($request['colors']) > 0) { foreach ($request['colors'] as $color) { $color_ = Str::replace('#', '', $color); $img = 'color_image_' . $color_; if ($request->file($img)) { $image = $this->upload(dir: 'product/', format: 'webp', image: $request->file($img)); $colorImageSerial[] = [ 'color' => $color_, 'image_name' => $image, ]; $imageNames[] = $image; }else if($request->has($img)){ $image = $request->$img[0]; $colorImageSerial[] = [ 'color' => $color_, 'image_name' => $image, ]; $imageNames[] = $image; } } } if ($request->file('images')) { foreach ($request->file('images') as $image) { $images = $this->upload(dir: 'product/', format: 'webp', image: $image); $imageNames[] = $images; if($request->has('colors_active') && $request->has('colors') && count($request['colors']) > 0){ $colorImageSerial[] = [ 'color' => null, 'image_name' => $images, ]; } } } if(!empty($request->existing_images)){ foreach ($request->existing_images as $image) { $colorImageSerial[] = [ 'color' => null, 'image_name' => $image, ]; $imageNames[] = $image; } } return [ 'image_names' => $imageNames ?? [], 'colored_image_names' => $colorImageSerial ?? [] ]; } public function getProcessedUpdateImages(object $request, object $product): array { $productImages = json_decode($product->images); $colorImageArray = []; if ($request->has('colors_active') && $request->has('colors') && count($request->colors) > 0) { $dbColorImage = $product->color_image ? json_decode($product->color_image, true) : []; if (!$dbColorImage) { foreach ($productImages as $image) { $dbColorImage[] = [ 'color' => null, 'image_name' => $image, ]; } } $dbColorImageFinal = []; if ($dbColorImage) { foreach ($dbColorImage as $colorImage) { if ($colorImage['color']) { $dbColorImageFinal[] = $colorImage['color']; } } } $inputColors = []; foreach ($request->colors as $color) { $inputColors[] = str_replace('#', '', $color); } $colorImageArray = $dbColorImage; foreach ($inputColors as $color) { if (!in_array($color, $dbColorImageFinal)) { $image = 'color_image_' . $color; if ($request->file($image)) { $imageName = $this->upload(dir: 'product/', format: 'webp', image: $request->file($image)); $productImages[] = $imageName; $colorImages = [ 'color' => $color, 'image_name' => $imageName, ]; $colorImageArray[] = $colorImages; } } } } if ($request->file('images')) { foreach ($request->file('images') as $image) { $imageName = $this->upload(dir: 'product/', format: 'webp', image: $image); $productImages[] = $imageName; if ($request->has('colors_active') && $request->has('colors') && count($request->colors) > 0) { $colorImageArray[] = [ 'color' => null, 'image_name' => $imageName, ]; } } } return [ 'image_names' => $productImages ?? [], 'colored_image_names' => $colorImageArray ?? [] ]; } public function getCategoriesArray(object $request): array { $category = []; if ($request['category_id'] != null) { $category[] = [ 'id' => $request['category_id'], 'position' => 1, ]; } if ($request['sub_category_id'] != null) { $category[] = [ 'id' => $request['sub_category_id'], 'position' => 2, ]; } if ($request['sub_sub_category_id'] != null) { $category[] = [ 'id' => $request['sub_sub_category_id'], 'position' => 3, ]; } return $category; } public function getColorsObject(object $request): bool|string { if ($request->has('colors_active') && $request->has('colors') && count($request['colors']) > 0) { $colors = $request['product_type'] == 'physical' ? json_encode($request['colors']) : json_encode([]); } else { $colors = json_encode([]); } return $colors; } public function getSlug(object $request): string { return Str::slug($request['name'][array_search('en', $request['lang'])], '-') . '-' . Str::random(6); } public function getChoiceOptions(object $request): array { $choice_options = []; if ($request->has('choice')) { foreach ($request->choice_no as $key => $no) { $str = 'choice_options_' . $no; $item['name'] = 'choice_' . $no; $item['title'] = $request->choice[$key]; $item['options'] = explode(',', implode('|', $request[$str])); $choice_options[] = $item; } } return $choice_options; } public function getOptions(object $request): array { $options = []; if ($request->has('colors_active') && $request->has('colors') && count($request->colors) > 0) { $options[] = $request->colors; } if ($request->has('choice_no')) { foreach ($request->choice_no as $no) { $name = 'choice_options_' . $no; $my_str = implode('|', $request[$name]); $options[] = explode(',', $my_str); } } return $options; } public function getCombinations(array $arrays): array { $result = [[]]; foreach ($arrays as $property => $property_values) { $tmp = []; foreach ($result as $result_item) { foreach ($property_values as $property_value) { $tmp[] = array_merge($result_item, [$property => $property_value]); } } $result = $tmp; } return $result; } public function getSkuCombinationView(object $request): string { $colorsActive = ($request->has('colors_active') && $request->has('colors') && count($request['colors']) > 0) ? 1 : 0; $unitPrice = $request['unit_price']; $productName = $request['name'][array_search('en', $request['lang'])]; $options = $this->getOptions(request: $request); $combinations = $this->getCombinations(arrays: $options); return view(Product::SKU_COMBINATION[VIEW], compact('combinations', 'unitPrice', 'colorsActive', 'productName'))->render(); } public function getVariations(object $request, array $combinations): array { $variations = []; if (count($combinations[0]) > 0) { foreach ($combinations as $combination) { $str = ''; foreach ($combination as $k => $item) { if ($k > 0) { $str .= '-' . str_replace(' ', '', $item); } else { if ($request->has('colors_active') && $request->has('colors') && count($request['colors']) > 0) { $color_name = $this->color->where('code', $item)->first()->name; $str .= $color_name; } else { $str .= str_replace(' ', '', $item); } } } $item = []; $item['type'] = $str; $item['price'] = currencyConverter(abs($request['price_' . str_replace('.', '_', $str)])); $item['sku'] = $request['sku_' . str_replace('.', '_', $str)]; $item['qty'] = abs($request['qty_' . str_replace('.', '_', $str)]); $variations[] = $item; } } return $variations; } public function getTotalQuantity(array $variations): int { $sum = 0; foreach ($variations as $item) { if (isset($item['qty'])) { $sum += $item['qty']; } } return $sum; } public function getCategoryDropdown(object $request, object $categories): string { $dropdown = ''; foreach ($categories as $row) { if ($row->id == $request['sub_category']) { $dropdown .= ''; } else { $dropdown .= ''; } } return $dropdown; } public function deleteImages(object $product): bool { foreach (json_decode($product['images']) as $image) { $this->delete(filePath: '/product/' . $image); } $this->delete(filePath: '/product/thumbnail/' . $product['thumbnail']); return true; } public function deleteImage(object $request, object $product): array { $colors = json_decode($product['colors']); $color_image = json_decode($product['color_image']); $images = []; $color_images = []; if($colors && $color_image){ foreach($color_image as $img){ if($img->color != $request['color'] && $img->image_name != $request['name']){ $color_images[] = [ 'color' =>$img->color!=null ? $img->color:null, 'image_name' =>$img->image_name, ]; } } } foreach (json_decode($product['images']) as $image) { if ($image != $request['name']) { $images[] = $image; } } return [ 'images' => $images, 'color_images' => $color_images ]; } public function getAddProductData(object $request, string $addedBy): array { $processedImages = $this->getProcessedImages(request: $request); //once the images are processed do not call this function again just use the variable $combinations = $this->getCombinations($this->getOptions(request: $request)); $variations = $this->getVariations(request: $request, combinations: $combinations); $stockCount = count($combinations[0]) > 0 ? $this->getTotalQuantity(variations: $variations) : (integer)$request['current_stock']; $digitalFile = ''; if ($request['product_type'] == 'digital' && $request['digital_product_type'] == 'ready_product') { $digitalFile = $this->fileUpload(dir: 'product/digital-product/', format: $request['digital_file_ready']->getClientOriginalExtension(), file: $request['digital_file_ready']); } return [ 'added_by' => $addedBy, 'user_id' => $addedBy == 'admin' ? auth('admin')->id() : auth('seller')->id(), 'name' => $request['name'][array_search('en', $request['lang'])], 'code' => $request['code'], 'slug' => $this->getSlug($request), 'category_ids' => json_encode($this->getCategoriesArray(request: $request)), 'category_id' => $request['category_id'], 'sub_category_id' => $request['sub_category_id'], 'sub_sub_category_id' => $request['sub_sub_category_id'], 'brand_id' => $request['brand_id'], 'unit' => $request['product_type'] == 'physical' ? $request['unit'] : null, 'digital_product_type' => $request['product_type'] == 'digital' ? $request['digital_product_type'] : null, 'product_type' => $request['product_type'], 'details' => $request['description'][array_search('en', $request['lang'])], 'colors' => $this->getColorsObject(request: $request), 'choice_options' => $request['product_type'] == 'physical' ? json_encode($this->getChoiceOptions(request: $request)) : json_encode([]), 'variation' => $request['product_type'] == 'physical' ? json_encode($variations) : json_encode([]), 'unit_price' => currencyConverter(amount: $request['unit_price']), 'purchase_price' => 0, 'tax' => $request['tax_type'] == 'flat' ? currencyConverter(amount: $request['tax']) : $request['tax'], 'tax_type' => $request['tax_type'], 'tax_model' => $request['tax_model'], 'discount' => $request['discount_type'] == 'flat' ? currencyConverter(amount: $request['discount']) : $request['discount'], 'discount_type' => $request['discount_type'], 'attributes' => $request['product_type'] == 'physical' ? json_encode($request['choice_attributes']) : json_encode([]), 'current_stock' => $request['product_type'] == 'physical' ? abs($stockCount) : 999999999, 'minimum_order_qty' => $request['minimum_order_qty'], 'video_provider' => 'youtube', 'video_url' => $request['video_url'], 'status' => $addedBy == 'admin' ? 1 : 0, 'request_status' => $addedBy == 'admin' ? 1 : (getWebConfig(name: 'new_product_approval') == 1 ? 0 : 1), 'shipping_cost' => $request['product_type'] == 'physical' ? currencyConverter(amount: $request['shipping_cost']) : 0, 'multiply_qty' => ($request['product_type'] == 'physical') ? ($request['multiply_qty'] == 'on' ? 1 : 0) : 0, //to be changed in form multiply_qty 'color_image' => json_encode($processedImages['colored_image_names']), 'images' => json_encode($processedImages['image_names']), 'thumbnail' =>$request->has('image')? $this->upload(dir: 'product/thumbnail/', format: 'webp', image: $request['image']):$request->existing_thumbnail, 'digital_file_ready' => $digitalFile, 'meta_title' => $request['meta_title'], 'meta_description' => $request['meta_description'], 'meta_image' => $request->has('meta_image') ?$this->upload(dir: 'product/meta/', format: 'webp', image: $request['meta_image']) : $request->existing_meta_image, ]; } public function getUpdateProductData(object $request, object $product, string $updateBy): array { $processedImages = $this->getProcessedUpdateImages(request: $request, product: $product); $combinations = $this->getCombinations($this->getOptions(request: $request)); $variations = $this->getVariations(request: $request, combinations: $combinations); $stockCount = count($combinations[0]) > 0 ? $this->getTotalQuantity(variations: $variations) : (integer)$request['current_stock']; $digitalFile = null; if ($request['product_type'] == 'digital') { if ($request['digital_product_type'] == 'ready_product' && $request->hasFile('digital_file_ready')) { $digitalFile = $this->update(dir: 'product/digital-product/', oldImage: $product['digital_file_ready'], format: $request['digital_file_ready']->getClientOriginalExtension(), image: $request['digital_file_ready'], fileType: 'file'); } elseif (($request['digital_product_type'] == 'ready_after_sell') && $product['digital_file_ready']) { $this->delete(filePath: 'product/digital-product/' . $product['digital_file_ready']); } } elseif ($request['product_type'] == 'physical' && $product['digital_file_ready']) { $this->delete(filePath: 'product/digital-product/' . $product['digital_file_ready']); } $dataArray = [ 'name' => $request['name'][array_search('en', $request['lang'])], 'code' => $request['code'], 'product_type' => $request['product_type'], 'category_ids' => json_encode($this->getCategoriesArray(request: $request)), 'category_id' => $request['category_id'], 'sub_category_id' => $request['sub_category_id'], 'sub_sub_category_id' => $request['sub_sub_category_id'], 'brand_id' => $request['brand_id'], 'unit' => $request['product_type'] == 'physical' ? $request['unit'] : null, 'digital_product_type' => $request['product_type'] == 'digital' ? $request['digital_product_type'] : null, 'details' => $request['description'][array_search('en', $request['lang'])], 'colors' => $this->getColorsObject(request: $request), 'choice_options' => $request['product_type'] == 'physical' ? json_encode($this->getChoiceOptions(request: $request)) : json_encode([]), 'variation' => $request['product_type'] == 'physical' ? json_encode($variations) : json_encode([]), 'unit_price' => currencyConverter(amount: $request['unit_price']), 'purchase_price' => 0, 'tax' => $request['tax_type'] == 'flat' ? currencyConverter(amount: $request['tax']) : $request['tax'], 'tax_type' => $request['tax_type'], 'tax_model' => $request['tax_model'], 'discount' => $request['discount_type'] == 'flat' ? currencyConverter(amount: $request['discount']) : $request['discount'], 'discount_type' => $request['discount_type'], 'attributes' => $request['product_type'] == 'physical' ? json_encode($request['choice_attributes']) : json_encode([]), 'current_stock' => $request['product_type'] == 'physical' ? abs($stockCount) : 999999999, 'minimum_order_qty' => $request['minimum_order_qty'], 'video_provider' => 'youtube', 'video_url' => $request['video_url'], 'shipping_cost' => $request['product_type'] == 'physical' ? (getWebConfig(name: 'product_wise_shipping_cost_approval')==1 && $product->shipping_cost == currencyConverter($request->shipping_cost) ? $product->shipping_cost : currencyConverter(amount: $request['shipping_cost'])) : 0, 'multiply_qty' => ($request['product_type'] == 'physical') ? ($request['multiply_qty'] == 'on' ? 1 : 0) : 0, 'color_image' => json_encode($processedImages['colored_image_names']), 'images' => json_encode($processedImages['image_names']), 'digital_file_ready' => $digitalFile, 'meta_title' => $request['meta_title'], 'meta_description' => $request['meta_description'], 'meta_image' => $request->file('meta_image') ? $this->update(dir: 'product/meta/', oldImage: $product['meta_image'], format: 'png', image: $request['meta_image']) : $product['meta_image'], ]; if ($request->file('image')) { $dataArray += [ 'thumbnail' => $this->update(dir: 'product/thumbnail/', oldImage: $product['thumbnail'], format: 'webp', image: $request['image'], fileType: 'image') ]; } if($updateBy=='seller' && getWebConfig(name: 'product_wise_shipping_cost_approval')==1 && $product->shipping_cost != currencyConverter($request->shipping_cost)) { $dataArray += [ 'temp_shipping_cost' => currencyConverter($request->shipping_cost), 'is_shipping_cost_updated' => 0 ]; } if($updateBy=='seller' && $product->request_status == 2){ $dataArray += [ 'request_status' => 0 ]; } if($updateBy=='admin' && $product->added_by == 'seller' && $product->request_status == 2){ $dataArray += [ 'request_status' => 1 ]; } return $dataArray; } public function getImportBulkProductData(object $request, string $addedBy): array { try { $collections = (new FastExcel)->import($request->file('products_file')); } catch (\Exception $exception) { return [ 'status' => false, 'message' => translate('you_have_uploaded_a_wrong_format_file') . ',' . translate('please_upload_the_right_file'), 'products' => [] ]; } $columnKey = [ 'name', 'category_id', 'sub_category_id', 'sub_sub_category_id', 'brand_id', 'unit', 'minimum_order_qty', 'refundable', 'youtube_video_url', 'unit_price', // 'purchase_price', 'tax', 'discount', 'discount_type', 'current_stock', 'details', 'thumbnail' ]; $skip = ['youtube_video_url', 'details', 'thumbnail']; if (count($collections) <= 0) { return [ 'status' => false, 'message' => translate('you_need_to_upload_with_proper_data'), 'products' => [] ]; } $products = []; foreach ($collections as $collection) { foreach ($collection as $key => $value) { if ($key != "" && !in_array($key, $columnKey)) { return [ 'status' => false, 'message' => translate('Please_upload_the_correct_format_file'), 'products' => [] ]; } if ($key != "" && $value === "" && !in_array($key, $skip)) { return [ 'status' => false, 'message' => translate('Please fill ' . $key . ' fields'), 'products' => [] ]; } } $thumbnail = explode('/', $collection['thumbnail']); $products[] = [ 'name' => $collection['name'], 'slug' => Str::slug($collection['name'], '-') . '-' . Str::random(6), 'category_ids' => json_encode([['id' => (string)$collection['category_id'], 'position' => 1], ['id' => (string)$collection['sub_category_id'], 'position' => 2], ['id' => (string)$collection['sub_sub_category_id'], 'position' => 3]]), 'category_id' => $collection['category_id'], 'sub_category_id' => $collection['sub_category_id'], 'sub_sub_category_id' => $collection['sub_sub_category_id'], 'brand_id' => $collection['brand_id'], 'unit' => $collection['unit'], 'minimum_order_qty' => $collection['minimum_order_qty'], 'refundable' => $collection['refundable'], 'unit_price' => $collection['unit_price'], 'purchase_price' => 0, 'tax' => $collection['tax'], 'discount' => $collection['discount'], 'discount_type' => $collection['discount_type'], 'shipping_cost' => 0, 'current_stock' => $collection['current_stock'], 'details' => $collection['details'], 'video_provider' => 'youtube', 'video_url' => $collection['youtube_video_url'], 'images' => json_encode(['def.png']), 'thumbnail' => $thumbnail[1] ?? $thumbnail[0], 'status' => 0, 'request_status' => 1, 'colors' => json_encode([]), 'attributes' => json_encode([]), 'choice_options' => json_encode([]), 'variation' => json_encode([]), 'featured_status' => 0, 'added_by' => $addedBy, 'user_id' => $addedBy == 'admin' ? auth('admin')->id() : auth('seller')->id(), 'created_at' => now(), ]; } return [ 'status' => true, 'message' => count($products) . ' - ' . translate('products_imported_successfully'), 'products' => $products ]; } public function checkLimitedStock(object $products):bool { foreach ($products as $product) { if ($product['product_type'] == 'physical' && $product['current_stock'] < (int)getWebConfig('stock_limit')) { return true; } } return false; } } OrderService.php 0000644 00000003361 15007250627 0007660 0 ustar 00 $orderId, 'customer_id' => $userId, 'customer_type' => 'customer', 'payment_status' => 'paid', 'order_status' => 'delivered', 'seller_id' => $addedBy =='seller' ? auth('seller')->id() : auth('admin')->id(), 'seller_is' => $addedBy, 'payment_method' => $paymentType, 'order_type' => 'POS', 'checked' =>1, 'extra_discount' =>$cart['ext_discount'] ?? 0, 'extra_discount_type' => $cart['ext_discount_type'] ?? null, 'order_amount' => currencyConverter($amount), 'discount_amount' => $cart['coupon_discount'] ?? 0, 'coupon_code' => $cart['coupon_code']??null, 'discount_type' => (isset($cart['coupon_code']) && $cart['coupon_code']) ? 'coupon_discount' : NULL, 'coupon_discount_bearer' => $cart['coupon_bearer'] ?? 'inhouse', 'created_at' => now(), 'updated_at' => now(), ]; } public function getCheckIsOrderOnlyDigital(object $order): bool { $isOrderOnlyDigital = true; if($order->orderDetails) { foreach ($order->orderDetails as $detail) { $product = json_decode($detail->product_details); if (isset($product->product_type) && $product->product_type == 'physical') { $isOrderOnlyDigital = false; } } } return $isOrderOnlyDigital; } } DeliveryManTransactionService.php 0000644 00000001504 15007250627 0013227 0 ustar 00 $id, 'user_id' => $addedBy == 'seller' ? auth('seller')->id() : 0, 'user_type' => $addedBy, 'credit' => currencyConverter($amount), 'transaction_id' => Uuid::uuid4(), 'transaction_type' => $transactionType, 'created_at' => now(), 'updated_at' => now(), ]; } } DeliveryManWalletService.php 0000644 00000002047 15007250627 0012175 0 ustar 00 $id, 'current_balance' => currencyConverter($deliverymanCharge) ?? 0, 'cash_in_hand' => currencyConverter($cashInHand), 'pending_withdraw' => 0, 'total_withdraw' => 0, ]; } public function getDeliveryManWalletData(object $request, object $wallet, object $withdraw):array { return [ 'total_withdraw' => $request['approved'] == 1 ? ($wallet['total_withdraw'] + currencyConverter($withdraw['amount'])) : $wallet['total_withdraw'], 'pending_withdraw' => $wallet['pending_withdraw'] - currencyConverter($withdraw['amount']), 'current_balance' => $request['approved'] == 1 ? ($wallet['current_balance'] - currencyConverter($withdraw['amount'])) : $wallet['current_balance'], ]; } } MailService.php 0000644 00000003327 15007250627 0007471 0 ustar 00 $request->get('status', 0), "name" => $request['name'], "host" => $request['host'], "driver" => $request['driver'], "port" => $request['port'], "username" => $request['username'], "email_id" => $request['email'], "encryption" => $request['encryption'], "password" => $request['password'] ]; } public function getMailData(object|array $mailData): array { return [ "status" => 0, "name" => $mailData['name'], "host" => $mailData['host'], "driver" => $mailData['driver'], "port" => $mailData['port'], "username" => $mailData['username'], "email_id" => $mailData['email_id'], "encryption" => $mailData['encryption'], "password" => $mailData['password'] ]; } public function sendMail(object $request): int|string { $responseFlag = 0; try { $emailServicesSmtp = getWebConfig(name: 'mail_config'); if ($emailServicesSmtp['status'] == 0) { $emailServicesSmtp = getWebConfig(name: 'mail_config_sendgrid'); } if ($emailServicesSmtp['status'] == 1) { Mail::to($request->email)->send(new TestEmailSender()); $responseFlag = 1; } } catch (Exception $exception) { $responseFlag = 2; } return $responseFlag; } } BannerService.php 0000644 00000005205 15007250627 0010011 0 ustar 00 file('image') ? $this->update(dir:'banner/', oldImage:$image, format: 'webp', image: $request->file('image')) : $image; }else { $imageName = $this->upload(dir:'banner/', format: 'webp', image: $request->file('image')); } return [ 'banner_type' => $request['banner_type'], 'resource_type' => $request['resource_type'], 'resource_id' => $request[$request->resource_type . '_id'], 'theme' => theme_root_path(), 'title' => $request['title'], 'sub_title' => $request['sub_title'], 'button_text' => $request['button_text'], 'background_color' => $request['background_color'], 'url' => $request['url'], 'photo' => $imageName, ]; } public function getBannerTypes(): array { $bannerTypes = []; if (theme_root_path() == 'default') { $bannerTypes = [ "Main Banner" => translate('main_Banner'), "Popup Banner" => translate('popup_Banner'), "Footer Banner" => translate('footer_Banner'), "Main Section Banner" => translate('main_Section_Banner') ]; }elseif (theme_root_path() == 'theme_aster') { $bannerTypes = [ "Main Banner" => translate('main_Banner'), "Popup Banner" => translate('popup_Banner'), "Footer Banner" => translate('footer_Banner'), "Main Section Banner" => translate('main_Section_Banner'), "Header Banner" => translate('header_Banner'), "Sidebar Banner" => translate('sidebar_Banner'), "Top Side Banner" => translate('top_Side_Banner'), ]; }elseif (theme_root_path() == 'theme_fashion') { $bannerTypes = [ "Main Banner" => translate('main_Banner'), "Popup Banner" => translate('popup_Banner'), "Promo Banner Left" => translate('promo_banner_left'), "Promo Banner Middle Top" => translate('promo_banner_middle_top'), "Promo Banner Middle Bottom" => translate('promo_banner_middle_bottom'), "Promo Banner Right" => translate('promo_banner_right'), "Promo Banner Bottom" => translate('promo_banner_bottom'), ]; } return $bannerTypes; } } FeaturesSectionService.php 0000644 00000004756 15007250627 0011721 0 ustar 00 $value) { $image = ''; if (!empty($request['features_section_bottom_icon']) && isset($request['features_section_bottom_icon'][$key])) { $image = $this->upload(dir: 'banner/', format: 'webp', image: $request['features_section_bottom_icon'][$key]); } $bottomSectionData[] = [ 'title' => $request['features_section_bottom']['title'][$key], 'subtitle' => $request['features_section_bottom']['subtitle'][$key], 'icon' => $image, ]; } return $bottomSectionData; } public function getDeleteData(object $request, object $data): array { $newArray = []; foreach(json_decode($data->value) as $item) { if($request->title != $item->title && $request->subtitle != $item->subtitle){ $newArray[] = $item; }else{ $this->delete(filePath: "/banner/" . $item->icon); } } return $newArray; } public function getReliabilityUpdateData(object $request, object $data): array { $image = ''; $item = []; if ($request->has('image')) { $image = $this->upload(dir: 'company-reliability/', format: 'webp', image: $request->file('image')); } foreach (json_decode($data['value'], true) as $key => $data) { if ($data['item'] == $request['item']) { $item_data = [ 'item' => $request['item'], 'title' => $request->title ?? '', 'image' => $image === '' ? $data['image'] : $image, 'status' => $request->status ?? 0, ]; } else { $item_data = [ 'item' => $data['item'], 'title' => $data['title'], 'image' => $data['image'] , 'status' => $data['status'] ??0, ]; } $item[] = $item_data; } return $item; } } AttributeService.php 0000644 00000000074 15007250627 0010546 0 ustar 00 $addedBy == 'seller' ? auth('seller')->id() : auth('admin')->id(), 'creator_type' => $addedBy, 'title' => $request['title'], 'duration' => $request['duration'], 'cost' => currencyConverter($request['cost']), 'created_at' => now(), 'updated_at' => now() ]; } } DeliveryManService.php 0000644 00000011220 15007250627 0011015 0 ustar 00 $addedBy == 'seller' ? auth('seller')->id() : 0, 'f_name' => $request['f_name'], 'l_name' => $request['l_name'], 'address' => $request['address'], 'email' => $request['email'], 'country_code' => '+'.$request['country_code'], 'phone' => $request['phone'], 'identity_number' => $request['identity_number'], 'identity_type' => $request['identity_type'], 'password' => bcrypt($request['password']), 'created_at' => now(), 'updated_at' => now(), ]; } /** * @param object $request * @param string $addedBy * @return array * This array return column name and there value when add delivery man */ public function getDeliveryManAddData(object $request, string $addedBy): array { $identityImage = []; if (!empty($request->file('identity_image'))) { foreach ($request->identity_image as $image) { $identityImage[] = $this->upload(dir: 'delivery-man/', format: 'webp', image: $image); } $identityImage = json_encode($identityImage); } else { $identityImage = json_encode([]); } $commonArray = $this->getCommonDeliveryManData(request: $request, addedBy: $addedBy); $imageArray = [ 'identity_image' => $identityImage, 'image' => $this->upload(dir: 'delivery-man/', format: 'webp', image: $request->file('image')), ]; return array_merge($commonArray,$imageArray); } /** * @param object $request * @param string $addedBy * @param string $identityImages * @param string $deliveryManImage * @return array * This array return column name and there value when update delivery man */ public function getDeliveryManUpdateData(object $request,string $addedBy,string $identityImages,string $deliveryManImage): array { if (!empty($request->file('identity_image'))) { foreach (json_decode($identityImages, true) as $image) { $this->delete(filePath: 'delivery-man/' . $image); } $identityImage = []; foreach ($request['identity_image'] as $img) { $identityImage[] = $this->upload('delivery-man/', 'webp', $img); } $identityImage = json_encode($identityImage); } else { $identityImage = $identityImages; } if($request->has('image')){ $image = $this->update(dir: 'delivery-man/', oldImage: $deliveryManImage, format: 'webp', image: $request->file('image')); }else{ $image = $deliveryManImage; } $commonArray = $this->getCommonDeliveryManData(request: $request, addedBy: $addedBy); $imageArray = [ 'identity_image' => $identityImage, 'image' => $image, ]; return array_merge($commonArray, $imageArray); } function deleteImages(object $deliveryMan): bool { $this->delete(filePath: 'delivery-man/' . $deliveryMan['image']); foreach (json_decode($deliveryMan['identity_image'], true) as $image) { $this->delete(filePath: 'delivery-man/' . $image); } return true; } public function getOrderHistoryListExportData(object $request, object $deliveryMan, object $orders): array { $orders->each(function ($order) { $totalQty = $order->details->sum('qty'); $order->total_qty = $totalQty; }); return [ 'delivery_man' => $deliveryMan, 'orders' => $orders, 'total_earn' => $this->delivery_man_total_earn($deliveryMan['id']), 'withdrawable_balance' => $this->delivery_man_withdrawable_balance($deliveryMan['id']), 'search' => $request['searchValue'], 'type' => $request['type'], ]; } public function checkConditions():bool { $shippingMethod = getWebConfig(name: 'shipping_method'); if($shippingMethod == 'inhouse_shipping') { Toastr::warning(translate('access_denied!!')); return false; } return true; } } EmergencyContactService.php 0000644 00000001363 15007250627 0012037 0 ustar 00 $id, 'country_code' => $request['country_code'], 'name' => $request['name'], 'phone' => $request['phone'], 'status' => 1, ]; } public function getEmergencyContactUpdateData(object $request):array { return [ 'country_code' => $request['country_code'], 'name' => $request['name'], 'phone' => $request['phone'], 'updated_at' =>now(), ]; } } RefundStatusService.php 0000644 00000005234 15007250627 0011235 0 ustar 00 $refund['id'], 'change_by' => $changeBy, 'change_by_id' => $changeBy === 'seller' ? auth('seller')->id() : 1, 'status' => $request['refund_status'], 'message' => $request['approved_note'] ?? $request['rejected_note'] ?? null, 'approved_note' => $request['approved_note'] ?? null, 'rejected_note' => $request['rejected_note'] ?? null, ]; } public function getRefundStatusProcessData(object $request, object $orderDetails, object $refund, string|float|int $loyaltyPoint): array { $refundStatus = [ 'refund_request_id' => $refund['id'], 'change_by' => 'admin', 'change_by_id' => auth('admin')->id(), 'status' => $request['refund_status'], ]; $refundData = []; if ($request['refund_status'] == 'pending') { $orderDetails['refund_request'] = 1; } elseif ($request['refund_status'] == 'approved') { $orderDetails['refund_request'] = 2; $refundData['approved_note'] = $request['approved_note']; $refundStatus['message'] = $request['approved_note']; } elseif ($request['refund_status'] == 'rejected') { $orderDetails['refund_request'] = 3; $refundData['rejected_note'] = $request['rejected_note']; $refundStatus['message'] = $request['rejected_note']; } elseif ($request['refund_status'] == 'refunded') { $orderDetails['refund_request'] = 4; $refundData['payment_info'] = $request['payment_info']; $refundStatus['message'] = $request['payment_info']; $walletAddRefund = getWebConfig(name: 'wallet_add_refund'); if ($walletAddRefund == 1 && $request['payment_method'] == 'customer_wallet') { $this->createWalletTransaction(user_id: $refund['customer_id'], amount: usdToDefaultCurrency(amount: $refund['amount']), transaction_type: 'order_refund', reference: 'order_refund'); } } $refundData['status'] = $request['refund_status']; $refundData['change_by'] = 'admin'; return [ 'refund' => $refundData, 'orderDetails' => $orderDetails, 'refundStatus' => $refundStatus, ]; } } CategoryShippingCostService.php 0000644 00000001571 15007250627 0012716 0 ustar 00 $addedBy === 'seller' ? auth('seller')->id() : 0, 'category_id' => $id, 'cost' => 0, ]; } /** * @param int $key * @param int|string $id * @param object $request * @return array */ public function getUpdateCategoryWiseShippingData(int $key, int|string $id, object $request): array { return [ 'cost' => currencyConverter($request['cost'][$key], 'usd'), 'multiply_qty' => isset($request['multiplyQTY']) ? (in_array($id, $request['multiplyQTY']) ? 1 : 0) : 0 ]; } } PasswordResetService.php 0000644 00000000515 15007250627 0011410 0 ustar 00 $identity, 'token' => $token, 'user_type'=>$userType, 'created_at' => now(), ]; } } FlashDealService.php 0000644 00000004311 15007250627 0010424 0 ustar 00 $request['title'][array_search('en', $request['lang'])], 'start_date' => $request['start_date'], 'end_date' => $request['end_date'], 'background_color' => $request['background_color'], 'text_color' => $request['text_color'], 'banner' => $request->has('image') ? $this->upload(dir:'deal/', format: 'webp', image: $request->file('image')) : 'def.webp', 'slug' => Str::slug($request['title'][array_search('en', $request['lang'])]), 'featured' => $request['featured'] == 1 ? 1 : 0, 'deal_type' => $request['deal_type'] == 'flash_deal' ? 'flash_deal' : 'feature_deal', 'status' => 0, 'created_at' => now(), 'updated_at' => now(), ]; } public function getUpdateData(object $request, object $data): array { return [ 'title' => $request['title'][array_search('en', $request['lang'])], 'start_date' => $request['start_date'], 'end_date' => $request['end_date'], 'background_color' => $request['background_color'], 'text_color' => $request['text_color'], 'banner' => $request->file('image') ? $this->update('deal/', $data['banner'],'webp', $request->file('image')) : $data['banner'], 'slug' => Str::slug($request['title'][array_search('en', $request->lang)]), 'featured' => $request['featured'] == 'on' ? 1 : 0, 'deal_type' => $request['deal_type'] == 'flash_deal' ? 'flash_deal' : 'feature_deal', 'updated_at' => now(), ]; } public function getAddProduct(object $request, string|int $id): array { return [ 'product_id' => $request['product_id'], 'flash_deal_id' => $id, 'discount' => $request['discount'] ?? 0, 'discount_type' => $request['discount_type'] ?? 0, 'created_at' => now(), 'updated_at' => now(), ]; } } ContactService.php 0000644 00000001702 15007250627 0010175 0 ustar 00 $request['name'], 'email' => $request['email'], 'mobile_number' => $request['mobile_number'], 'subject' => $request['subject'], 'message' => $request['message'], ]; } public function getMailData(object $request, array $data, object $contact, string $companyName): array { Mail::send('email-templates.customer-message', $data, function ($message) use ($contact, $request, $companyName) { $message->to($contact['email'], $companyName) ->subject($request['subject']); }); return [ 'reply' => json_encode([ 'subject' => $request['subject'], 'body' => $request['mail_body'] ]) ]; } } PushNotificationService.php 0000644 00000005123 15007250627 0012071 0 ustar 00 $customer, 'seller' => $vendor, 'delivery_man' => $delivery_man, }; } public function getAddData(string $userType, string $value):array { return [ 'user_type' => $userType, 'key' => $value, 'message' => 'customize your' . ' ' . str_replace('_', ' ', $value) . ' ' . 'message', 'created_at' => now(), 'updated_at' => now(), ]; } public function getUpdateData(object $request,string $message,string $status,string $lang):array { return [ 'message'=>$request->$message[array_search('en', $request->$lang)], 'status'=>$request->$status ?? false, 'updated_at'=>now(), ]; } } PrioritySetupService.php 0000644 00000011717 15007250627 0011453 0 ustar 00 $request->get('custom_sorting_status', 0), 'sort_by' => $request['sort_by'] ?? null, ]; } public function updateTopVendorPrioritySetupData($request): array { return [ 'custom_sorting_status' => $request->get('custom_sorting_status', 0), 'minimum_rating_point' => $request['minimum_rating_point'] ?? null, 'sort_by' => $request['sort_by'] ?? null, 'vacation_mode_sorting' => $request['vacation_mode_sorting'] ?? null, 'temporary_close_sorting' => $request['temporary_close_sorting'] ?? null, ]; } public function updateVendorPrioritySetupData($request): array { return [ 'custom_sorting_status' => $request->get('custom_sorting_status', 0), 'sort_by' => $request['sort_by'] ?? null, 'vacation_mode_sorting' => $request['vacation_mode_sorting'] ?? null, 'temporary_close_sorting' => $request['temporary_close_sorting'] ?? null, ]; } public function updateVendorProductListPrioritySetupData($request): array { return [ 'custom_sorting_status' => $request->get('custom_sorting_status', 0), 'sort_by' => $request['sort_by'] ?? null, 'out_of_stock_product' => $request['out_of_stock_product'] ?? null, ]; } public function updateFeaturedProductPrioritySetupData($request): array { return [ 'custom_sorting_status' => $request->get('custom_sorting_status', 0), 'sort_by' => $request['sort_by'] ?? null, 'out_of_stock_product' => $request['out_of_stock_product'] ?? null, 'temporary_close_sorting' => $request['temporary_close_sorting'] ?? null, ]; } public function updateFeatureDealPrioritySetupData($request): array { return [ 'custom_sorting_status' => $request->get('custom_sorting_status', 0), 'sort_by' => $request['sort_by'] ?? null, 'out_of_stock_product' => $request['out_of_stock_product'] ?? null, 'temporary_close_sorting' => $request['temporary_close_sorting'] ?? null, ]; } public function updateFlashDealPrioritySetupData($request): array { return [ 'custom_sorting_status' => $request->get('custom_sorting_status', 0), 'sort_by' => $request['sort_by'] ?? null, 'out_of_stock_product' => $request['out_of_stock_product'] ?? null, 'temporary_close_sorting' => $request['temporary_close_sorting'] ?? null, ]; } public function updateNewArrivalProductListPrioritySetupData($request): array { return [ 'custom_sorting_status' => $request->get('custom_sorting_status', 0), 'duration' => $request['duration'] ?? 1, 'duration_type' => $request['duration_type'] ?? 'month', 'sort_by' => $request['sort_by'] ?? null, 'out_of_stock_product' => $request['out_of_stock_product'] ?? null, 'temporary_close_sorting' => $request['temporary_close_sorting'] ?? null, ]; } public function updateTopRatedProductListPrioritySetupData($request): array { return [ 'custom_sorting_status' => $request->get('custom_sorting_status', 0), 'minimum_rating_point' => $request['minimum_rating_point'] ?? null, 'sort_by' => $request['sort_by'] ?? null, 'out_of_stock_product' => $request['out_of_stock_product'] ?? null, 'temporary_close_sorting' => $request['temporary_close_sorting'] ?? null, ]; } public function updateCategoryWiseProductListPrioritySetupData($request): array { return [ 'custom_sorting_status' => $request->get('custom_sorting_status', 0), 'sort_by' => $request['sort_by'] ?? null, 'out_of_stock_product' => $request['out_of_stock_product'] ?? null, 'temporary_close_sorting' => $request['temporary_close_sorting'] ?? null, ]; } public function updateBestSellingProductListPrioritySetupData($request): array { return [ 'custom_sorting_status' => $request->get('custom_sorting_status', 0), 'sort_by' => $request['sort_by'] ?? null, 'out_of_stock_product' => $request['out_of_stock_product'] ?? null, 'temporary_close_sorting' => $request['temporary_close_sorting'] ?? null, ]; } public function updateProductListPrioritySetupData($request): array { return [ 'custom_sorting_status' => $request->get('custom_sorting_status', 0), 'out_of_stock_product' => $request['out_of_stock_product'] ?? null, 'temporary_close_sorting' => $request['temporary_close_sorting'] ?? null, ]; } } VendorRegistrationSettingService.php 0000644 00000005350 15007250627 0013773 0 ustar 00 $request['title'], 'sub_title' => $request['sub_title'], 'image' => $this->getImageDataProcess(request: $request,image:$image,requestImageName: 'image'), ]; } public function getBusinessProcessUpdateData(object $request):array { return [ 'title' => $request['title'], 'sub_title' => $request['sub_title'], ]; } public function getBusinessProcessStepUpdateData(object $request,$businessProcessStep):array { $array = []; for($index=1;$index<=3;$index++){ $image = (isset($businessProcessStep[$index-1]) ? $businessProcessStep[$index-1]?->image : null); $array[]=[ 'title' => $request['section_'.$index.'_title'], 'description' => $request['section_'.$index.'_description'], 'image' => $this->getImageDataProcess(request: $request,image: $image,requestImageName: 'section_'.$index.'_image'), ]; } return $array; } protected function getImageDataProcess($request ,$image,$requestImageName):string|null { if ($image) { $imageName = $request->file($requestImageName) ? $this->update(dir:'vendor-registration-setting/', oldImage:$image, format: 'webp', image: $request->file($requestImageName)) : $image; }else { $imageName = $request->file($requestImageName) ? $this->upload(dir:'vendor-registration-setting/', format: 'webp', image: $request->file($requestImageName)) :null; } return $imageName; } public function getVendorRegistrationReasonData(object $request):array { return [ 'title' => $request['title'], 'description' => $request['description'], 'priority' => $request['priority'], 'status' => $request->get('status',0), ]; } public function getDownloadVendorAppUpdateData(object $request,$image):array { return [ 'title' => $request['title'], 'sub_title' => $request['sub_title'], 'image' => $this->getImageDataProcess(request: $request,image:$image,requestImageName: 'image'), 'download_google_app' => $request['download_google_app'], 'download_google_app_status' => $request->get('download_google_app_status',0), 'download_apple_app' => $request['download_apple_app'], 'download_apple_app_status' => $request->get('download_apple_app_status',0), ]; } } CategoryService.php 0000644 00000004172 15007250627 0010363 0 ustar 00 $request['name'][array_search('en', $request['lang'])], 'slug' => Str::slug($request['name'][array_search('en', $request['lang'])]), 'icon' => $this->upload('category/', 'webp', $request->file('image')), 'parent_id' => $request->get('parent_id', 0), 'position' => $request['position'], 'priority' => $request['priority'], ]; } public function getUpdateData(object $request, object $data): array { $image = $request->file('image') ? $this->update('category/', $data['image'], 'webp', $request->file('image')) : $data['icon']; return [ 'name' => $request['name'][array_search('en', $request['lang'])], 'slug' => Str::slug($request['name'][array_search('en', $request['lang'])]), 'icon' => $image, 'priority' => $request['priority'], ]; } public function getSelectOptionHtml(object $data): string { $output = ''; foreach ($data as $row) { $output .= ''; } return $output; } public function deleteImages(object $data): bool { if ($data->childes) { foreach ($data->childes as $child) { if ($child->childes) { foreach ($child->childes as $item) { if ($item['icon']) { $this->delete('category/' . $item['icon']); } } } if ($child['icon']) { $this->delete('category/' . $child['icon']); } } } if ($data['icon']) { $this->delete('category/' . $data['icon']); } return true; } } SocialLoginService.php 0000644 00000003651 15007250627 0011012 0 ustar 00 $data) { if ($data['login_medium'] == $service) { $cred = [ 'login_medium' => $service, 'client_id' => $request['client_id'], 'client_secret' => $request['client_secret'], 'status' => $request['status'] ?? 0, ]; $credentialArray[] = $cred; } else { $credentialArray[] = $data; } } return $credentialArray; } public function getAppleData(object $request, object $appleLogin, string $service): array { $credentialArray = []; if ($request->hasfile('service_file')) { $fileName = $this->fileUpload(dir: 'apple-login/', format: 'p8', file: $request->file('service_file')); } foreach (json_decode($appleLogin['value'], true) as $key => $data) { if ($data['login_medium'] == $service) { $cred = [ 'login_medium' => $service, 'client_id' => $request['client_id'], 'client_secret' => $request['client_secret'], 'status' => $request['status'] ?? 0, 'team_id' => $request['team_id'], 'key_id' => $request['key_id'], 'service_file' => $fileName ?? $data['service_file'], 'redirect_url' => $request['redirect_url'], ]; $credentialArray[] = $cred; } else { $credentialArray[] = $data; } } return $credentialArray; } } BusinessSettingService.php 0000644 00000002710 15007250627 0011733 0 ustar 00 $data) { if ($data['code'] == $request['language']) { $lang = [ 'id' => $data['id'], 'name' => $data['name'], 'direction' => $data['direction'] ?? 'ltr', 'code' => $data['code'], 'status' => 1, 'default' => true, ]; } else { $lang = [ 'id' => $data['id'], 'name' => $data['name'], 'direction' => $data['direction'] ?? 'ltr', 'code' => $data['code'], 'status' => $data['status'], 'default' => false, ]; } $languageArray[] = $lang; } return $languageArray; } public function getInvoiceSettingsData(object|null $request,string|null $image):array { return [ 'terms_and_condition' => $request['terms_and_condition'] ?? null, 'business_identity' => $request['business_identity']?? null, 'business_identity_value' => $request['business_identity_value'] ?? null, 'image' => $image ?? null, ]; } } OrderStatusHistoryService.php 0000644 00000001211 15007250627 0012436 0 ustar 00 $orderId, 'user_id' => $userId, 'user_type' => $userType, 'status' => $status, 'cause' => $cause, ]; } } WithdrawalMethodService.php 0000644 00000001700 15007250627 0012047 0 ustar 00 $field_name) { $method_fields[] = [ 'input_type' => $request['field_type'][$key], 'input_name' => strtolower(str_replace(' ', "_", $request['field_name'][$key])), 'placeholder' => $request['placeholder_text'][$key], 'is_required' => isset($request['is_required'][$key]) ? 1 : 0, ]; } return [ 'method_name' => $request['method_name'], 'method_fields' => $method_fields, 'is_default' => ($request->has('is_default') && $request['is_default'] || $dataCount == 0) == '1' ? 1 : 0, ]; } } CustomerWalletService.php 0000644 00000001771 15007250627 0011562 0 ustar 00 cm_firebase_token; if(!empty($customer_fcm_token)) { $lang = $customer?->app_language ?? getDefaultLanguage(); $value= $this->pushNotificationMessage('fund_added_by_admin_message','customer', $lang); if ($value != null) { $data = [ 'title' => setCurrencySymbol(amount: currencyConverter(amount: $request['amount']), currencyCode: getCurrencyCode(type: 'default')).' '.translate('_fund_added'), 'description' => $value, 'image' => '', 'type' => 'wallet' ]; $this->sendPushNotificationToDevice($customer_fcm_token, $data); } } return true; } } OfflinePaymentMethodService.php 0000644 00000004617 15007250627 0012673 0 ustar 00 has('input_name')) { foreach ($request->input_name as $key => $field_name) { $methodFields[] = [ 'input_name' => strtolower(str_replace("'", '', preg_replace('/[^a-zA-Z0-9\']/', '_', $request->input_name[$key]))), 'input_data' => $request->input_data[$key], ]; } } return $methodFields; } public function getMethodInformationData($request):array|bool { $methodInformation = []; if($request->has('customer_input')) { foreach ($request->customer_input as $key => $field_name) { $input_key = strtolower(str_replace("'", '', preg_replace('/[^a-zA-Z0-9\']/', '_', $request->customer_input[$key]))); $keyExists = false; foreach ($methodInformation as $info) { if ($info['customer_input'] === $input_key) { $keyExists = true; break; } } if (!$keyExists) { if (!array_key_exists($request->customer_input[$key], $methodInformation)) { $methodInformation[] = [ 'customer_input' => $input_key, 'customer_placeholder' => $request->customer_placeholder[$key], 'is_required' => isset($request['is_required']) && isset($request['is_required'][$key]) ? 1 : 0, ]; } }else { Toastr::error(translate('information_Input_Field_Name_must_be_unique')); return false; } } } return $methodInformation; } public function getOfflinePaymentMethodData(string $methodName,array $methodFields,array $methodInformation,string $addOrUpdate):array { $addOrUpdate = $addOrUpdate == 'add' ? 'created_at' : 'updated_at'; return [ 'method_name' => $methodName, 'method_fields' => $methodFields, 'method_informations' => $methodInformation, $addOrUpdate => now(), ]; } } EmailTemplateService.php 0000644 00000027653 15007250627 0011342 0 ustar 00 $admin, 'customer' => $customer, 'vendor' => $vendor, 'delivery-man' => $deliveryMan, }; } public function getHiddenField(string $userType, string $templateName):array|null { $hiddenData = [ EmailTemplateKey::REGISTRATION=>array('product_information','order_information','button_content','banner_image'), EmailTemplateKey::REGISTRATION_VERIFICATION=>array('product_information','order_information','button_content','banner_image'), EmailTemplateKey::REGISTRATION_FROM_POS=>array('product_information','order_information','button_url','button_content_status','banner_image'), EmailTemplateKey::REGISTRATION_APPROVED=>array('product_information','order_information','button_content','banner_image'), EmailTemplateKey::REGISTRATION_DENIED=>array('product_information','order_information','button_content','banner_image'), EmailTemplateKey::ACCOUNT_ACTIVATION=>array('product_information','order_information','button_content','banner_image'), EmailTemplateKey::ACCOUNT_SUSPENDED=>array('product_information','order_information','button_content','banner_image'), EmailTemplateKey::ACCOUNT_UNBLOCK=>array('product_information','order_information','button_content','banner_image'), EmailTemplateKey::ACCOUNT_BLOCK=>array('product_information','order_information','button_content','banner_image'), EmailTemplateKey::DIGITAL_PRODUCT_DOWNLOAD=>array('product_information','button_content','banner_image'), EmailTemplateKey::DIGITAL_PRODUCT_OTP=>array('product_information','order_information','button_content','banner_image'), EmailTemplateKey::ORDER_PLACE=>array('icon','product_information','banner_image'), EmailTemplateKey::ORDER_DElIVERED=>array('product_information','order_information','button_content','banner_image'), EmailTemplateKey::FORGET_PASSWORD=>array('product_information','order_information','button_content','banner_image'), EmailTemplateKey::ORDER_RECEIVED=>array('icon','product_information','button_content','banner_image'), EmailTemplateKey::ADD_FUND_TO_WALLET=>array('product_information','order_information','button_content','banner_image'), EmailTemplateKey::RESET_PASSWORD_VERIFICATION=>array('product_information','order_information','button_content','banner_image'), ]; return $hiddenData[$templateName]; } public function getAddData(string $userType,string $templateName,array|null $hideField,string $title, string $body):array { return [ 'template_name' => $templateName, 'user_type' => $userType, 'template_design_name' => $templateName, 'title' => $title, 'body' => $body, 'hide_field' => $hideField , 'copyright_text' => translate('copyright_').date('Y').' '.getWebConfig('company_name').'. '.translate('all_right_reserved').'.', 'footer_text' => translate('please_contact_us_for_any_queries').','.translate('_we’re_always_happy_to_help').'.', ]; } public function getUpdateData(object $request,$template):array { $image = $request['image'] ? $this->update(dir:'email-template/', oldImage: $template['image'], format: 'webp',image: $request->file('image')) : $template['image']; $logo = $request['logo'] ? $this->update(dir:'email-template/', oldImage: $template['logo'], format: 'webp',image: $request->file('logo')) : $template['logo']; $icon = $request['icon'] ? $this->update(dir:'email-template/', oldImage: $template['logo'], format: 'webp',image: $request->file('icon')) : $template['icon']; $bannerImage = $request['banner_image'] ? $this->update(dir: 'email-template/',oldImage: $template['banner_image'], format: 'webp',image: $request->file('banner_image')): $template['banner_image']; return [ 'title' => $request['title']['en'], 'body' => $request['body']['en'], 'banner_image' => $bannerImage, 'image' => $icon, 'logo' => $logo, 'button_name' => $request['button_name']['en'] ?? null, 'button_url' => $request['button_url'], 'footer_text' => $request['footer_text']['en'], 'copyright_text' => $request['copyright_text']['en'], 'pages' => $request['social_media'] ? array_keys($request['pages']) :null, 'social_media' =>$request['social_media'] ? array_keys($request['social_media']) : null, 'button_content_status' => $request->get('button_content_status', 0), 'product_information_status' => $request->get('product_information_status', 0), 'order_information_status' => $request->get('order_information_status', 0), ]; } public function getTitleData(string $userType,$templateName):string { $titleData = [ EmailTemplateKey::REGISTRATION=>'Registration Complete', EmailTemplateKey::REGISTRATION_VERIFICATION=>'Registration Verification', EmailTemplateKey::REGISTRATION_FROM_POS=>'Registration Complete', EmailTemplateKey::REGISTRATION_APPROVED=>'Registration Approved', EmailTemplateKey::REGISTRATION_DENIED=>'Registration Denied', EmailTemplateKey::ACCOUNT_ACTIVATION=>'Account Activation', EmailTemplateKey::ACCOUNT_SUSPENDED=>'Account Suspended', EmailTemplateKey::ACCOUNT_UNBLOCK=>'Account Unblocked', EmailTemplateKey::ACCOUNT_BLOCK=>'Account Blocked', EmailTemplateKey::DIGITAL_PRODUCT_DOWNLOAD=>'Congratulations', EmailTemplateKey::DIGITAL_PRODUCT_OTP=>'Digital Product Download OTP Verification', EmailTemplateKey::ORDER_PLACE=>'Order'.' # '.'{orderId}'.' Has Been Placed Successfully!', EmailTemplateKey::FORGET_PASSWORD=>'Change Password Request', EmailTemplateKey::ORDER_RECEIVED=>'New Order Received', EmailTemplateKey::ADD_FUND_TO_WALLET=>'Transaction Successful', EmailTemplateKey::RESET_PASSWORD_VERIFICATION=>'OTP Verification For Password Reset', ]; return $titleData[$templateName]; } public function getBodyData(string $userType,$templateName):string { $userType = match ($userType) { 'admin' => '{adminName}', 'customer' => '{userName}', 'vendor' => '{vendorName}', 'delivery-man' => '{deliveryManName}', }; $bodyData = [ EmailTemplateKey::REGISTRATION=>'
Hi '.$userType.',
Your verification code is
', EmailTemplateKey::REGISTRATION_FROM_POS=>'Hi '.$userType.',
Thank you for joining '.getWebConfig('company_name').' Shop.If you want to become a registered customer then reset your password below by using this email. Then you’ll be able to explore the website and app as a registered customer.
', EmailTemplateKey::REGISTRATION_APPROVED=>'Thank you for choosing '.getWebConfig('company_name') .' shop! Your digital product is ready for download. To download your product use your email {emailId} and order # {orderId} below.
Hi '.$userType.',
Your verification code is
', EmailTemplateKey::ORDER_PLACE=>'Hi '.$userType.',
Your order from {shopName} has been placed to know the current status of your order click track order
', EmailTemplateKey::FORGET_PASSWORD=>'Hi '.$userType.',
Please click the link below to change your password.
', EmailTemplateKey::ORDER_RECEIVED=> 'Hi '.$userType.',
We have sent you this email to notify that you have a new order.You will be able to see your orders after login to your panel.
', EmailTemplateKey::ADD_FUND_TO_WALLET=>'Hi '.$userType.',
Your verification code is
', ]; return $bodyData[$templateName]; } } CustomerService.php 0000644 00000001747 15007250627 0010414 0 ustar 00 $request['f_name'], 'l_name' => $request['l_name'], 'email' => $request['email'], 'phone' => $request['phone'], 'country' => $request['country']??null, 'city' => $request['city']??null, 'zip' => $request['zip_code']??null, 'street_address' =>$request['address']??null, 'password' => bcrypt($request['password'] ?? 'password') ]; } public function deleteImage(object $data): bool { if ($data['image']) {$this->delete('profile/'.$data['image']);}; return true; } } OrderDetailsService.php 0000644 00000001651 15007250627 0011166 0 ustar 00 $orderId, 'product_id' => $item['id'], 'product_details' => $product, 'qty' => $item['quantity'], 'price' => $price, 'seller_id' => $product['user_id'], 'tax' => $tax*$item['quantity'], 'tax_model' => $product['tax_model'], 'discount' => $item['discount']*$item['quantity'], 'discount_type' => 'discount_on_product', 'delivery_status' => 'delivered', 'payment_status' => 'paid', 'variant' => $item['variant'], 'variation' => json_encode($item['variations']), 'created_at' => now(), 'updated_at' => now() ]; } } WithdrawService.php 0000644 00000001014 15007250627 0010367 0 ustar 00 $wallet['total_earning'] + currencyConverter($withdrawRequest['amount'],to:'usd'), 'pending_withdraw' => $wallet['pending_withdraw'] - currencyConverter($withdrawRequest['amount'],to:'usd'), ]; } } RefundRequestService.php 0000644 00000000100 15007250627 0011365 0 ustar 00 $vendor['id'], 'name' => $vendor['f_name'], 'address' => '', 'contact' => $vendor['phone'], 'image' => 'def.png', 'created_at' => now(), 'updated_at' => now() ]; } /** * @return array[name: mixed, address: mixed, contact: mixed, image: bool|mixed, banner: bool|mixed, bottomBanner: bool|mixed, offerBanner: bool|mixed] */ public function getShopDataForUpdate(object $request , object $shop):array { $image = $request['image'] ? $this->update(dir:'shop/', oldImage: $shop['image'], format: 'webp',image: $request->file('image')) : $shop['image']; $banner = $request['banner'] ? $this->update(dir: 'shop/banner/',oldImage: $shop['banner'], format: 'webp',image: $request->file('banner')): $shop['banner']; $bottomBanner = $request['bottom_banner'] ? $this->update(dir: 'shop/banner/', oldImage: $shop['bottom_banner'], format: 'webp', image: $request->file('bottom_banner')) : $shop['bottom_banner']; $offerBanner = $request['offer_banner'] ? $this->update(dir: 'shop/banner/', oldImage: $shop['offer_banner'], format: 'webp',image: $request->file('offer_banner')) : $shop['offer_banner']; return [ 'name'=>$request['name'], 'address'=>$request['address'], 'contact'=>$request['contact'], 'image'=> $image, 'banner'=> $banner, 'bottom_banner'=> $bottomBanner, 'offer_banner'=> $offerBanner, ]; } /** * @return array[vacation_status: int, vacation_start_date: mixed, vacation_end_date: mixed, vacation_note: mixed] */ public function getVacationData(object $request):array { return [ 'vacation_status' => $request['vacation_status'] == 'on' ? 1 : 0, 'vacation_start_date' => $request['vacation_start_date'], 'vacation_end_date' => $request['vacation_end_date'], 'vacation_note' => $request['vacation_note'], ]; } public function getAddShopDataForRegistration(object $request,int $vendorId):array { return [ 'seller_id' => $vendorId, 'name' => $request['shop_name'], 'slug' => Str::slug($request['shop_name'], '-') . '-' . Str::random(6), 'address'=>$request['shop_address'], 'contact' => $request['phone'], 'image' => $this->upload(dir: 'shop/', format: 'webp', image: $request->file('logo')), 'banner' => $this->upload(dir: 'shop/banner/', format: 'webp', image: $request->file('banner')), 'bottom_banner' => $this->upload(dir: 'shop/banner/', format: 'webp', image: $request->file('bottom_banner')), ]; } } AddonService.php 0000644 00000013117 15007250627 0007632 0 ustar 00 file('file_upload'); $filename = $file->getClientOriginalName(); $tempPath = $file->storeAs('temp', $filename); $zip = new ZipArchive(); if ($zip->open(storage_path('app/' . $tempPath)) === TRUE) { $genFolderName = explode('/', $zip->getNameIndex(0))[0]; if ($genFolderName === "__MACOSX") { for ($i = 0; $i < $zip->numFiles; $i++) { if (strpos($zip->getNameIndex($i), "__MACOSX") === false) { $getAddonFolder = explode('/', $zip->getNameIndex($i))[0]; break; } } } $getAddonFolder = explode('.', $genFolderName)[0]; $zip->extractTo(storage_path('app/temp')); $infoPath = storage_path('app/temp/'.$getAddonFolder.'/Addon/info.php'); if(File::exists($infoPath)) { $extractPath = base_path('Modules'); if (!File::exists($extractPath)) { File::makeDirectory($extractPath); } if (File::exists($extractPath.'/'.$getAddonFolder)) { $message = translate('already_installed'); $status = 'error'; }else{ $zip->extractTo($extractPath); $zip->close(); File::chmod($extractPath.'/'.$getAddonFolder.'/Addon', 0777); $status = 'success'; $message = translate('upload_successfully'); } }else{ File::cleanDirectory(storage_path('app/temp')); $status = 'error'; $message = translate('invalid_file!'); } }else{ $status = 'error'; $message = translate('file_upload_fail!'); } if (File::exists(base_path('Modules/__MACOSX'))) { File::deleteDirectory(base_path('Modules/__MACOSX')); } File::cleanDirectory(storage_path('app/temp')); return [ 'status' => $status, 'message'=> $message ]; } public function getPublishData(object $request): array { $fullData = include($request['path'] . '/Addon/info.php'); $path = $request['path']; $addonName = $fullData['name']; if ($fullData['purchase_code'] == null || $fullData['username'] == null) { return [ 'flag' => 'inactive', 'view' => view(AddonSetup::ACTIVE_MODAL[VIEW], compact('fullData', 'path', 'addonName'))->render(), ]; } $fullData['is_published'] = $fullData['is_published'] ? 0 : 1; $str = " 'success', 'message'=> 'status_updated_successfully' ]; } public function getActivationData(object $request): array { $remove = ["http://", "https://", "www."]; $url = str_replace($remove, "", url('/')); $full_data = include($request['path'] . '/Addon/info.php'); $post = [ base64_decode('dXNlcm5hbWU=') => $request['username'], base64_decode('cHVyY2hhc2Vfa2V5') => $request['purchase_code'], base64_decode('c29mdHdhcmVfaWQ=') => $full_data['software_id'], base64_decode('ZG9tYWlu') => $url, ]; $response = Http::post(base64_decode('aHR0cHM6Ly9jaGVjay42YW10ZWNoLmNvbS9hcGkvdjEvYWN0aXZhdGlvbi1jaGVjaw=='), $post)->json(); $status = base64_decode($response['active']) ?? 1; if((int)$status){ $full_data['is_published'] = 1; $full_data['username'] = $request['username']; $full_data['purchase_code'] = $request['purchase_code']; $str = " (int)$status, 'activationUrl' => $activationUrl ]; } public function deleteAddon(object $request): array { $path = $request['path']; $full_path = base_path($path); $old = base_path('app/Traits/Payment.php'); $new = base_path('app/Traits/Payment.txt'); copy($new, $old); if(File::deleteDirectory($full_path)){ $status = 'success'; $message = translate('file_delete_successfully'); }else{ $status = 'error'; $message = translate('file_delete_fail'); } return [ 'status' => $status, 'message'=> $message ]; } } RefundTransactionService.php 0000644 00000002543 15007250627 0012237 0 ustar 00 $refund['order_id'], 'payment_for'=> 'Refund Request', 'payer_id'=> $order['seller_id'], 'payment_receiver_id'=> $refund['customer_id'], 'paid_by'=> $order['seller_is'], 'paid_to'=> 'customer', 'payment_method'=> $request['payment_method'], 'payment_status'=> $request['payment_method'] != null ? 'paid' : 'unpaid', 'amount'=> $refund['amount'], 'transaction_type'=> 'Refund', 'order_details_id'=> $refund['order_details_id'], 'refund_id'=> $refund['id'], ]; } public function getPDFData(string $companyPhone,string $companyEmail,string $companyName,string $companyWebLogo,object $refundTransactions,):array { $totalAmount = 0; foreach($refundTransactions as $transaction){ $totalAmount += $transaction['amount']; } return [ 'total_amount' => $totalAmount, 'company_phone' => $companyPhone, 'company_email' => $companyEmail, 'company_name' => $companyName, 'company_web_logo' => $companyWebLogo, ]; } } DeliveryCountryCodeService.php 0000644 00000001254 15007250627 0012546 0 ustar 00 $country) { if ($country['code'] == $deliveryCountryCode['country_code']) { $data[$key]['code'] = $country['code']; $data[$key]['name'] = $country['name']; } } } return $data; } } CouponService.php 0000644 00000013321 15007250627 0010045 0 ustar 00 $addedBy, 'coupon_type' => $request['coupon_type'], 'title' => $request['title'], 'code' => $request['code'], 'start_date' => $request['start_date'], 'expire_date' => $request['expire_date'], 'coupon_bearer' => $addedBy == 'seller' ? 'seller' : $request['coupon_bearer'], 'seller_id' => $addedBy == 'seller' ? auth('seller')->id() : null, 'customer_id' => $request['customer_id'], 'limit' => $request['limit'], 'min_purchase' => currencyConverter(amount: $request['min_purchase']), 'discount_type' => $request['coupon_type'] == 'discount_on_purchase' ? $request['discount_type'] : 'amount', 'discount' => $request['coupon_type'] == 'discount_on_purchase' ? ($request['discount_type'] == 'amount' ? currencyConverter(amount: $request['discount']) : $request['discount']) : 0, 'max_discount' => $request['coupon_type'] == 'discount_on_purchase' && $request['discount_type'] == 'percentage' ? currencyConverter(amount: $request['max_discount'] != null ? $request['max_discount'] : $request['discount']) : 0, 'created_at' => now(), 'updated_at' => now(), ]; } public function getAddData(object $request): array { $data = [ 'coupon_type' => $request['coupon_type'], 'title' => $request['title'], 'code' => $request['code'], 'start_date' => $request['start_date'], 'expire_date' => $request['expire_date'], 'status' => 1, 'min_purchase' => currencyConverter(amount: $request['min_purchase']), ]; if ($request['coupon_type'] == 'discount_on_purchase' || $request['coupon_type'] == 'free_delivery') { $data += [ 'coupon_bearer' => $request['coupon_bearer'], 'seller_id' => $request['seller_id'] == 'inhouse' ? NULL : $request['seller_id'], 'customer_id' => $request['customer_id'], 'limit' => $request['limit'], ]; } if ($request['coupon_type'] == 'discount_on_purchase' || $request['coupon_type'] == 'first_order') { $data += [ 'discount_type' => $request['discount_type'], 'customer_id' => 0, 'discount' => $request['discount_type'] == 'amount' ? currencyConverter(amount: $request['discount']) : $request['discount'], 'max_discount' => currencyConverter(amount: $request['max_discount'] != null ? $request['max_discount'] : $request['discount']), ]; } return $data; } public function getUpdateData(object $request): array { $data = [ 'coupon_type' => $request['coupon_type'], 'title' => $request['title'], 'code' => $request['code'], 'start_date' => $request['start_date'], 'expire_date' => $request['expire_date'], 'status' => 1, 'min_purchase' => currencyConverter(amount: $request['min_purchase']), ]; if ($request['coupon_type'] == 'discount_on_purchase' || $request['coupon_type'] == 'free_delivery') { $data += [ 'coupon_bearer' => $request['coupon_bearer'], 'seller_id' => $request['seller_id'] == 'inhouse' ? NULL : $request['seller_id'], 'customer_id' => $request['customer_id'], 'limit' => $request['limit'], ]; } if ($request['coupon_type'] == 'discount_on_purchase') { $data += [ 'discount_type' => $request['discount_type'], 'seller_id' => $request['seller_id'] == 'inhouse' ? NULL : $request['seller_id'], 'customer_id' => $request['customer_id'], 'limit' => $request['limit'], ]; } if ($request['coupon_type'] == 'discount_on_purchase' || $request['coupon_type'] == 'first_order') { $data += [ 'discount_type' => $request['discount_type'], 'customer_id' => 0, 'discount' => $request['discount_type'] == 'amount' ? currencyConverter($request['discount']) : $request['discount'], 'max_discount' => currencyConverter($request['max_discount'] != null ? $request['max_discount'] : $request['discount']), ]; } if ($request['coupon_type'] == 'free_delivery') { $data['discount_type'] = 'percentage'; $data['discount'] = 0; $data['max_discount'] = 0; } elseif ($request['coupon_type'] == 'first_order') { $data['coupon_bearer'] = 'inhouse'; $data['seller_id'] = NULL; $data['customer_id'] = 0; $data['limit'] = 0; } return $data; } public function checkConditions(object $request):bool { if ( $request['coupon_type'] == 'discount_on_purchase' && $request['discount_type'] == 'amount' && $request['discount'] > $request['min_purchase']) { Toastr::error(translate('the_minimum_purchase_amount_must_be_greater_than_discount_amount')); return false; }elseif ($request['discount_type'] == 'percentage' && $request['discount'] >= 100 ) { Toastr::error(translate('when_discount_type percentage,discount_amount_will_be_less_than_100')); return false; } return true; } } VendorWalletService.php 0000644 00000000653 15007250627 0011214 0 ustar 00 $totalEarning, 'pending_withdraw' =>$pendingWithdraw, ]; } } SupportTicketService.php 0000644 00000001415 15007250627 0011423 0 ustar 00 file('image')) { foreach ($request->image as $key => $imageFile) { $image_name = $this->upload(dir:'support-ticket/', format: 'webp', image: $imageFile); $images[] = $image_name; } } return [ 'admin_message' => $request['replay'], 'admin_id' => $request['adminId'], 'support_ticket_id' => $request['id'], 'attachment' => json_encode($images), 'created_at' => now(), 'updated_at' => now() ]; } } POSService.php 0000644 00000011553 15007250627 0007250 0 ustar 00 has(SessionKey::CART_NAME)){ foreach (session(SessionKey::CART_NAME) as $item){ if (session()->has($item) && count(session($item)) > 1){ if (isset(session($item)[0]) && is_array(session($item)[0]) && isset(session($item)[0]['customerOnHold']) && session($item)[0]['customerOnHold']) { $totalHoldOrders++; } } } } return $totalHoldOrders; } public function getCartNames():array { $cartNames = []; if (session()->has(SessionKey::CART_NAME)){ foreach (session(SessionKey::CART_NAME) as $item){ if (session()->has($item) && count(session($item)) > 1){ $cartNames[] = $item; } } } return $cartNames ; } public function UpdateSessionWhenCustomerChange(string $cartId):void { if(!in_array($cartId,session(SessionKey::CART_NAME)??[])) { session()->push(SessionKey::CART_NAME, $cartId); } $cart = session(session(SessionKey::CURRENT_USER)); $cartKeeper = []; if (session()->has(session(SessionKey::CURRENT_USER)) && count($cart) > 0) { foreach ($cart as $cartItem) { if (is_array($cartItem)) { $cartItem['customerId'] = Str::contains($cartId, 'walking-customer') ? '0' : explode('-',$cartId)[2]; } $cartKeeper[] = $cartItem; } } if(session(SessionKey::CURRENT_USER) != $cartId) { $tempCartName = []; foreach(session(SessionKey::CART_NAME) as $cartName) { if($cartName != session(SessionKey::CURRENT_USER)) { $tempCartName[] = $cartName; } } session()->put(SessionKey::CART_NAME,$tempCartName); } session()->forget(session(SessionKey::CURRENT_USER)); session()->put($cartId , $cartKeeper); session()->put(SessionKey::CURRENT_USER,$cartId); } public function checkConditions(float $amount):bool { $condition = false; $cartId =session(SessionKey::CURRENT_USER); if (session()->has($cartId)) { if (count(session()->get($cartId)) < 1) { Toastr::error(translate('cart_empty_warning')); $condition = true; } }else { Toastr::error(translate('cart_empty_warning')); $condition = true; } if($amount <= 0) { Toastr::error(translate('amount_cannot_be_lees_then_0')); $condition = true; } return $condition; } public function getCouponCalculation(object $coupon, float $totalProductPrice, float $productDiscount, float $productTax): array { $extraDiscount = 0; if ($coupon['discount_type'] === 'percentage') { $discount = min((($totalProductPrice / 100) * $coupon['discount']), $coupon['max_discount']); } else { $discount = $coupon['discount']; } if (isset($carts['ext_discount_type'])) { $extraDiscount = $this->getDiscountAmount(price: $totalProductPrice, discount: $carts['ext_discount'], discountType: $carts['ext_discount_type']); } $total = $totalProductPrice - $productDiscount + $productTax - $discount - $extraDiscount; return [ 'total' => $total, 'discount' => $discount, ]; } public function putCouponDataOnSession($cartId,$discount,$couponTitle,$couponBearer,$couponCode):void { $cart = session($cartId, collect([])); $cart['coupon_code'] = $couponCode; $cart['coupon_discount'] = $discount; $cart['coupon_title'] = $couponTitle; $cart['coupon_bearer'] = $couponBearer; session()->put($cartId, $cart); } public function getVariantData(string $type,array $variation,int $quantity):array { $variationData = []; foreach ($variation as $variant) { if ($type == $variant['type']) { $variant['qty'] -= $quantity; } $variationData[] = $variant; } return $variationData; } public function getSummaryData():array { return [ 'cartName'=>session(SessionKey::CART_NAME), 'currentUser'=>session(SessionKey::CURRENT_USER), 'totalHoldOrders'=>$this->getTotalHoldOrders(), 'cartNames' =>$this->getCartNames(), ]; } } AllPagesBannerService.php 0000644 00000001713 15007250627 0011422 0 ustar 00 image ?? ''; $imageName = $request->file('image') ? $this->update(dir:'banner/', oldImage:$oldImage, format: 'webp', image: $request->file('image')) : $oldImage; }else { $imageName = $this->upload(dir:'banner/', format: 'webp', image: $request->file('image')); } return [ 'type' => $request['type'], 'value' => json_encode([ 'status' => 0, 'image' => $imageName, ]), 'created_at' => now() ]; } public function deleteImage(string $image): bool { $this->delete(filePath: "/banner/" . $image); return true; } } DealOfTheDayService.php 0000644 00000002221 15007250627 0011030 0 ustar 00 $request['title'][array_search('en', $request->lang)], 'discount' => $product['discount_type'] == 'amount' ? usdToDefaultCurrency(amount:$product['discount']) : $product['discount'], 'discount_type' => $product['discount_type'], 'product_id' => $request['product_id'], 'status' => 0, 'created_at' => now(), 'updated_at' => now(), ]; } public function getUpdateData(object $request, object $product): array { return [ 'title' => $request['title'][array_search('en', $request->lang)], 'discount' => $product['discount_type'] == 'amount' ? usdToDefaultCurrency(amount:$product['discount']) : $product['discount'], 'discount_type' => $product['discount_type'], 'product_id' => $request['product_id'], 'status' => 0, 'updated_at' => now(), ]; } } ShippingAddressService.php 0000644 00000001221 15007250627 0011665 0 ustar 00 $customerId, 'contact_person_name' => $request['f_name'].' '.$request['f_name'], 'address_type' => $addressType, 'address' => $request['address'], 'city' => $request['city'], 'zip' => $request['zip_code'], 'country' => $request['country'], 'phone' => $request['phone'], 'is_billing' => 0, 'latitude' => 0, 'longitude' => 0, ]; } } DeliveryManWithdrawService.php 0000644 00000002703 15007250627 0012535 0 ustar 00 $request['approved'], 'transaction_note' => $request['note'] ]; } /** * @param object $request * @param object $wallet * @param object $withdraw * @return array[] */ public function getUpdateData(object $request, object $wallet, object $withdraw) : array { $withdrawData = []; $withdrawData['approved'] = $request['approved']; $withdrawData['transaction_note'] = $request['note']; $walletData = []; if ($request['approved'] == 1) { $walletData['total_withdraw'] = $wallet->total_withdraw + currencyConverter($withdraw['amount'],'usd'); $walletData['pending_withdraw'] = $wallet->pending_withdraw - currencyConverter($withdraw['amount'],'usd'); $walletData['current_balance'] = $wallet->current_balance - currencyConverter($withdraw['amount'],'usd'); }else{ $walletData['pending_withdraw'] = $wallet->pending_withdraw - currencyConverter($withdraw['amount'],'usd'); } return [ 'wallet'=>$walletData, 'withdraw'=>$withdrawData, ]; } } ShopFollowerService.php 0000644 00000000375 15007250627 0011232 0 ustar 00 $customerId, 'shop_id' => $shopId ]; } } BrandService.php 0000644 00000001616 15007250627 0007634 0 ustar 00 $request['name'][array_search('en', $request['lang'])], 'image' => $this->upload('brand/', 'webp', $request->file('image')), 'status' => 1, ]; } public function getUpdateData(object $request, object $data): array { $image = $request->file('image') ? $this->update('brand/', $data['image'],'webp', $request->file('image')) : $data['image']; return [ 'name' => $request->name[array_search('en', $request['lang'])], 'image' => $image, ]; } public function deleteImage(object $data): bool { if ($data['image']) {$this->delete('profile/'.$data['image']);}; return true; } } MostDemandedService.php 0000644 00000001324 15007250627 0011146 0 ustar 00 file('image') ? $this->update(dir:'most-demanded/', oldImage:$image, format: 'webp', image: $request->file('image')) : $image; }else { $imageName = $this->upload(dir:'most-demanded/', format: 'webp', image: $request->file('image')); } return [ 'product_id'=>$request['product_id'], 'banner' => $imageName, 'created_at' => now(), 'updated_at' => now(), ]; } } AdminService.php 0000644 00000004546 15007250627 0007643 0 ustar 00 attempt(['email' => $email, 'password' => $password], $rememberToken)) { return true; } return false; } public function logout(): void { auth()->guard('web')->logout(); session()->invalidate(); } public function getIdentityImages(object $request, object $oldImages = null): bool|string { if (!empty($oldImages['identify_image'])) { foreach (json_decode($oldImages['identify_image'], true) as $image) { $this->delete('admin/' . $image); } } $identity_images = []; if (!empty($request->file('identity_image'))) { foreach ($request['identity_image'] as $img) { $identity_images[] = $this->upload('admin/', 'webp', $img); } $identity_images = json_encode($identity_images); } else { $identity_images = json_encode([]); } return $identity_images; } public function getProceedImage(object $request, string $oldImage = null): bool|string { if ($oldImage) { $image = $this->update('admin/', $oldImage, 'webp', $request['image']); }else { $image = $this->upload('admin/', 'webp', $request['image']); } return $image; } /** * @return array[f_name: mixed, l_name: mixed, phone: mixed, image: mixed|string] */ public function getAdminDataForUpdate(object $request, object $admin):array { $image = $request['image'] ? $this->update(dir: 'admin/', oldImage: $admin['image'], format: 'webp', image: $request->file('image')) : $admin['image']; return [ 'name' => $request['name'], 'email' => $request['email'], 'phone' => $request['phone'], 'image' => $image, ]; } /** * @return array[password: string] */ public function getAdminPasswordData(object $request):array { return [ 'password' => bcrypt($request['password']), ]; } } VendorService.php 0000644 00000006565 15007250627 0010053 0 ustar 00 attempt(['email' => $email, 'password' => $password], $rememberToken)) { return true; } return false; } /** * @return array */ public function getInitialWalletData(int $vendorId): array { return [ 'seller_id' => $vendorId, 'withdrawn' => 0, 'commission_given' => 0, 'total_earning' => 0, 'pending_withdraw' => 0, 'delivery_charge_earned' => 0, 'collected_cash' => 0, 'created_at' => now(), 'updated_at' => now(), ]; } public function logout(): void { auth()->guard('seller')->logout(); session()->invalidate(); } /** * @param object $request * @return array */ public function getFreeDeliveryOverAmountData(object $request):array { return [ 'free_delivery_status' => $request['free_delivery_status'] == 'on' ? 1 : 0, 'free_delivery_over_amount' => currencyConverter($request['free_delivery_over_amount'], 'usd'), ]; } /** * @return array[minimum_order_amount: float|int] */ public function getMinimumOrderAmount(object $request) :array { return [ 'minimum_order_amount' => currencyConverter($request['minimum_order_amount'], 'usd') ]; } /** * @param object $request * @param object $vendor * @return array */ public function getVendorDataForUpdate(object $request, object $vendor):array { $image = $request['image'] ? $this->update(dir: 'seller/', oldImage: $vendor['image'], format: 'webp', image: $request->file('image')) : $vendor['image']; return [ 'f_name' => $request['f_name'], 'l_name' => $request['l_name'], 'phone' => $request['phone'], 'image' => $image, ]; } /** * @return array[password: string] */ public function getVendorPasswordData(object $request):array { return [ 'password' => bcrypt($request['password']), ]; } /** * @param object $request * @return array */ public function getVendorBankInfoData(object $request):array { return [ 'bank_name' => $request['bank_name'], 'branch' => $request['branch'], 'holder_name' => $request['holder_name'], 'account_no' => $request['account_no'], ]; } public function getAddData(object $request):array { return [ 'f_name' => $request['f_name'], 'l_name' => $request['l_name'], 'phone' => $request['phone'], 'email' => $request['email'], 'image' => $this->upload(dir: 'seller/', format: 'webp', image: $request->file('image')), 'password' => bcrypt($request['password']), 'status' => $request['status'] == 'approved' ? 'approved' : 'pending', ]; } } DeliveryManCashCollectService.php 0000644 00000000765 15007250627 0013136 0 ustar 00 $deliveryMan['id'], 'user_id' => 0, 'user_type' => 'admin', 'credit' => usdToDefaultCurrency(amount: $request['amount']), 'transaction_type' => 'cash_in_hand' ]; } } ChattingService.php 0000644 00000005426 15007250627 0010352 0 ustar 00 file('image')) { foreach ($request['image'] as $key=>$value) { $attachment[] = $this->upload('chatting/', 'webp', $value); } } return $attachment; } /** * @param object $request * @param string|int $shopId * @param string|int $vendorId * @return array */ public function getDeliveryManChattingData(object $request , string|int $shopId, string|int $vendorId):array { return [ 'delivery_man_id' => $request['delivery_man_id'], 'seller_id' => $vendorId, 'shop_id' => $shopId, 'message' => $request['message'], 'attachment' =>json_encode($this->getAttachment($request)), 'sent_by_seller' => 1, 'seen_by_seller' => 1, 'seen_by_delivery_man' => 0, 'notification_receiver' => 'deliveryman', 'created_at' => now(), ]; } /** * @param object $request * @param string|int $shopId * @param string|int $vendorId * @return array */ public function getCustomerChattingData(object $request , string|int $shopId, string|int $vendorId):array { return [ 'user_id' => $request['user_id'], 'seller_id' => $vendorId, 'shop_id' => $shopId, 'message' => $request->message, 'attachment' =>json_encode($this->getAttachment($request)), 'sent_by_seller' => 1, 'seen_by_seller' => 1, 'seen_by_customer' => 0, 'notification_receiver' => 'customer', 'created_at' => now(), ]; } /** * @param object $request * @param string $type * @return array */ public function addChattingData(object $request,string $type):array { $attachment = $this->getAttachment(request: $request); return [ 'delivery_man_id' => $type == 'delivery-man' ? $request['delivery_man_id'] : null , 'user_id' => $type == 'customer' ? $request['user_id'] : null , 'admin_id' => 0, 'message' => $request['message'], 'attachment' => json_encode($attachment), 'sent_by_admin' => 1, 'seen_by_admin' => 1, 'seen_by_customer' => 0, 'seen_by_delivery_man' => $type == 'delivery-man' ? 0 : null, 'notification_receiver' => $type == 'delivery-man' ? 'deliveryman' : 'customer', 'created_at' => now(), ]; } } NotificationService.php 0000644 00000001676 15007250627 0011242 0 ustar 00 upload(dir:'notification/', format: 'webp',image: $request->file('image')) : ''; return [ 'title' => $request['title'], 'description' => $request['description'], 'image' => $image, 'notification_count' => 1 ]; } public function getNotificationUpdateData(object $request,string|null $notificationImage):array { $image = $request['image'] ? $this->update(dir:'notification/', oldImage: $notificationImage, format: 'webp',image: $request->file('image')) : $notificationImage; return [ 'title' => $request['title'], 'description' => $request['description'], 'image' => $image, ]; } } DashboardService.php 0000644 00000003675 15007250627 0010504 0 ustar 00 startOfYear()->format('Y-m-d'); $to = Carbon::now()->endOfYear()->format('Y-m-d'); $range = range(1, 12); $type = 'month'; $keyRange = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]; } elseif ($dateType == 'MonthEarn') { $from = date('Y-m-01'); $to = date('Y-m-t 23:59:59'); $endRange = date('d', strtotime($to)); $range = range(1, $endRange); $type = 'day'; $keyRange = $range; } elseif ($dateType == 'WeekEarn') { $from = Carbon::now()->startOfWeek(Carbon::SUNDAY)->format('Y-m-d'); $to = Carbon::now()->endOfWeek(Carbon::SATURDAY)->format('Y-m-d'); $range = ['Sunday','Monday','Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']; $type = 'day_of_week'; $keyRange = $range; } return [ 'from' =>$from, 'to' =>$to, 'range' =>$range, 'type' => $type, 'keyRange' => $keyRange ]; } public function getDateWiseAmount(array $range,string $type,object|array $amountArray):array { $dateWiseAmount = []; foreach ($range as $value){ if (count($amountArray) > 0) { $amountArray->map(function ($amount) use ($type, $range, &$dateWiseAmount, $value) { $dateWiseAmount[$value] = usdToDefaultCurrency($amount[$type] == $value ? $amount['sums'] : 0); }); }else{ $dateWiseAmount[$value] = 0; } } return $dateWiseAmount; } } ProductCompareService.php 0000644 00000000411 15007250627 0011525 0 ustar 00 $customerId, 'product_id' => $productId, ]; } } SocialMediaService.php 0000644 00000001354 15007250627 0010757 0 ustar 00 $id, 'shipping_type' => $request['shippingType'], ]; } /** * @param object $request * @return array */ public function getShippingTypeDataForUpdate(object $request) : array { return [ 'shipping_type' => $request['shippingType'], ]; } }