????PK ! $ ThemeService.phpnu [ 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;
}
}
PK ! ~ WithdrawRequestService.phpnu [ $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;
}
}
PK ! .7 .7 CartService.phpnu [ 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
];
}
}
PK ! Ci i FileManagerService.phpnu [ 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;
}
}
PK ! q SettingService.phpnu [ 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));;
}
}
PK ! q@ LanguageService.phpnu [ $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;
}
}
PK ! ;e e ProductService.phpnu [ 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;
}
}
PK ! z OrderService.phpnu [ $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;
}
}
PK ! 2D D ! DeliveryManTransactionService.phpnu [ $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(),
];
}
}
PK ! *&' ' DeliveryManWalletService.phpnu [ $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'],
];
}
}
PK ! @C: MailService.phpnu [ $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;
}
}
PK ! &
BannerService.phpnu [ 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;
}
}
PK ! e5 FeaturesSectionService.phpnu [ $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;
}
}
PK ! >S<