You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

1866 lines
77 KiB

<?php
namespace App\Http\Controllers\Admin;
use App\Models\Currency;
use App\Models\Restaurant;
use Illuminate\Http\Request;
use App\CentralLogics\Helpers;
use App\Models\BusinessSetting;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
use Brian2694\Toastr\Facades\Toastr;
use Illuminate\Support\Facades\Mail;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Facades\Validator;
class BusinessSettingsController extends Controller
{
private $restaurant;
public function business_index()
{
return view('admin-views.business-settings.business-index');
}
public function business_setup(Request $request)
{
if (env('APP_MODE') == 'demo') {
Toastr::info(translate('messages.update_option_is_disable_for_demo'));
return back();
}
// DB::table('business_settings')->updateOrInsert(['key' => 'max_otp_hit'], [
// 'value' => $request['max_otp_hit']
// ]);
// DB::table('business_settings')->updateOrInsert(['key' => 'max_otp_hit_time'], [
// 'value' => $request['max_otp_hit_time']
// ]);
// DB::table('business_settings')->updateOrInsert(['key' => 'otp_interval_time'], [
// 'value' => $request['otp_interval_time']
// ]);
DB::table('business_settings')->updateOrInsert(['key' => 'tax_included'], [
'value' => $request['tax_included']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'order_subscription'], [
'value' => $request['order_subscription']
]);
if($request['order_subscription'] == null ){
Restaurant::query()->update([
// 'order_subscription' => 0,
'order_subscription_active' => 0,
]);
}
// DB::table('business_settings')->updateOrInsert(['key' => 'site_direction'], [
// 'value' => $request['site_direction']
// ]);
DB::table('business_settings')->updateOrInsert(['key' => 'business_name'], [
'value' => $request['restaurant_name']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'currency'], [
'value' => $request['currency']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'timezone'], [
'value' => $request['timezone']
]);
$curr_logo = BusinessSetting::where(['key' => 'logo'])->first();
if ($request->has('logo')) {
$validator = Validator::make($request->all(), [
'logo' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
$image_name = Helpers::update('business/', $curr_logo->value, 'png', $request->file('logo'));
} else {
$image_name = $curr_logo['value'];
}
DB::table('business_settings')->updateOrInsert(['key' => 'logo'], [
'value' => $image_name
]);
$fav_icon = BusinessSetting::where(['key' => 'icon'])->first();
if ($request->has('icon')) {
$validator = Validator::make($request->all(), [
'icon' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
$image_name = Helpers::update('business/', $fav_icon->value, 'png', $request->file('icon'));
} else {
$image_name = $fav_icon['value'];
}
DB::table('business_settings')->updateOrInsert(['key' => 'icon'], [
'value' => $image_name
]);
DB::table('business_settings')->updateOrInsert(['key' => 'phone'], [
'value' => $request['phone']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'email_address'], [
'value' => $request['email']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'address'], [
'value' => $request['address']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'footer_text'], [
'value' => $request['footer_text']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'customer_verification'], [
'value' => $request['customer_verification']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'order_delivery_verification'], [
'value' => $request['odc']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'currency_symbol_position'], [
'value' => $request['currency_symbol_position']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'schedule_order'], [
'value' => $request['schedule_order']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'order_confirmation_model'], [
'value' => $request['order_confirmation_model']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'dm_tips_status'], [
'value' => $request['dm_tips_status']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'tax'], [
'value' => $request['tax']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'admin_commission'], [
'value' => $request['admin_commission']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'country'], [
'value' => $request['country']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'default_location'], [
'value' => json_encode(['lat' => $request['latitude'], 'lng' => $request['longitude']])
]);
DB::table('business_settings')->updateOrInsert(['key' => 'admin_order_notification'], [
'value' => $request['admin_order_notification']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'free_delivery_over'], [
'value' => $request['free_delivery_over_status'] ? $request['free_delivery_over'] : null
]);
DB::table('business_settings')->updateOrInsert(['key' => 'dm_maximum_orders'], [
'value' => $request['dm_maximum_orders']
]);
// $languages = $request['language'];
// if (in_array('en', $languages)) {
// unset($languages[array_search('en', $languages)]);
// }
// array_unshift($languages, 'en');
// DB::table('business_settings')->updateOrInsert(['key' => 'language'], [
// 'value' => json_encode($languages),
// ]);
DB::table('business_settings')->updateOrInsert(['key' => 'timeformat'], [
'value' => $request['time_format']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'canceled_by_restaurant'], [
'value' => $request['canceled_by_restaurant']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'canceled_by_deliveryman'], [
'value' => $request['canceled_by_deliveryman']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'show_dm_earning'], [
'value' => $request['show_dm_earning']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'toggle_veg_non_veg'], [
'value' => $request['vnv']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'toggle_dm_registration'], [
'value' => $request['dm_self_registration']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'toggle_restaurant_registration'], [
'value' => $request['restaurant_self_registration']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'schedule_order_slot_duration'], [
'value' => $request['schedule_order_slot_duration']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'digit_after_decimal_point'], [
'value' => $request['digit_after_decimal_point']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'delivery_charge_comission'], [
'value' => $request['admin_comission_in_delivery_charge']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'dm_max_cash_in_hand'], [
'value' => $request['dm_max_cash_in_hand']
]);
if(!isset($request->commission) && !isset($request->subscription)){
Toastr::error( translate('You_must_select_at_least_one_business_model_between_commission_and_subscription'));
return back();
}
// For commission Model
if (isset($request->commission) && !isset($request->subscription)) {
DB::table('business_settings')->updateOrInsert(['key' => 'business_model'], [
'value' => json_encode(['commission' => 1, 'subscription' => 0 ])
]);
$business_model= BusinessSetting::where('key', 'business_model')->first();
$business_model = $business_model->value ? json_decode($business_model->value, true) : [];
if ( $business_model && $business_model['subscription'] == 0 ){
Restaurant::where('restaurant_model','unsubscribed')
->update(['restaurant_model' => 'commission',
// 'status' => 1,
]);
}
}
// For subscription model
elseif(isset($request->subscription) && !isset($request->commission)) {
DB::table('business_settings')->updateOrInsert(['key' => 'business_model'], [
'value' => json_encode(['commission' => 0, 'subscription' => 1 ])
]);
$business_model= BusinessSetting::where('key', 'business_model')->first();
$business_model = $business_model->value ? json_decode($business_model->value, true) : [];
if ( $business_model && $business_model['commission'] == 0 ){
Restaurant::where('restaurant_model','commission')
->update(['restaurant_model' => 'unsubscribed',
'status' => 0,]);
}
} else {
DB::table('business_settings')->updateOrInsert(['key' => 'business_model'], [
'value' => json_encode(['commission' => 1, 'subscription' => 1 ])
]);
}
Toastr::success( translate('Successfully updated. To see the changes in app restart the app.'));
return back();
}
public function mail_index()
{
return view('admin-views.business-settings.mail-index');
}
public function mail_config(Request $request)
{
if (env('APP_MODE') == 'demo') {
Toastr::info(translate('messages.update_option_is_disable_for_demo'));
return back();
}
BusinessSetting::updateOrInsert(
['key' => 'mail_config'],
[
'value' => json_encode([
"status" => $request['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']
]),
'updated_at' => now()
]
);
Toastr::success(translate('messages.configuration_updated_successfully'));
return back();
}
public function payment_index()
{
return view('admin-views.business-settings.payment-index');
}
public function payment_update(Request $request, $name)
{
if ($name == 'cash_on_delivery') {
$payment = BusinessSetting::where('key', 'cash_on_delivery')->first();
if (isset($payment) == false) {
DB::table('business_settings')->insert([
'key' => 'cash_on_delivery',
'value' => json_encode([
'status' => $request['status'],
]),
'created_at' => now(),
'updated_at' => now(),
]);
} else {
DB::table('business_settings')->where(['key' => 'cash_on_delivery'])->update([
'key' => 'cash_on_delivery',
'value' => json_encode([
'status' => $request['status'],
]),
'updated_at' => now(),
]);
}
} elseif ($name == 'digital_payment') {
$payment = BusinessSetting::where('key', 'digital_payment')->first();
if (isset($payment) == false) {
DB::table('business_settings')->insert([
'key' => 'digital_payment',
'value' => json_encode([
'status' => $request['status'],
]),
'created_at' => now(),
'updated_at' => now(),
]);
} else {
DB::table('business_settings')->where(['key' => 'digital_payment'])->update([
'key' => 'digital_payment',
'value' => json_encode([
'status' => $request['status'],
]),
'updated_at' => now(),
]);
}
} elseif ($name == 'ssl_commerz_payment') {
$payment = BusinessSetting::where('key', 'ssl_commerz_payment')->first();
if (isset($payment) == false) {
DB::table('business_settings')->insert([
'key' => 'ssl_commerz_payment',
'value' => json_encode([
'status' => 1,
'store_id' => '',
'store_password' => '',
]),
'created_at' => now(),
'updated_at' => now(),
]);
} else {
DB::table('business_settings')->where(['key' => 'ssl_commerz_payment'])->update([
'key' => 'ssl_commerz_payment',
'value' => json_encode([
'status' => $request['status'],
'store_id' => $request['store_id'],
'store_password' => $request['store_password'],
]),
'updated_at' => now(),
]);
}
} elseif ($name == 'razor_pay') {
$payment = BusinessSetting::where('key', 'razor_pay')->first();
if (isset($payment) == false) {
DB::table('business_settings')->insert([
'key' => 'razor_pay',
'value' => json_encode([
'status' => 1,
'razor_key' => '',
'razor_secret' => '',
]),
'created_at' => now(),
'updated_at' => now(),
]);
} else {
DB::table('business_settings')->where(['key' => 'razor_pay'])->update([
'key' => 'razor_pay',
'value' => json_encode([
'status' => $request['status'],
'razor_key' => $request['razor_key'],
'razor_secret' => $request['razor_secret'],
]),
'updated_at' => now(),
]);
}
} elseif ($name == 'paypal') {
$payment = BusinessSetting::where('key', 'paypal')->first();
if (isset($payment) == false) {
DB::table('business_settings')->insert([
'key' => 'paypal',
'value' => json_encode([
'status' => 1,
'paypal_client_id' => '',
'paypal_secret' => '',
]),
'created_at' => now(),
'updated_at' => now(),
]);
} else {
DB::table('business_settings')->where(['key' => 'paypal'])->update([
'key' => 'paypal',
'value' => json_encode([
'status' => $request['status'],
'paypal_client_id' => $request['paypal_client_id'],
'paypal_secret' => $request['paypal_secret'],
]),
'updated_at' => now(),
]);
}
} elseif ($name == 'stripe') {
$payment = BusinessSetting::where('key', 'stripe')->first();
if (isset($payment) == false) {
DB::table('business_settings')->insert([
'key' => 'stripe',
'value' => json_encode([
'status' => 1,
'api_key' => '',
'published_key' => '',
]),
'created_at' => now(),
'updated_at' => now(),
]);
} else {
DB::table('business_settings')->where(['key' => 'stripe'])->update([
'key' => 'stripe',
'value' => json_encode([
'status' => $request['status'],
'api_key' => $request['api_key'],
'published_key' => $request['published_key'],
]),
'updated_at' => now(),
]);
}
} elseif ($name == 'senang_pay') {
$payment = BusinessSetting::where('key', 'senang_pay')->first();
if (isset($payment) == false) {
DB::table('business_settings')->insert([
'key' => 'senang_pay',
'value' => json_encode([
'status' => 1,
'secret_key' => '',
'published_key' => '',
'merchant_id' => '',
]),
'created_at' => now(),
'updated_at' => now(),
]);
} else {
DB::table('business_settings')->where(['key' => 'senang_pay'])->update([
'key' => 'senang_pay',
'value' => json_encode([
'status' => $request['status'],
'secret_key' => $request['secret_key'],
'published_key' => $request['publish_key'],
'merchant_id' => $request['merchant_id'],
]),
'updated_at' => now(),
]);
}
} elseif ($name == 'paystack') {
$payment = BusinessSetting::where('key', 'paystack')->first();
if (isset($payment) == false) {
DB::table('business_settings')->insert([
'key' => 'paystack',
'value' => json_encode([
'status' => 1,
'publicKey' => '',
'secretKey' => '',
'paymentUrl' => '',
'merchantEmail' => '',
]),
'created_at' => now(),
'updated_at' => now(),
]);
} else {
DB::table('business_settings')->where(['key' => 'paystack'])->update([
'key' => 'paystack',
'value' => json_encode([
'status' => $request['status'],
'publicKey' => $request['publicKey'],
'secretKey' => $request['secretKey'],
'paymentUrl' => $request['paymentUrl'],
'merchantEmail' => $request['merchantEmail'],
]),
'updated_at' => now(),
]);
}
} elseif ($name == 'flutterwave') {
$payment = BusinessSetting::where('key', 'flutterwave')->first();
if (isset($payment) == false) {
DB::table('business_settings')->insert([
'key' => 'flutterwave',
'value' => json_encode([
'status' => 1,
'public_key' => '',
'secret_key' => '',
'hash' => '',
]),
'created_at' => now(),
'updated_at' => now(),
]);
} else {
DB::table('business_settings')->where(['key' => 'flutterwave'])->update([
'key' => 'flutterwave',
'value' => json_encode([
'status' => $request['status'],
'public_key' => $request['public_key'],
'secret_key' => $request['secret_key'],
'hash' => $request['hash'],
]),
'updated_at' => now(),
]);
}
} elseif ($name == 'mercadopago') {
$payment = BusinessSetting::updateOrInsert(
['key' => 'mercadopago'],
[
'value' => json_encode([
'status' => $request['status'],
'public_key' => $request['public_key'],
'access_token' => $request['access_token'],
]),
'updated_at' => now()
]
);
} elseif ($name == 'paymob_accept') {
DB::table('business_settings')->updateOrInsert(['key' => 'paymob_accept'], [
'value' => json_encode([
'status' => $request['status'],
'api_key' => $request['api_key'],
'iframe_id' => $request['iframe_id'],
'integration_id' => $request['integration_id'],
'hmac' => $request['hmac'],
]),
'updated_at' => now()
]);
} elseif ($name == 'liqpay') {
DB::table('business_settings')->updateOrInsert(['key' => 'liqpay'], [
'value' => json_encode([
'status' => $request['status'],
'public_key' => $request['public_key'],
'private_key' => $request['private_key']
]),
'updated_at' => now()
]);
} elseif ($name == 'paytm') {
DB::table('business_settings')->updateOrInsert(['key' => 'paytm'], [
'value' => json_encode([
'status' => $request['status'],
'paytm_merchant_key' => $request['paytm_merchant_key'],
'paytm_merchant_mid' => $request['paytm_merchant_mid'],
'paytm_merchant_website' => $request['paytm_merchant_website'],
'paytm_refund_url' => $request['paytm_refund_url'],
]),
'updated_at' => now()
]);
} elseif ($name == 'bkash') {
DB::table('business_settings')->updateOrInsert(['key' => 'bkash'], [
'value' => json_encode([
'status' => $request['status'],
'api_key' => $request['api_key'],
'api_secret' => $request['api_secret'],
'username' => $request['username'],
'password' => $request['password'],
]),
'updated_at' => now()
]);
} elseif ($name == 'paytabs') {
DB::table('business_settings')->updateOrInsert(['key' => 'paytabs'], [
'value' => json_encode([
'status' => $request['status'],
'profile_id' => $request['profile_id'],
'server_key' => $request['server_key'],
'base_url' => $request['base_url']
]),
'updated_at' => now()
]);
}
Toastr::success(translate('messages.payment_settings_updated'));
return back();
}
public function theme_settings()
{
return view('admin-views.business-settings.theme-settings');
}
public function update_theme_settings(Request $request)
{
if (env('APP_MODE') == 'demo') {
Toastr::info(translate('messages.update_option_is_disable_for_demo'));
return back();
}
DB::table('business_settings')->updateOrInsert(['key' => 'theme'], [
'value' => $request['theme']
]);
Toastr::success(translate('theme_settings_updated'));
return back();
}
public function app_settings()
{
return view('admin-views.business-settings.app-settings');
}
public function update_app_settings(Request $request)
{
if (env('APP_MODE') == 'demo') {
Toastr::info(translate('messages.update_option_is_disable_for_demo'));
return back();
}
DB::table('business_settings')->updateOrInsert(['key' => 'app_minimum_version_android_restaurant'], [
'value' => $request['app_minimum_version_android_restaurant']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'app_url_android_restaurant'], [
'value' => $request['app_url_android_restaurant']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'app_minimum_version_ios_restaurant'], [
'value' => $request['app_minimum_version_ios_restaurant']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'app_url_ios_restaurant'], [
'value' => $request['app_url_ios_restaurant']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'app_minimum_version_android_deliveryman'], [
'value' => $request['app_minimum_version_android_deliveryman']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'app_url_android_deliveryman'], [
'value' => $request['app_url_android_deliveryman']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'app_minimum_version_android'], [
'value' => $request['app_minimum_version_android']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'app_minimum_version_ios'], [
'value' => $request['app_minimum_version_ios']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'app_url_android'], [
'value' => $request['app_url_android']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'app_url_ios'], [
'value' => $request['app_url_ios']
]);
Toastr::success(translate('messages.app_settings_updated'));
return back();
}
public function landing_page_settings($tab)
{
if ($tab == 'index') {
return view('admin-views.business-settings.landing-page-settings.index');
} else if ($tab == 'links') {
return view('admin-views.business-settings.landing-page-settings.links');
} else if ($tab == 'speciality') {
return view('admin-views.business-settings.landing-page-settings.speciality');
} else if ($tab == 'testimonial') {
return view('admin-views.business-settings.landing-page-settings.testimonial');
} else if ($tab == 'feature') {
return view('admin-views.business-settings.landing-page-settings.feature');
} else if ($tab == 'image') {
return view('admin-views.business-settings.landing-page-settings.image');
} else if ($tab == 'backgroundChange') {
return view('admin-views.business-settings.landing-page-settings.backgroundChange');
} else if ($tab == 'react') {
return view('admin-views.business-settings.landing-page-settings.react');
} else if ($tab == 'react-feature') {
return view('admin-views.business-settings.landing-page-settings.react_feature');
} else if ($tab == 'platform-order') {
return view('admin-views.business-settings.landing-page-settings.our_platform');
} else if ($tab == 'platform-restaurant') {
return view('admin-views.business-settings.landing-page-settings.restaurant_platform');
} else if ($tab == 'platform-delivery') {
return view('admin-views.business-settings.landing-page-settings.delivery_platform');
} else if ($tab == 'react-half-banner') {
return view('admin-views.business-settings.landing-page-settings.react_half_banner');
}
}
public function update_landing_page_settings(Request $request, $tab)
{
if (env('APP_MODE') == 'demo') {
Toastr::info(translate('messages.update_option_is_disable_for_demo'));
return back();
}
if ($tab == 'text') {
DB::table('business_settings')->updateOrInsert(['key' => 'landing_page_text'], [
'value' => json_encode([
'header_title_1' => $request['header_title_1'],
'header_title_2' => $request['header_title_2'],
'header_title_3' => $request['header_title_3'],
'about_title' => $request['about_title'],
'why_choose_us' => $request['why_choose_us'],
'why_choose_us_title' => $request['why_choose_us_title'],
'testimonial_title' => $request['testimonial_title'],
'mobile_app_section_heading' => $request['mobile_app_section_heading'],
'mobile_app_section_text' => $request['mobile_app_section_text'],
'feature_section_description' => $request['feature_section_description'],
'feature_section_title' => $request['feature_section_title'],
'footer_article' => $request['footer_article'],
'join_us_title' => $request['join_us_title'],
'join_us_sub_title' => $request['join_us_sub_title'],
'join_us_article' => $request['join_us_article'],
'our_platform_title' => $request['our_platform_title'],
'our_platform_article' => $request['our_platform_article'],
'newsletter_title' => $request['newsletter_title'],
'newsletter_article' => $request['newsletter_article'],
])
]);
Toastr::success(translate('messages.landing_page_text_updated'));
} else if ($tab == 'links') {
DB::table('business_settings')->updateOrInsert(['key' => 'landing_page_links'], [
'value' => json_encode([
'app_url_android_status' => $request['app_url_android_status'],
'app_url_android' => $request['app_url_android'],
'app_url_ios_status' => $request['app_url_ios_status'],
'app_url_ios' => $request['app_url_ios'],
'web_app_url_status' => $request['web_app_url_status'],
'web_app_url' => $request['web_app_url'],
'order_now_url_status' => $request['order_now_url_status'],
'order_now_url' => $request['order_now_url']
])
]);
Toastr::success(translate('messages.landing_page_links_updated'));
} else if ($tab == 'speciality') {
$data = [];
$imageName = null;
$speciality = BusinessSetting::where('key', 'speciality')->first();
if ($speciality) {
$data = json_decode($speciality->value, true);
}
if ($request->has('image')) {
$validator = Validator::make($request->all(), [
'image' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
$imageName = \Carbon\Carbon::now()->toDateString() . "-" . uniqid() . ".png";
$request->image->move(public_path('assets/landing/image'), $imageName);
}
array_push($data, [
'img' => $imageName,
'title' => $request->speciality_title
]);
DB::table('business_settings')->updateOrInsert(['key' => 'speciality'], [
'value' => json_encode($data)
]);
Toastr::success(translate('messages.landing_page_speciality_updated'));
} else if ($tab == 'feature') {
$data = [];
$imageName = null;
$feature = BusinessSetting::where('key', 'feature')->first();
if ($feature) {
$data = json_decode($feature->value, true);
}
if ($request->has('image')) {
$validator = Validator::make($request->all(), [
'image' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
$imageName = \Carbon\Carbon::now()->toDateString() . "-" . uniqid() . ".png";
$request->image->move(public_path('assets/landing/image'), $imageName);
}
array_push($data, [
'img' => $imageName,
'title' => $request->feature_title,
'feature_description' => $request->feature_description
]);
DB::table('business_settings')->updateOrInsert(['key' => 'feature'], [
'value' => json_encode($data)
]);
Toastr::success(translate('messages.landing_page_feature_updated'));
}
else if ($tab == 'testimonial') {
$data = [];
$imageName = null;
$speciality = BusinessSetting::where('key', 'testimonial')->first();
if ($speciality) {
$data = json_decode($speciality->value, true);
}
if ($request->has('image')) {
$validator = Validator::make($request->all(), [
'image' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
$imageName = \Carbon\Carbon::now()->toDateString() . "-" . uniqid() . ".png";
$request->image->move(public_path('assets/landing/image'), $imageName);
}
array_push($data, [
'img' => $imageName,
'name' => $request->reviewer_name,
'position' => $request->reviewer_designation,
'detail' => $request->review,
]);
DB::table('business_settings')->updateOrInsert(['key' => 'testimonial'], [
'value' => json_encode($data)
]);
Toastr::success(translate('messages.landing_page_testimonial_updated'));
}
else if ($tab == 'image') {
$data = [];
$images = BusinessSetting::where('key', 'landing_page_images')->first();
if ($images) {
$data = json_decode($images->value, true);
}
if ($request->has('top_content_image')) {
$validator = Validator::make($request->all(), [
'top_content_image' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
$imageName = \Carbon\Carbon::now()->toDateString() . "-" . uniqid() . ".png";
$request->top_content_image->move(public_path('assets/landing/image'), $imageName);
$data['top_content_image'] = $imageName;
}
if ($request->has('about_us_image')) {
$validator = Validator::make($request->all(), [
'about_us_image' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
$imageName = \Carbon\Carbon::now()->toDateString() . "-" . uniqid() . ".png";
$request->about_us_image->move(public_path('assets/landing/image'), $imageName);
$data['about_us_image'] = $imageName;
}
if ($request->has('feature_section_image')) {
$validator = Validator::make($request->all(), [
'feature_section_image' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
$imageName = \Carbon\Carbon::now()->toDateString() . "-" . uniqid() . ".png";
$request->feature_section_image->move(public_path('assets/landing/image'), $imageName);
$data['feature_section_image'] = $imageName;
}
if ($request->has('mobile_app_section_image')) {
$validator = Validator::make($request->all(), [
'mobile_app_section_image' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
$imageName = \Carbon\Carbon::now()->toDateString() . "-" . uniqid() . ".png";
$request->mobile_app_section_image->move(public_path('assets/landing/image'), $imageName);
$data['mobile_app_section_image'] = $imageName;
}
DB::table('business_settings')->updateOrInsert(['key' => 'landing_page_images'], [
'value' => json_encode($data)
]);
Toastr::success(translate('messages.landing_page_image_updated'));
} else if ($tab == 'background-change') {
DB::table('business_settings')->updateOrInsert(['key' => 'backgroundChange'], [
// 'value' => json_encode([
// 'header-bg' => $request['header-bg'],
// 'footer-bg' => $request['footer-bg'],
// 'landing-page-bg' => $request['landing-page-bg']
// ])
'value' => json_encode([
'primary_1_hex' => $request['header-bg'],
'primary_1_rgb' => Helpers::hex_to_rbg($request['header-bg']),
'primary_2_hex' => $request['footer-bg'],
'primary_2_rgb' => Helpers::hex_to_rbg($request['footer-bg']),
])
]);
Toastr::success(translate('messages.background_updated'));
} else if ($tab == 'react_header') {
$data = null;
$image = BusinessSetting::where('key', 'react_header_banner')->first();
if ($image) {
$data = $image->value;
}
$image_name =$data ?? \Carbon\Carbon::now()->toDateString() . "-" . uniqid() . ".png";
if ($request->has('react_header_banner')) {
// $image_name = ;
$validator = Validator::make($request->all(), [
'react_header_banner' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
$data = Helpers::update('react_landing/', $image_name, 'png', $request->file('react_header_banner')) ?? null;
}
DB::table('business_settings')->updateOrInsert(['key' => 'react_header_banner'], [
'value' => $data
]);
Toastr::success(translate('Landing page header banner updated'));
} else if ($tab == 'full-banner') {
$data = [];
$banner_section_full = BusinessSetting::where('key','banner_section_full')->first();
$imageName = null;
if($banner_section_full){
$data = json_decode($banner_section_full->value, true);
$imageName =$data['banner_section_img_full'] ?? null;
}
if ($request->has('banner_section_img_full')) {
$validator = Validator::make($request->all(), [
'banner_section_img_full' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
if (empty($imageName)) {
$imageName = Helpers::upload('react_landing/', 'png', $request->file('banner_section_img_full'));
} else{
$imageName= Helpers::update('react_landing/', $data['banner_section_img_full'], 'png', $request->file('banner_section_img_full')) ;
}
}
$data = [
'banner_section_img_full' => $imageName,
'full_banner_section_title' => $request->full_banner_section_title ?? $banner_section_full['full_banner_section_title'] ,
'full_banner_section_sub_title' => $request->full_banner_section_sub_title ?? $banner_section_full['full_banner_section_sub_title'],
];
DB::table('business_settings')->updateOrInsert(['key' => 'banner_section_full'], [
'value' => json_encode($data)
]);
Toastr::success(translate('messages.landing_page_banner_section_updated'));
} else if ($tab == 'discount-banner') {
$data = [];
$discount_banner = BusinessSetting::where('key','discount_banner')->first();
$imageName = null;
if($discount_banner){
$data = json_decode($discount_banner->value, true);
$imageName =$data['img'] ?? null;
}
if ($request->has('img')) {
$validator = Validator::make($request->all(), [
'img' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
if (empty($imageName)) {
$imageName = Helpers::upload('react_landing/', 'png', $request->file('img'));
} else{
$imageName= Helpers::update('react_landing/', $data['img'], 'png', $request->file('img')) ;
}
}
$data = [
'img' => $imageName,
'title' => $request->title ?? $discount_banner['title'] ,
'sub_title' => $request->sub_title ?? $discount_banner['sub_title'],
];
DB::table('business_settings')->updateOrInsert(['key' => 'discount_banner'], [
'value' => json_encode($data)
]);
Toastr::success(translate('messages.landing_page_discount_banner_section_updated'));
} else if ($tab == 'banner-section-half') {
$data = [];
$imageName = null;
$banner_section_half = BusinessSetting::where('key', 'banner_section_half')->first();
if ($banner_section_half) {
$data = json_decode($banner_section_half->value, true);
}
if ($request->has('image')) {
$validator = Validator::make($request->all(), [
'image' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
$imageName=Helpers::upload('react_landing/','png', $request->file('image')) ;
}
array_push($data, [
'img' => $imageName,
'title' => $request->title,
'sub_title' => $request->sub_title
]);
DB::table('business_settings')->updateOrInsert(['key' => 'banner_section_half'], [
'value' => json_encode($data)
]);
Toastr::success(translate('messages.landing_page_banner_section_updated'));
} else if ($tab == 'app_section_image') {
$data = null;
$image = BusinessSetting::where('key', 'app_section_image')->first();
if ($image) {
$data = $image->value;
}
$image_name =$data ?? \Carbon\Carbon::now()->toDateString() . "-" . uniqid() . ".png";
if ($request->has('app_section_image')) {
$validator = Validator::make($request->all(), [
'app_section_image' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
$data = Helpers::update('react_landing/', $image_name, 'png', $request->file('app_section_image')) ?? null;
}
DB::table('business_settings')->updateOrInsert(['key' => 'app_section_image'], [
'value' => $data
]);
Toastr::success(translate('App section image updated'));
} else if ($tab == 'footer_logo') {
$data = null;
$image = BusinessSetting::where('key', 'footer_logo')->first();
if ($image) {
$data = $image->value;
}
$image_name =$data ?? \Carbon\Carbon::now()->toDateString() . "-" . uniqid() . ".png";
if ($request->has('footer_logo')) {
$validator = Validator::make($request->all(), [
'footer_logo' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
$data = Helpers::update('react_landing/', $image_name, 'png', $request->file('footer_logo')) ?? null;
}
DB::table('business_settings')->updateOrInsert(['key' => 'footer_logo'], [
'value' => $data
]);
Toastr::success(translate('Footer logo updated'));
} else if ($tab == 'react-feature') {
$data = [];
$imageName = null;
$feature = BusinessSetting::where('key', 'react_feature')->first();
if ($feature) {
$data = json_decode($feature->value, true);
}
if ($request->has('image')) {
$validator = Validator::make($request->all(), [
'image' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
$imageName=Helpers::upload('react_landing/feature/','png', $request->file('image')) ;
}
array_push($data, [
'img' => $imageName,
'title' => $request->feature_title,
'feature_description' => $request->feature_description
]);
DB::table('business_settings')->updateOrInsert(['key' => 'react_feature'], [
'value' => json_encode($data)
]);
Toastr::success(translate('messages.landing_page_feature_updated'));
} else if ($tab == 'platform-main') {
if($request->button == 'restaurant_platform'){
$data = [];
$imageName = null;
$restaurant_platform = BusinessSetting::where('key', 'restaurant_platform')->first();
if ($restaurant_platform) {
$data = json_decode($restaurant_platform->value, true);
$imageName = $data['image'] ?? null;
}
$image_name =$data['image'] ?? \Carbon\Carbon::now()->toDateString() . "-" . uniqid() . ".png";
if ($request->has('image')) {
$validator = Validator::make($request->all(), [
'image' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
$imageName = Helpers::update('landing/', $image_name, 'png', $request->file('image')) ?? null;
}
$data= [
'image' => $imageName,
'title' => $request->title,
'url' => $request->url,
'url_status' => $request->url_status ?? 0,
];
DB::table('business_settings')->updateOrInsert(['key' => 'restaurant_platform'], [
'value' => json_encode($data)
]);
}
if($request->button == 'order_platform'){
$data = [];
$imageName = null;
$order_platform = BusinessSetting::where('key', 'order_platform')->first();
if ($order_platform) {
$data = json_decode($order_platform->value, true);
$imageName = $data['image'] ?? null;
}
$image_name =$data['image'] ?? \Carbon\Carbon::now()->toDateString() . "-" . uniqid() . ".png";
if ($request->has('image')) {
$validator = Validator::make($request->all(), [
'image' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
$imageName = Helpers::update('landing/', $image_name, 'png', $request->file('image')) ?? null;
}
$data= [
'image' => $imageName,
'title' => $request->title,
'url' => $request->url,
'url_status' => $request->url_status ?? 0,
];
DB::table('business_settings')->updateOrInsert(['key' => 'order_platform'], [
'value' => json_encode($data)
]);
}
if($request->button == 'delivery_platform'){
// dd($request->all());
$data = [];
$imageName = null;
$delivery_platform = BusinessSetting::where('key', 'delivery_platform')->first();
if ($delivery_platform) {
$data = json_decode($delivery_platform->value, true);
$imageName = $data['image'] ?? null;
}
$image_name =$data['image'] ?? \Carbon\Carbon::now()->toDateString() . "-" . uniqid() . ".png";
if ($request->has('image')) {
$validator = Validator::make($request->all(), [
'image' => 'required|max:2048',
]);
if ($validator->fails()) {
Toastr::error( translate('Image size must be within 2mb'));
return back();
}
$imageName = Helpers::update('landing/', $image_name, 'png', $request->file('image')) ?? null;
}
$data= [
'image' => $imageName,
'title' => $request->title,
// 'sub_title' => $request->sub_title,
// 'detail' => $request->detail,
'url' => $request->url,
'url_status' => $request->url_status ?? 0,
];
DB::table('business_settings')->updateOrInsert(['key' => 'delivery_platform'], [
'value' => json_encode($data)
]);
}
Toastr::success(translate('messages.landing_page_our_platform_updated'));
}
else if ($tab == 'platform-data') {
if($request->button == 'platform_order_data'){
$data = [];
$imageName = null;
$platform_order_data = BusinessSetting::where('key', 'platform_order_data')->first();
if ($platform_order_data) {
$data = json_decode($platform_order_data->value, true);
}
array_push($data, [
'title' => $request->title,
'detail' => $request->detail,
]);
DB::table('business_settings')->updateOrInsert(['key' => 'platform_order_data'], [
'value' => json_encode($data)
]);
Toastr::success(translate('messages.landing_page_order_platform_data_added'));
}
if($request->button == 'platform_restaurant_data'){
$data = [];
$imageName = null;
$platform_restaurant_data = BusinessSetting::where('key', 'platform_restaurant_data')->first();
if ($platform_restaurant_data) {
$data = json_decode($platform_restaurant_data->value, true);
}
array_push($data, [
'title' => $request->title,
'detail' => $request->detail,
]);
DB::table('business_settings')->updateOrInsert(['key' => 'platform_restaurant_data'], [
'value' => json_encode($data)
]);
Toastr::success(translate('messages.landing_page_restaurant_platform_data_added'));
}
if($request->button == 'platform_delivery_data'){
$data = [];
$imageName = null;
$platform_delivery_data = BusinessSetting::where('key', 'platform_delivery_data')->first();
if ($platform_delivery_data) {
$data = json_decode($platform_delivery_data->value, true);
}
array_push($data, [
'title' => $request->title,
'detail' => $request->detail,
]);
DB::table('business_settings')->updateOrInsert(['key' => 'platform_delivery_data'], [
'value' => json_encode($data)
]);
Toastr::success(translate('messages.landing_page_delivary_platform_data_updated'));
}
}
return back();
}
public function delete_landing_page_settings($tab, $key)
{
if (env('APP_MODE') == 'demo') {
Toastr::info(translate('messages.update_option_is_disable_for_demo'));
return back();
}
$item = BusinessSetting::where('key', $tab)->first();
$data = $item ? json_decode($item->value, true) : null;
if ($data && array_key_exists($key, $data)) {
if($tab == 'react_feature' && isset($data[$key]['img']) && Storage::disk('public')->exists('react_landing/feature/'. $data[$key]['img'])){
Storage::disk('public')->delete('react_landing/feature/'. $data[$key]['img']);
}
if ( $tab != 'react_feature' && isset($data[$key]['img']) && file_exists(public_path('assets/landing/image') . $data[$key]['img'])) {
unlink(public_path('assets/landing/image') . $data[$key]['img']);
}
array_splice($data, $key, 1);
$item->value = json_encode($data);
$item->save();
Toastr::success(translate('messages.' . $tab) . ' ' . translate('messages.deleted'));
return back();
}
Toastr::error(translate('messages.not_found'));
return back();
}
public function currency_index()
{
return view('admin-views.business-settings.currency-index');
}
public function currency_store(Request $request)
{
$request->validate([
'currency_code' => 'required|unique:currencies',
]);
Currency::create([
"country" => $request['country'],
"currency_code" => $request['currency_code'],
"currency_symbol" => $request['symbol'],
"exchange_rate" => $request['exchange_rate'],
]);
Toastr::success(translate('messages.currency_added_successfully'));
return back();
}
public function currency_edit($id)
{
$currency = Currency::find($id);
return view('admin-views.business-settings.currency-update', compact('currency'));
}
public function currency_update(Request $request, $id)
{
Currency::where(['id' => $id])->update([
"country" => $request['country'],
"currency_code" => $request['currency_code'],
"currency_symbol" => $request['symbol'],
"exchange_rate" => $request['exchange_rate'],
]);
Toastr::success(translate('messages.currency_updated_successfully'));
return redirect('restaurant-panel/business-settings/currency-add');
}
public function currency_delete($id)
{
Currency::where(['id' => $id])->delete();
Toastr::success(translate('messages.currency_deleted_successfully'));
return back();
}
public function terms_and_conditions()
{
$tnc = BusinessSetting::where(['key' => 'terms_and_conditions'])->first();
if ($tnc == false) {
BusinessSetting::insert([
'key' => 'terms_and_conditions',
'value' => ''
]);
}
return view('admin-views.business-settings.terms-and-conditions', compact('tnc'));
}
public function terms_and_conditions_update(Request $request)
{
BusinessSetting::where(['key' => 'terms_and_conditions'])->update([
'value' => $request->tnc
]);
Toastr::success(translate('messages.terms_and_condition_updated'));
return back();
}
public function privacy_policy()
{
$data = BusinessSetting::where(['key' => 'privacy_policy'])->first();
if ($data == false) {
$data = [
'key' => 'privacy_policy',
'value' => '',
];
BusinessSetting::insert($data);
}
return view('admin-views.business-settings.privacy-policy', compact('data'));
}
public function privacy_policy_update(Request $request)
{
BusinessSetting::where(['key' => 'privacy_policy'])->update([
'value' => $request->privacy_policy,
]);
Toastr::success(translate('messages.privacy_policy_updated'));
return back();
}
public function refund_policy()
{
$data = BusinessSetting::where(['key' => 'refund_policy'])->first();
if ($data == false) {
$values= [
'data' => '',
'status' => 0,
];
DB::table('business_settings')->updateOrInsert(['key' => 'refund_policy'], [
'value' => json_encode($values)
]);
}
$data = json_decode(BusinessSetting::where(['key' => 'refund_policy'])->first()->value,true);
return view('admin-views.business-settings.refund_policy', compact('data'));
}
public function refund_policy_update(Request $request)
{
$data = json_decode(BusinessSetting::where(['key' => 'refund_policy'])->first()->value,true);
$values= [
'data' => $request->refund_policy,
'status' => $data['status'],
];
BusinessSetting::where(['key' => 'refund_policy'])->update([
'value' => $values,
]);
Toastr::success(translate('messages.refund_policy_updated'));
return back();
}
public function refund_policy_status($status)
{
$data = json_decode(BusinessSetting::where(['key' => 'refund_policy'])->first()->value,true);
$values= [
'data' => $data['data'],
'status' => $status ,
];
BusinessSetting::where(['key' => 'refund_policy'])->update([
'value' => $values,
]);
return response()->json(['status'=>"changed"]);
}
public function shipping_policy()
{
$data = BusinessSetting::where(['key' => 'shipping_policy'])->first();
if ($data == false) {
$values= [
'data' => '',
'status' => 0,
];
DB::table('business_settings')->updateOrInsert(['key' => 'shipping_policy'], [
'value' => json_encode($values)
]);
}
$data = json_decode(BusinessSetting::where(['key' => 'shipping_policy'])->first()->value,true);
return view('admin-views.business-settings.shipping_policy', compact('data'));
}
public function shipping_policy_update(Request $request)
{
$data = json_decode(BusinessSetting::where(['key' => 'shipping_policy'])->first()->value,true);
$values= [
'data' => $request->shipping_policy,
'status' => $data['status'],
];
BusinessSetting::where(['key' => 'shipping_policy'])->update([
'value' => $values,
]);
Toastr::success(translate('messages.shipping_policy_updated'));
return back();
}
public function shipping_policy_status($status)
{
$data = json_decode(BusinessSetting::where(['key' => 'shipping_policy'])->first()->value,true);
$values= [
'data' => $data['data'],
'status' => $status,
];
BusinessSetting::where(['key' => 'shipping_policy'])->update([
'value' => $values,
]);
return response()->json(['status'=>"changed"]);
}
public function cancellation_policy()
{
$data = BusinessSetting::where(['key' => 'cancellation_policy'])->first();
if ($data == false) {
$values= [
'data' => '',
'status' => 0,
];
DB::table('business_settings')->updateOrInsert(['key' => 'cancellation_policy'], [
'value' => json_encode($values)
]);
}
$data = json_decode(BusinessSetting::where(['key' => 'cancellation_policy'])->first()->value,true);
return view('admin-views.business-settings.cancellation_policy', compact('data'));
}
public function cancellation_policy_update(Request $request)
{
$data = json_decode(BusinessSetting::where(['key' => 'cancellation_policy'])->first()->value,true);
$values= [
'data' => $request->cancellation_policy,
'status' => $data['status'],
];
BusinessSetting::where(['key' => 'cancellation_policy'])->update([
'value' => $values,
]);
Toastr::success(translate('messages.cancellation_policy_updated'));
return back();
}
public function cancellation_policy_status($status)
{
$data = json_decode(BusinessSetting::where(['key' => 'cancellation_policy'])->first()->value,true);
$values= [
'data' => $data['data'],
'status' => $status,
];
BusinessSetting::where(['key' => 'cancellation_policy'])->update([
'value' => $values,
]);
return response()->json(['status'=>"changed"]);
}
public function about_us()
{
$data = BusinessSetting::where(['key' => 'about_us'])->first();
if ($data == false) {
$data = [
'key' => 'about_us',
'value' => '',
];
BusinessSetting::insert($data);
}
return view('admin-views.business-settings.about-us', compact('data'));
}
public function about_us_update(Request $request)
{
BusinessSetting::where(['key' => 'about_us'])->update([
'value' => $request->about_us,
]);
Toastr::success(translate('messages.about_us_updated'));
return back();
}
public function fcm_index()
{
$fcm_credentials = Helpers::get_business_settings('fcm_credentials');
return view('admin-views.business-settings.fcm-index', compact('fcm_credentials'));
}
public function update_fcm(Request $request)
{
DB::table('business_settings')->updateOrInsert(['key' => 'fcm_project_id'], [
'value' => $request['projectId']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'push_notification_key'], [
'value' => $request['push_notification_key']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'fcm_credentials'], [
'value' => json_encode([
'apiKey'=> $request->apiKey,
'authDomain'=> $request->authDomain,
'projectId'=> $request->projectId,
'storageBucket'=> $request->storageBucket,
'messagingSenderId'=> $request->messagingSenderId,
'appId'=> $request->appId,
'measurementId'=> $request->measurementId
])
]);
Toastr::success(translate('messages.settings_updated'));
return back();
}
public function update_fcm_messages(Request $request)
{
DB::table('business_settings')->updateOrInsert(['key' => 'order_pending_message'], [
'value' => json_encode([
'status' => $request['pending_status'] == 1 ? 1 : 0,
'message' => $request['pending_message']
])
]);
DB::table('business_settings')->updateOrInsert(['key' => 'order_confirmation_msg'], [
'value' => json_encode([
'status' => $request['confirm_status'] == 1 ? 1 : 0,
'message' => $request['confirm_message']
])
]);
DB::table('business_settings')->updateOrInsert(['key' => 'order_processing_message'], [
'value' => json_encode([
'status' => $request['processing_status'] == 1 ? 1 : 0,
'message' => $request['processing_message']
])
]);
DB::table('business_settings')->updateOrInsert(['key' => 'out_for_delivery_message'], [
'value' => json_encode([
'status' => $request['out_for_delivery_status'] == 1 ? 1 : 0,
'message' => $request['out_for_delivery_message']
])
]);
DB::table('business_settings')->updateOrInsert(['key' => 'order_delivered_message'], [
'value' => json_encode([
'status' => $request['delivered_status'] == 1 ? 1 : 0,
'message' => $request['delivered_message']
])
]);
DB::table('business_settings')->updateOrInsert(['key' => 'delivery_boy_assign_message'], [
'value' => json_encode([
'status' => $request['delivery_boy_assign_status'] == 1 ? 1 : 0,
'message' => $request['delivery_boy_assign_message']
])
]);
// DB::table('business_settings')->updateOrInsert(['key' => 'delivery_boy_start_message'], [
// 'value' => json_encode([
// 'status' => $request['delivery_boy_start_status'] == 1 ? 1 : 0,
// 'message' => $request['delivery_boy_start_message']
// ])
// ]);
DB::table('business_settings')->updateOrInsert(['key' => 'delivery_boy_delivered_message'], [
'value' => json_encode([
'status' => $request['delivery_boy_delivered_status'] == 1 ? 1 : 0,
'message' => $request['delivery_boy_delivered_message']
])
]);
DB::table('business_settings')->updateOrInsert(['key' => 'order_handover_message'], [
'value' => json_encode([
'status' => $request['order_handover_message_status'] == 1 ? 1 : 0,
'message' => $request['order_handover_message']
])
]);
DB::table('business_settings')->updateOrInsert(['key' => 'order_cancled_message'], [
'value' => json_encode([
'status' => $request['order_cancled_message_status'] == 1 ? 1 : 0,
'message' => $request['order_cancled_message']
])
]);
DB::table('business_settings')->updateOrInsert(['key' => 'order_refunded_message'], [
'value' => json_encode([
'status' => $request['order_refunded_message_status'] == 1 ? 1 : 0,
'message' => $request['order_refunded_message']
])
]);
DB::table('business_settings')->updateOrInsert(['key' => 'refund_cancel_message'], [
'value' => json_encode([
'status' => $request['refund_cancel_message_status'] == 1 ? 1 : 0,
'message' => $request['refund_cancel_message']
])
]);
Toastr::success(translate('messages.message_updated'));
return back();
}
public function location_index()
{
return view('admin-views.business-settings.location-index');
}
public function location_setup(Request $request)
{
$restaurant = Helpers::get_restaurant_id();
$restaurant->latitude = $request['latitude'];
$restaurant->longitude = $request['longitude'];
$restaurant->save();
Toastr::success(translate('messages.settings_updated'));
return back();
}
public function config_setup()
{
return view('admin-views.business-settings.config');
}
public function config_update(Request $request)
{
DB::table('business_settings')->updateOrInsert(['key' => 'map_api_key'], [
'value' => $request['map_api_key']
]);
DB::table('business_settings')->updateOrInsert(['key' => 'map_api_key_server'], [
'value' => $request['map_api_key_server']
]);
Toastr::success(translate('messages.config_data_updated'));
return back();
}
public function toggle_settings($key, $value)
{
DB::table('business_settings')->updateOrInsert(['key' => $key], [
'value' => $value
]);
Toastr::success(translate('messages.app_settings_updated'));
return back();
}
public function viewSocialLogin()
{
$data = BusinessSetting::where('key', 'social_login')->first();
if(! $data){
Helpers::insert_business_settings_key('social_login','[{"login_medium":"google","client_id":"","client_secret":"","status":"0"},{"login_medium":"facebook","client_id":"","client_secret":"","status":""}]');
$data = BusinessSetting::where('key', 'social_login')->first();
}
$apple = BusinessSetting::where('key', 'apple_login')->first();
if (!$apple) {
Helpers::insert_business_settings_key('apple_login', '[{"login_medium":"apple","client_id":"","client_secret":"","team_id":"","key_id":"","service_file":"","redirect_url":"","status":""}]');
$apple = BusinessSetting::where('key', 'apple_login')->first();
}
$appleLoginServices = json_decode($apple->value, true);
$socialLoginServices = json_decode($data->value, true);
return view('admin-views.business-settings.social-login.view', compact('socialLoginServices','appleLoginServices'));
}
public function updateSocialLogin($service, Request $request)
{
$socialLogin = BusinessSetting::where('key', 'social_login')->first();
$credential_array = [];
foreach (json_decode($socialLogin['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'],
];
array_push($credential_array, $cred);
} else {
array_push($credential_array, $data);
}
}
BusinessSetting::where('key', 'social_login')->update([
'value' => $credential_array
]);
Toastr::success(translate('messages.credential_updated', ['service' => $service]));
return redirect()->back();
}
public function updateAppleLogin($service, Request $request)
{
$appleLogin = BusinessSetting::where('key', 'apple_login')->first();
$credential_array = [];
if($request->hasfile('service_file')){
$fileName = Helpers::upload('apple-login/', 'p8', $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'],
'team_id' => $request['team_id'],
'key_id' => $request['key_id'],
'service_file' => isset($fileName)?$fileName:$data['service_file'],
'redirect_url' => $request['redirect_url'],
];
array_push($credential_array, $cred);
} else {
array_push($credential_array, $data);
}
}
BusinessSetting::where('key', 'apple_login')->update([
'value' => $credential_array
]);
Toastr::success(translate('messages.credential_updated', ['service' => $service]));
return redirect()->back();
}
//recaptcha
public function recaptcha_index(Request $request)
{
return view('admin-views.business-settings.recaptcha-index');
}
public function recaptcha_update(Request $request)
{
DB::table('business_settings')->updateOrInsert(['key' => 'recaptcha'], [
'key' => 'recaptcha',
'value' => json_encode([
'status' => $request['status'],
'site_key' => $request['site_key'],
'secret_key' => $request['secret_key']
]),
'created_at' => now(),
'updated_at' => now(),
]);
Toastr::success(translate('messages.updated_successfully'));
return back();
}
public function send_mail(Request $request)
{
$response_flag = 0;
try {
Mail::to($request->email)->send(new \App\Mail\TestEmailSender());
$response_flag = 1;
} catch (\Exception $exception) {
info($exception);
$response_flag = 2;
}
return response()->json(['success' => $response_flag]);
}
public function react_setup()
{
Helpers::react_domain_status_check();
return view('admin-views.business-settings.react-setup');
}
public function react_update(Request $request)
{
$request->validate([
'react_license_code'=>'required',
'react_domain'=>'required'
],[
'react_license_code.required'=>translate('messages.license_code_is_required'),
'react_domain.required'=>translate('messages.doamain_is_required'),
]);
if(Helpers::activation_submit($request['react_license_code'])){
DB::table('business_settings')->updateOrInsert(['key' => 'react_setup'], [
'value' => json_encode([
'status'=>1,
'react_license_code'=>$request['react_license_code'],
'react_domain'=>$request['react_domain'],
'react_platform' => 'codecanyon'
])
]);
Toastr::success(translate('messages.react_data_updated'));
return back();
}
elseif(Helpers::react_activation_check($request->react_domain, $request->react_license_code)){
DB::table('business_settings')->updateOrInsert(['key' => 'react_setup'], [
'value' => json_encode([
'status'=>1,
'react_license_code'=>$request['react_license_code'],
'react_domain'=>$request['react_domain'],
'react_platform' => 'iss'
])
]);
Toastr::success(translate('messages.react_data_updated'));
return back();
}
Toastr::error(translate('messages.Invalid_license_code_or_unregistered_domain'));
return back()->withInput(['invalid-data'=>true]);
}
public function site_direction(Request $request){
if (env('APP_MODE') == 'demo') {
session()->put('site_direction', ($request->status == 1?'ltr':'rtl'));
return response()->json();
}
if($request->status == 1){
DB::table('business_settings')->updateOrInsert(['key' => 'site_direction'], [
'value' => 'ltr'
]);
} else
{
DB::table('business_settings')->updateOrInsert(['key' => 'site_direction'], [
'value' => 'rtl'
]);
}
return ;
}
}