group_id != 1){ return redirect('home'); } $this->data['title'] = 'General Settings'; $this->data['settings'] = Settings::findorFail(1); $firebase = ""; $file_to_open = base_path() . "/resources/views/firebase.blade.php"; if(file_exists($file_to_open)){ $firebase = file_get_contents($file_to_open); } $this->data['firebase'] = $firebase; $google_analytics = ""; $file_to_open = base_path() . "/resources/views/google_analytics.blade.php"; if(file_exists($file_to_open)){ $google_analytics = file_get_contents($file_to_open); } $this->data['google_analytics'] = $google_analytics; $template_welcome = ""; $file_to_open = base_path() . "/resources/views/email/welcome.blade.php"; if(file_exists($file_to_open)){ $template_welcome = file_get_contents($file_to_open); } $this->data['template_welcome'] = $template_welcome; $template_reservation = ""; $file_to_open = base_path() . "/resources/views/email/reservation.blade.php"; if(file_exists($file_to_open)){ $template_reservation = file_get_contents($file_to_open); } $this->data['template_reservation'] = $template_reservation; $header_code = ""; $file_to_open = base_path() . "/resources/views/header_code.blade.php"; if(file_exists($file_to_open)){ $header_code = file_get_contents($file_to_open); } $this->data['header_code'] = $header_code; return view('admin.settings.settings', $this->data); } /* | Save settings |-------------------------------------------------------------------------- */ public function updateSettings(Request $request) { if(Auth::User()->group_id != 1){ return redirect('home'); } $settings = Settings::find(1); (empty($settings)) ? $settings = new Settings : ''; //general $settings->name= $request->name; $settings->email = $request->email; $settings->phone_no = $request->phone_no; $settings->mobile_no = $request->mobile_no; //social $settings->facebook = $request->facebook; $settings->twitter = $request->twitter; $settings->google = $request->google; $settings->instagram = $request->instagram; $settings->yelp = $request->yelp; $settings->tripadvisor = $request->tripadvisor; $settings->youtube = $request->youtube; //payment $settings->delivery_time = $request->delivery_time; $settings->delivery_charges = $request->delivery_charges; $settings->tax = $request->tax; $settings->minimum_order = $request->minimum_order; $settings->service_charges = $request->service_charges; $settings->mop = $request->mop; //receipt $settings->receipt_header = $request->receipt_header; $settings->receipt_footer = $request->receipt_footer; $settings->reprint_key = $request->reprint_key; $settings->kitchen_receipt = $request->kitchen_receipt; $settings->no_of_print_receipt = $request->no_of_print_receipt; //orders $settings->order_delete_key = $request->order_delete_key; if(input::hasfile("receipt_image")){ if($request->old_receipt_image && $request->old_receipt_image != ''){ File::delete(public_path().'/receipt/' . $request->old_receipt_image); } $image = $request->file('receipt_image'); $imagename = time().'.'.$image->getClientOriginalExtension(); $destinationPath = public_path('/receipt'); $image->move($destinationPath, $imagename); $settings->receipt_image = $imagename; } //del if($request->del_receipt_image && $request->del_receipt_image == 'true'){ File::delete(public_path().'/receipt/' . $settings->receipt_image); $settings->receipt_image = ''; } //web availability $settings->web_ordering = $request->web_ordering; if($request->web_ordering == 0){ $settings->web_ordering_msg = $request->web_ordering_msg; } else{ $settings->web_ordering_msg = ''; } //app availability $settings->app_ordering = $request->app_ordering; if($request->app_ordering == 0){ $settings->app_ordering_msg = $request->app_ordering_msg; }else{ $settings->app_ordering_msg = ''; } //emails $settings->email_online_order = $request->email_online_order; $settings->email_contact_us = $request->email_contact_us; // Handle site logo upload if($request->hasfile("site_logo")){ if($settings->site_logo && $settings->site_logo != ''){ File::delete(public_path().'/uploads/settings/' . $settings->site_logo); } $logo = $request->file('site_logo'); $logoName = 'logo-'.time().'.'.$logo->getClientOriginalExtension(); $destinationPath = public_path('/uploads/settings'); $logo->move($destinationPath, $logoName); $settings->site_logo = $logoName; } // Handle favicon upload if($request->hasfile("favicon")){ if($settings->favicon && $settings->favicon != ''){ File::delete(public_path().'/uploads/settings/' . $settings->favicon); } $favicon = $request->file('favicon'); $faviconName = 'favicon-'.time().'.'.$favicon->getClientOriginalExtension(); $destinationPath = public_path('/uploads/settings'); $favicon->move($destinationPath, $faviconName); $settings->favicon = $faviconName; } // Handle logo deletion if($request->del_site_logo && $request->del_site_logo == 'true'){ File::delete(public_path().'/uploads/settings/' . $settings->site_logo); $settings->site_logo = ''; } // Handle favicon deletion if($request->del_favicon && $request->del_favicon == 'true'){ File::delete(public_path().'/uploads/settings/' . $settings->favicon); $settings->favicon = ''; } $settings->save(); if($request->firebase){ $firebase = $request->firebase; unlink(base_path() . "/resources/views/firebase.blade.php"); $fp = fopen(base_path() . "/resources/views/firebase.blade.php","wb"); fwrite($fp,$firebase); fclose($fp); } if ($request->has('google_analytics')) { $google_analytics = $request->google_analytics; $google_analytics_file = base_path('resources/views/google_analytics.blade.php'); try { if (empty(trim($google_analytics))) { file_put_contents($google_analytics_file, ''); } else { if (!file_exists(dirname($google_analytics_file))) { mkdir(dirname($google_analytics_file), 0755, true); } if (file_exists($google_analytics_file)) { unlink($google_analytics_file); } file_put_contents($google_analytics_file, $google_analytics); } } catch (\Exception $e) { return redirect()->back()->with('error', 'Failed to update google analytics: ' . $e->getMessage()); } } if($request->template_welcome){ $template_welcome = $request->template_welcome; unlink(base_path() . "/resources/views/email/welcome.blade.php"); $fp = fopen(base_path() . "/resources/views/email/welcome.blade.php","wb"); fwrite($fp,$template_welcome); fclose($fp); } if($request->template_reservation){ $template_reservation = $request->template_reservation; unlink(base_path() . "/resources/views/email/reservation.blade.php"); $fp = fopen(base_path() . "/resources/views/email/reservation.blade.php","wb"); fwrite($fp,$template_reservation); fclose($fp); } // Handle header code file if ($request->has('header_code')) { $header_code = $request->header_code; $header_file = base_path('resources/views/header_code.blade.php'); try { if (empty(trim($header_code))) { file_put_contents($header_file, ''); } else { if (!file_exists(dirname($header_file))) { mkdir(dirname($header_file), 0755, true); } if (file_exists($header_file)) { unlink($header_file); } file_put_contents($header_file, $header_code); } } catch (\Exception $e) { return redirect()->back()->with('error', 'Failed to update header code: ' . $e->getMessage()); } } $request->session()->flash('message', 'Settings updated successfully!'); return back(); } /* | Settings address view |-------------------------------------------------------------------------- */ public function get_address() { $this->data['title'] = 'Address'; $this->data['setting'] = Settings::findorFail(1); $content = ""; $file_to_open = base_path() . "/resources/views/location.blade.php"; if(file_exists($file_to_open)){ $content = file_get_contents($file_to_open); } $this->data['map_iframe'] = $content; return view('admin.settings.address', $this->data); } /* | Settings Edit address |-------------------------------------------------------------------------- */ public function edit_address(Request $request) { $settings = Settings::findorFail(1); (empty($settings)) ? $settings = new Settings : ''; $settings->address = $request->address; $settings->city = $request->city; $settings->state = $request->state; $settings->zip = $request->zip; $settings->country = $request->country; $settings->save(); if($request->map_iframe){ $content = $request->map_iframe; unlink(base_path() . "/resources/views/location.blade.php"); $fp = fopen(base_path() . "/resources/views/location.blade.php","wb"); fwrite($fp,$content); fclose($fp); } $request->session()->flash('message', 'Address updated successfully!'); return back(); } /* | Settings timing view |-------------------------------------------------------------------------- */ public function get_timing() { $this->data['title'] = 'Hours'; $timings = Settings::findorFail(1); $this->data['timings'] = json_decode($timings->timing); $content = ""; $file_to_open = base_path() . "/resources/views/pickup_timings.blade.php"; if(file_exists($file_to_open)){ $content = file_get_contents($file_to_open); } $this->data['pickup_timings'] = $content; return view('admin.settings.timing', $this->data); } /* | Settings timing save |-------------------------------------------------------------------------- */ public function save_timing(Request $request){ $timings = array( 'monday_status'=> $request->monday_status, 'monday_opening'=> date("H:i", strtotime($request->monday_opening)), 'monday_closing'=> date("H:i", strtotime($request->monday_closing)), 'tuesday_status'=>$request->tuesday_status, 'tuesday_opening'=> date("H:i", strtotime($request->tuesday_opening)), 'tuesday_closing'=> date("H:i", strtotime($request->tuesday_closing)), 'wednesday_status'=>$request->wednesday_status, 'wednesday_opening'=> date("H:i", strtotime($request->wednesday_opening)), 'wednesday_closing'=> date("H:i", strtotime($request->wednesday_closing)), 'thursday_status'=>$request->thursday_status, 'thursday_opening'=> date("H:i", strtotime($request->thursday_opening)), 'thursday_closing'=> date("H:i", strtotime($request->thursday_closing)), 'friday_status'=>$request->friday_status, 'friday_opening'=> date("H:i", strtotime($request->friday_opening)), 'friday_closing'=> date("H:i", strtotime($request->friday_closing)), 'saturday_status'=>$request->saturday_status, 'saturday_opening'=> date("H:i", strtotime($request->saturday_opening)), 'saturday_closing'=> date("H:i", strtotime($request->saturday_closing)), 'sunday_status'=>$request->sunday_status, 'sunday_opening'=> date("H:i", strtotime($request->sunday_opening)), 'sunday_closing'=> date("H:i", strtotime($request->sunday_closing)), ); $settings = Settings::findorFail(1); (empty($settings)) ? $settings = new Settings : ''; $settings->timing = json_encode($timings); $settings->save(); if($request->pickup_timings){ $content = $request->pickup_timings; unlink(base_path() . "/resources/views/pickup_timings.blade.php"); $fp = fopen(base_path() . "/resources/views/pickup_timings.blade.php","wb"); fwrite($fp,$content); fclose($fp); } $request->session()->flash('message', 'Hours updated successfuly!'); return back(); } /* | Settings delivery areas view |-------------------------------------------------------------------------- */ public function get_delivery_areas(Request $request) { $this->data['title'] = 'Delivery Areas'; $this->data['delivery_areas'] = DB::table('delivery_areas')->get(); foreach($this->data['delivery_areas'] as $row){ if($row->cost == 22.000){ $new_cost = str_replace(22.000,22000.000,$row->cost); $area = DeliveryAreas::find($row->id); $area->cost = $new_cost; $area->save(); } } return view('admin.settings.delivery_areas', $this->data); } /* | Save devlivery area |-------------------------------------------------------------------------- */ public function save_delivery_areas(Request $request){ $validator = Validator::make($request->all(), [ 'area' => 'required' ]); if ($validator->fails()) { return back()->withErrors($validator)->withInput(); }else{ $devlivery_area = new DeliveryAreas; $devlivery_area->area = $request->area; $devlivery_area->locality = $request->locality; $devlivery_area->cost = $request->cost; $devlivery_area->save(); $request->session()->flash('message', 'Task was successful!'); return back(); } } /* | Get delivery area |-------------------------------------------------------------------------- */ public function get_delivery_area(Request $request) { $delivery_area = DB::table('delivery_areas')->where('id',$request->id)->first(); return response()->json($delivery_area); } /* | update devlivery area |-------------------------------------------------------------------------- */ public function update_delivery_area(Request $request) { $validator = Validator::make($request->all(), [ 'area' => 'required' ]); if ($validator->fails()) { return back()->withErrors($validator)->withInput(); }else{ $devlivery_area = DeliveryAreas::find($request->id); $devlivery_area->area = $request->area; $devlivery_area->locality = $request->locality; $devlivery_area->cost = $request->cost; $devlivery_area->save(); $request->session()->flash('message', 'Task was successful!'); return back(); } } /* | Delete delivery area |-------------------------------------------------------------------------- */ public function delete_devliery_area(Request $request) { if($request->id){ $delete = DeliveryAreas::findorFail($request->id); $delete->delete(); $request->session()->flash('message', 'Task was successful!'); return back(); } abort(404); } }