category_id)->get(); if(count($menu_items)>0){ $html = ''; $html .= ''; $html .= ''; return response($html); }else{ return response("category id missing!"); } } /* | Get Menu Detail |-------------------------------------------------------------------------- */ public function get_menu_detail(Request $request) { if($request->menu_item_id){ $response = Menuitems::where('menu_item_id',$request->menu_item_id)->first(); return response()->json($response); } abort(404); } /* | Flat discount view |-------------------------------------------------------------------------- */ public function get_flat_discount() { if(Auth::User()->group_id == 2){ return redirect('home'); } $this->data['title'] = 'Flat Discount'; $this->data['flatdiscounts'] = DB::table('flat_discount as fd') ->leftJoin('menu_items as mi', 'fd.menu_item_id', '=', 'mi.id') ->select('fd.*', 'mi.menu_item_name') ->get(); $this->data['menuitems'] = \App\MenuItems::all(); return view('admin.promotions.flat_discount', $this->data); } /* | Save flat discount |-------------------------------------------------------------------------- */ public function save_flat_discount(Request $request) { //check if already exist $response = \App\FlatDiscount::where('menu_item_id',$request->menu_item_id)->first(); if(count($response)>0){ $request->session()->flash('error', 'Discount already applied!'); }else{ $create = new \App\FlatDiscount; $create->menu_item_id = $request->menu_item_id; $create->discount= $request->discount; $create->save(); $request->session()->flash('message', 'Task was successful!'); } return back(); } /* | Delete flat discount |-------------------------------------------------------------------------- */ public function delete_flat_discount(Request $request) { if($request->id){ $delete = \App\FlatDiscount::findorFail($request->id); $delete->delete(); $request->session()->flash('message', 'Task was successful!'); return back(); } abort(404); } /* | blast email view |-------------------------------------------------------------------------- */ public function get_blast_email(){ if(Auth::User()->group_id == 2){ return redirect('home'); } $this->data['title'] = 'Send Emails'; return view('admin.promotions.blast_email', $this->data); } /* | Send Blast Email |-------------------------------------------------------------------------- */ public function send_blast_email(Request $request) { $response = []; if($request->title == ''){ $response['flag'] = 0; $response['msg'] = 'Title cannot be empty.'; return response()->json($response); } if($request->subject == ''){ $response['flag'] = 0; $response['msg'] = 'Subject cannot be empty.'; return response()->json($response); } if($request->textarea == ''){ $response['flag'] = 0; $response['msg'] = 'Email text cannot be empty.'; return response()->json($response); } $customer_ids = []; if($request->customer_group_type == 'customer'){ //customer $customer_ids = $request->customer; }elseif($request->customer_group_type == 'default'){ //default if($request->default == 1){ $results = DB::table('customers')->select('id')->get(); }elseif($request->default == 2){ $results = DB::table('customers')->select('id')->where('status',1)->get(); }elseif($request->default == 3){ $results = DB::table('customers')->select('id')->where('status',0)->get(); } $customer_ids = array(); if(count($results)>0){ foreach($results as $row){ $customer_ids[] = $row->id; } } }elseif($request->customer_group_type == 'custom'){ //custom $customer_ids = []; } // blast email $data = []; $data['title'] = $request->title; $subject = $request->subject; if(count($customer_ids)>0){ foreach($customer_ids as $row){ $customer = DB::table('customers')->where('id',$row)->first(); $email = $customer->email; $replace_name = str_replace("[NAME]",$customer->name,$request->textarea); $replace_phone = str_replace("[PHONE]",$customer->mobile_number,$replace_name); $replace_address = str_replace("[ADDRESS]",$customer->address,$replace_phone); $data['body'] = $replace_address; Mail::send('email.blast',$data, function ($message) use ($subject,$email) { $message->to($email); $message->subject($subject); }); } $response = []; $response['flag'] = 1; $response['msg'] = 'Email sent successfully.'; return response()->json($response); }else{ $response = []; $response['flag'] = 0; $response['msg'] = 'Something goes wrong, please try again.'; return response()->json($response); } } /* | push notifications view |-------------------------------------------------------------------------- */ public function get_push_notifications() { if(Auth::User()->group_id == 2){ return redirect('home'); } $this->data['title'] = 'Send Push Notifications'; return view('admin.promotions.push_notifications', $this->data); } /* | Send Push notifications |-------------------------------------------------------------------------- */ public function send_push_notifications(Request $request) { if($request->title == ''){ return response()->json(['status' => false, 'msg' => 'Title cannot be empty!']); } if($request->message == ''){ return response()->json(['status' => false, 'msg' => 'Message cannot be empty!']); } $customer_ids = []; if($request->customer_group_type == 'customer'){ //customer $customer_ids = $request->customer; }elseif($request->customer_group_type == 'default'){ //default if($request->default == 1){ $results = DB::table('customers')->select('id')->get(); }elseif($request->default == 2){ $results = DB::table('customers')->select('id')->where('status',1)->get(); }elseif($request->default == 3){ $results = DB::table('customers')->select('id')->where('status',0)->get(); } $customer_ids = array(); if(count($results)>0){ foreach($results as $row){ $customer_ids[] = $row->id; } } }elseif($request->customer_group_type == 'custom'){ //custom $customer_ids = []; } //get device tokens by customer ids $tokens = []; if(count($customer_ids)>0){ foreach($customer_ids as $row){ $response = DB::table('push_notifications')->select('token')->where('customer_id',$row)->first(); if(count($response)>0){ $tokens[] = $response->token; } } } if(count($tokens)>0){ $data = []; $data['title'] = $request->title; $data['image_url'] = $request->image_url; $data['message'] = $request->message; $pn_response = Helper::push_notification($request->title, $request->message, $tokens, $data); if($pn_response->numberSuccess() > 0){ return response()->json(['status' => true, 'msg' => 'Push Notifications send successfully!']); }else{ return response()->json(['status' => false, 'msg' => 'Something goes wrong, Please try again!']); } } } /* | Sms view |-------------------------------------------------------------------------- */ public function get_sms() { if(Auth::User()->group_id == 2){ return redirect('home'); } $this->data['title'] = 'Send SMS'; return view('admin.promotions.sms', $this->data); } /* | Send SMS |-------------------------------------------------------------------------- */ public function send_sms(Request $request) { ini_set('max_execution_time', '3600'); $customers = []; if($request->customer_group_type == 'customer'){ //customer $customer = Customers::where('id', $request->customer)->select('mobile_number')->first(); $customers[] = $customer->mobile_number; }elseif($request->customer_group_type == 'default'){ //default if($request->default == 1){ $results = DB::table('customers')->select('mobile_number')->get(); }elseif($request->default == 2){ $results = DB::table('customers')->select('mobile_number')->where('status',1)->get(); }elseif($request->default == 3){ $results = DB::table('customers')->select('mobile_number')->where('status',0)->get(); } if(count($results)>0){ foreach($results as $row){ $customers[] = $row->mobile_number; } } }elseif($request->customer_group_type == 'custom'){ //custom $custom_response = DB::table('customer_groups')->where('id', $request->category_id)->select('customer_ids')->first(); if (!empty($custom_response)) { $custom = explode('|',$custom_response->customer_ids); foreach ($custom as $row) { $customer = DB::table('customers')->where('id', $row)->where('status', 1)->select('mobile_number')->first(); if (count($customer)>0) { $customers[] = $customer->mobile_number; } } } } if (count($customers)>0) { $s_counter = 0; $f_counter = 0; foreach ($customers as $row) { if ($row != '' && strlen($row)>9) { $mobile_number = "92".substr($row, -10); $response = Helper::sendSMS($mobile_number, $request->message); if($response == true){ echo $mobile_number."___ Yes
"; $s_counter++; }else{ echo $mobile_number."___ No
"; $f_counter++; } echo "
"; echo "Total Successfull SMS Sent: ".$s_counter."
"; echo "Total Failed SMS: ".$f_counter; echo "
"; } } $request->session()->flash('success', $s_counter.' SMS Sent successfully!'); echo 'Back'; }else{ $request->session()->flash('error', 'Customers not found!'); return back(); } } }