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 "