123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415 |
- <?php
- namespace App\Http\Controllers;
- use App\BranchDeliveryAreas;
- use App\BranchFeatures;
- use App\BranchHours;
- use App\Helpers\CommonMethods;
- use App\Outlets;
- use App\Photos;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Auth;
- use Illuminate\Support\Facades\Storage;
- use Str;
- use File;
- use Image;
- class Outlet extends Controller
- {
- //
- public function outlets(){
- $outlets = Outlets::whereNull('deleted_at')->where('resto_id',Auth::user()->restaurants->id)->get();
- return view('outlets.outlets',['outlets'=>$outlets]);
- }
- public function outlet_form(){
- return view('outlets.new-outlets',['outlet'=>NULL]);
- }
- public function outlet_edit($unique_key){
- $outlet = Outlets::where('unique_key',$unique_key)->first();
- return view('outlets.new-outlets',['outlet'=>$outlet]);
- }
- public function outlet_address(){
- $outlet = Outlets::where('unique_key',request()->get('o'))->first();
- return view('outlets.outlet-address',['outlet'=>$outlet]);
- }
- public function outlet_delivery_area(){
- $outlet = Outlets::where('unique_key',request()->get('o'))->first();
- $areas = BranchDeliveryAreas::where('branch_id',$outlet->id)->whereNull('deleted_at')->get();
- //dd($areas);
- return view('outlets.outlet-delivery-area',['outlet'=>$outlet,'areas'=>$areas]);
- }
- public function edit_area($id){
- $outlet = Outlets::where('unique_key',request()->get('o'))->first();
- $area = BranchDeliveryAreas::find($id);
- $areas = BranchDeliveryAreas::where('branch_id',$outlet->id)->whereNull('deleted_at')->get();
- return view('outlets.outlet-delivery-area',['outlet'=>$outlet,'area'=>$area,'areas'=>$areas]);
- }
- public function outlet_delivery_area_listing(){
- $outlet = Outlets::where('unique_key',request()->get('o'))->first();
- $areas = BranchDeliveryAreas::where('branch_id',$outlet->id)->whereNull('deleted_at')->get();
- return view('outlets.outlet-delivery-area-listing',['outlet'=>$outlet,'areas'=>$areas]);
- }
- public function outlet_delivery(){
- $outlet = Outlets::where('unique_key',request()->get('o'))->first();
- $features = isset($outlet->delivery_feature)?$outlet->delivery_feature:NULL;
- //$hours = isset($outlet->delivery_hours_feature)?$outlet->delivery_hours_feature:NULL;
- return view('outlets.outlet-delivery',['outlet'=>$outlet,'features'=>$features]);
- }
- public function outlet_ordering_mode(){
- $outlet = Outlets::where('unique_key',request()->get('o'))->first();
- return view('outlets.outlet-ordering-mode',['outlet'=>$outlet]);
- }
- public function outlet_pickup(){
- $outlet = Outlets::where('unique_key',request()->get('o'))->first();
- $features = isset($outlet->pickup_feature)?$outlet->pickup_feature:NULL;
- return view('outlets.outlet-pickup',['outlet'=>$outlet,'features'=>$features]);
- }
- public function outlet_dining(){
- $outlet = Outlets::where('unique_key',request()->get('o'))->first();
- $features = isset($outlet->contactless_dining_feature)?$outlet->contactless_dining_feature:NULL;
- return view('outlets.outlet-contactless-dining',['outlet'=>$outlet,'features'=>$features]);
- }
- public function update_feature_status_1(Request $request){
- $id = $request->id;
- $status = $request->status;
- $type = $request->type;
- $outlet = Outlets::find($id);
- if($type=="delivery"){
- $outlet->is_delivery = $status;
- }
-
- if($type=="pickup"){
- $outlet->is_pickup = $status;
- }
- if($type=="dine-in"){
- $outlet->is_contactless_dining = $status;
- }
- $result = $outlet->save();
- }
- public function save_outlet(Request $request){
- $name = $request->outlet_name;
- $time_zone = $request->timezone;
- $email = $request->email;
- $phone = $request->phone;
- $id = $request->id;
- $restaurants =Auth::user()->restaurants;
- $branch_id = 0;
- if(empty($id)){
- $outlet= new Outlets(); $outlet->unique_key = \Illuminate\Support\Str::uuid();
- }else{
- $outlet = Outlets::find($id);
- }
- $outlet->resto_id = $restaurants->id;
- $outlet->time_zone = $time_zone;
- $outlet->name = $name;
- $outlet->email = $email;
- $outlet->phone_number = $phone;
- $outlet->resto_id = $restaurants->id;
- $outlet->save();
- $branch_id = $outlet->id;
-
- if($branch_id > 0){
- if($request->hasFile('image')){
- $logo = $request->file('image');
- $file_name = Str::slug($request->name)."-branch-main-image".'-'.time();
- $extension = $logo->getClientOriginalExtension();
- Storage::disk('logo')->put($file_name.'.'.$extension, File::get($logo));
- $file = public_path('uploads/logo/'.$file_name.'.'.$extension);
- //uploadFileToAWSCDN($budketName, $restoID ,$restoName ,$sourceFile,$fileName )
- $destinationPath = public_path('/uploads/logo/');
- /* $img = Image::make($destinationPath . '/' . $file_name.'.'.$extension)->resize(800, null, function ($constraint) {
- $constraint->aspectRatio();
- });
- $img->save($destinationPath . '/' . $file_name.'.'.$extension);*/
- $result = CommonMethods::uploadFileToAWSCDN('meemapp-order',$restaurants->id, $restaurants->resto_unique_name,$file,$file_name);
- /* dd($buckets);
- $path = Storage::disk('s3')->put("meemcdn/".$file_name.'.'.$extension, File::get($logo));
- dd($path);*/
- /* $destinationPath = public_path('/uploads/logo/');
- $img = Image::make($destinationPath . '/' . $file_name.'.'.$extension)->resize(1400, null, function ($constraint) {
- $constraint->aspectRatio();
- });
- $img->save($destinationPath . '/' . $file_name.'.'.$extension);
- $img = Image::make($destinationPath . '/' . $file_name.'.'.$extension)->resize(85, null, function ($constraint) {
- $constraint->aspectRatio();
- });
- $img->save($destinationPath . '/thumbnails/' . $file_name.'.'.$extension);*/
- if($result['type']=="success"){
- $logo = Photos::where('resto_id',$restaurants->id)->where('branch_id',$branch_id)->where('photo_type','branch')->first();
- if(!$logo)
- $logo = new Photos();
- $logo->file_name = $result['url'];
- $logo->aws_cdn = $result['url'];
- $logo->resto_id = $restaurants->id;
- $logo->branch_id = $branch_id;
- $logo->photo_type = 'branch';
- $r = $logo->save();
-
- File::delete($file);
- }
- //$resto->text =
- }
- echo json_encode(array('type' => 'success', 'message'=>"Outlet's data is saved successfully.",'unique_key'=>$outlet->unique_key));
- }else{
- echo json_encode(array('type' => 'error', 'message'=>"Outlet's data is not saved, check info again."));
- }
- }
- public function update_outlet(Request $request){
- $id = $request->id;
- $status = $request->status;
- $outlet = Outlets::find($id);
- $outlet->active = $status;
- $outlet->save();
- }
- public function save_address(Request $request){
- $unique_id = $request->unique_id;
- $address = $request->address;
- $area = $request->area;
- $outlet = Outlets::where('unique_key',$unique_id)->first();
- $outlet->latitude = $request->lat;
- $outlet->longitude = $request->lng;
- if(isset($outlet)){
- $outlet->address = $address;
- $outlet->place = $area;
- $result = $outlet->save();
- if($result)
- echo json_encode(array('type' => 'success', 'message'=>"Outlet's address is saved successfully."));
- else
- echo json_encode(array('type' => 'error', 'message'=>"Outlet's address is not saved, check info again."));
- }else{
- echo json_encode(array('type' => 'error', 'message'=>"Outlet key is invalid."));
- }
- }
- public function save_branch_feature(Request $request){
- $payment_method = isset($request->payment_methods)?implode(',',$request->payment_methods):NULL;
- $feature_type = $request->feature_type;
- $preparation_time = $request->preparation_time;
- $preparation_delivery_time = $request->preperation_delivery;
- $estimated_time = $request->estimated_time;
-
- $is_open = $request->is_open;
- $id = $request->id;
- $feature = BranchFeatures::where('branch_id',$id)->where('feature_type',$feature_type)->first();
- if(!isset($feature))
- $feature = new BranchFeatures();
- $feature->payment_methods = $payment_method;
- $feature->feature_type = $feature_type;
- $feature->preparation_timing = $preparation_time;
- $feature->preparation_delivery_time = $preparation_delivery_time;
- $feature->estimated_time = $estimated_time;
- $feature->branch_id = $id;
- $feature->save();
- $start_time = $request->start_time;
- $end_time = $request->end_time;
- if(isset($start_time)){
- $time = BranchHours::where('branch_id',$id)->where('hours_for',$feature_type)->delete();
- foreach($start_time as $k=>$s){
- // $time = BranchHours::where('day_name',$k)->where('branch_id',$id)->where('hours_for',$feature_type)->first();
- // if(!isset($time))
- foreach($s as $a=>$v){
- $time = new BranchHours();
- $time->day_name = $k;
- $time->branch_id = $id;
- $time->hours_for = $feature_type;
- $time->start_time = isset($is_open[strtolower($k)])? date('H:i',strtotime($v)):NULL;
- $time->end_time = isset($is_open[strtolower($k)])?date('H:i',strtotime($end_time[$k][$a])):NULL;
- $time->status = isset($is_open[strtolower($k)])?"open":"close";
- $result = $time->save();
- //$time->status = 'open';
- }
- //$result = $time->save();
- }
- }
- if($result)
- echo json_encode(array('type' => 'success', 'message'=>"Outlet's ".$feature_type." is saved successfully."));
- else
- echo json_encode(array('type' => 'error', 'message'=>"Outlet's ".$feature_type." is not saved, check info again."));
- }
- public function update_feature_status(Request $request){
- $id = $request->outletId;
- $status = $request->is_active=="true"?1:0;
- $feature = $request->feature;
- $outlet = Outlets::find($id);
- $outlet->$feature = $status;
- $result = $outlet->save();
- }
- public function delete_outlet ($id){
- $outlet = Outlets::where('unique_key',$id)->first();
- $outlet->deleted_at =date('Y-m-d H:i:s');
- $outlet->save();
- }
- public function delete_area ($id){
- $outlet = BranchDeliveryAreas::find($id);
- $outlet->deleted_at =date('Y-m-d H:i:s');
- $outlet->save();
- }
- public function save_outlet_area(Request $request){
- $id = $request->id;
- $coordinates = $request->coordinates;
- $area_name = $request->area_name;
- $min_price = $request->min_basket;
- $delivery_fee = $request->delivery_fee;
- $unique_id = $request->unique_id;
- $center_radius = $request->center_radius;
- $outlet = Outlets::where('unique_key',$unique_id)->first();
- $outlet_id = $outlet->id;
- if($id==0)
- $area = new BranchDeliveryAreas();
- else
- $area = BranchDeliveryAreas::find($id);
- $area->branch_id = $outlet_id;
- $area->lat_lag = $coordinates;
- // $area->center_radius = $center_radius;
- $area->area_name = $area_name;
- $area->delivery_fee = $delivery_fee;
- $area->min_price = $min_price;
- $result = $area->save();
- if($result)
- echo json_encode(array('type' => 'success', 'message'=>"Area's information is saved successfully."));
- else
- echo json_encode(array('type' => 'error', 'message'=>"Outlet's information is not saved, check info again."));
- }
- public function update_area_status(Request $request){
- $id = $request->id;
- $status = $request->status;
- $outlet = BranchDeliveryAreas::find($id);
- $outlet->status = $status;
- $outlet->save();
- }
- public function outlet_digital_menu(){
- $outlet = Outlets::where('unique_key',request()->get('o'))->first();
-
- return view('outlets.outlet-digital-menu',['outlet'=>$outlet]);
- }
- public function pause_orders(){
- $outlets = Outlets::whereNull('deleted_at')->where('resto_id',Auth::user()->restaurants->id)->get();
- return view('outlets.outlets-pause-orders',['outlets'=>$outlets]);
- }
- }
|