name){ $customers = $customers->where('name', 'like', '%' . $request->name . '%'); } if($request->mobile){ $customers = $customers->where('mobile_number', 'like', '%' . $request->mobile . '%'); } $customers = $customers->orderBy('id','desc')->paginate(30); $data['customers'] = $customers; $data['customers_count'] = DB::table('customers')->count(); return view('admin.customers.customers', $data); } /* | csv_customer |-------------------------------------------------------------------------- */ public function csv_customer(Request $request) { ini_set('max_execution_time', '3600'); $customers = \App\Customers::select('mobile_number')->get(); if(!empty($customers)){ $filename = "customers.csv"; $handle = fopen($filename, 'w+'); foreach($customers as $row) { if ($row->mobile_number != '') { fputcsv($handle, array('92'.substr($row->mobile_number, -10))); } } fclose($handle); $headers = array('Content-Type' => 'text/csv'); return Response::download($filename, 'customers.csv', $headers); }else{ $request->session()->flash('error','Customers not found!'); } } /* | Save Customers |-------------------------------------------------------------------------- */ public function save_customer(Request $request) { if($request->id && $request->id !=""){ //update $customer = \App\Customers::find($request->id); }else{ if($request->email && $request->email !=''){ $check_email = \App\Customers::where('email',$request->email)->first(); if($check_email){ $request->session()->flash('error', $request->email. 'This email is already exist!'); return back(); } } if($request->mobile_number && $request->mobile_number !=''){ $check_mobile = \App\Customers::where('mobile_number',$request->mobile_number)->first(); if($check_mobile){ $request->session()->flash('error', $request->mobile_number. 'This mobile is number already exist!'); return back(); } } //add $customer = new \App\Customers; } $customer->name = $request->name; $customer->email= $request->email; $customer->mobile_number = $request->mobile_number; $customer->password = Hash::make($request->password); $customer->address = $request->address; $customer->city = $request->city; $customer->platform = 'admin'; $customer->save(); $request->session()->flash('message', 'Task was successful!'); return back(); } /* | Customer status |-------------------------------------------------------------------------- */ public function status_customer(Request $request) { if($request->id){ if($request->status == 1){ $status = 0; }else{ $status = 1; } DB::table('customers')->where('id',$request->id)->update(['status' => $status]); return response()->json($status); } abort(404); } /* | Delete Customer |-------------------------------------------------------------------------- */ public function delete_customer(Request $request) { if($request->id){ $delete = \App\Customers::find($request->id); $delete->delete(); $request->session()->flash('message', 'Task was successful!'); return back(); } abort(404); } /* | Getting Single Customer For Update |-------------------------------------------------------------------------- */ public function get_single_customer(Request $request) { if($request->id){ $customer = \App\Customers::findorFail($request->id); return response()->json($customer); } abort(404); } /* | Customer groups view |-------------------------------------------------------------------------- */ public function get_groups() { $data = []; $data['title'] = 'Customers Groups'; $data['customers'] = \App\Customers::orderBy('id','desc')->get(); $data['default_groups'] = \App\CustomerDefaultGroups::all(); $data['groups'] = \App\CustomerGroups::orderBy('id','desc')->get(); return view('admin.customers.groups', $data); } /* | Get Customers in a group |-------------------------------------------------------------------------- */ public function get_customers_group(Request $request) { $result = \App\CustomerGroups::select('customer_ids')->where('id',$request->id)->first(); $final_array = []; if(!empty($result)){ $customers_array = explode(',',$result->customer_ids); foreach ($customers_array as $row) { $customer = \App\Customers::select('name')->where('id',$row)->first(); $final_array[] = ucwords($customer->name); } } ob_start(); ?>
# Name
id){ $delete_cg = \App\CustomerGroups::find($request->id); $delete_cg->delete(); $delete_cdg = \App\Customer_groups_detail::where('customer_group_id',$request->id); $delete_cdg->delete(); $request->session()->flash('message', 'Task was successful!'); return back(); } abort(404); } /* | Save Customer group |-------------------------------------------------------------------------- */ public function save_group(Request $request) { $create = new \App\CustomerGroups; $create->name= $request->name; $create->description = $request->description; if($request->customer_id != ''){ $create->customer_ids = implode(',',$request->customer_id); } $create->save(); $request->session()->flash('message', 'Task was successful!'); return back(); } /* | Customer profile |-------------------------------------------------------------------------- */ public function get_profile(Request $request) { $data['title'] = 'Profile'; $data['customer'] = \App\Customers::find($request->id); $data['customer_booked_tables'] = \App\TableReservations::where('customer_id',$request->id)->orderBy('id','desc')->get(); $data['customer_feedback'] = \App\CustomerFeedback::where('customer_id',$request->id)->orderBy('id','desc')->get(); $data['customer_orders'] = \App\TakeawayOrders::where('customer_id',$request->id)->orderBy('id','desc')->get(); return view('admin.customers.single.index', $data); } /* | customer order |-------------------------------------------------------------------------- */ public function get_customer_order(Request $request) { $customer_order = \App\TakeawayOrders::where('id',$request->id)->first(); $customer_order_detail = \App\TakeawayOrderDetails::where('order_id',$customer_order->id)->get(); $customer = \App\Customers::where('id',$customer_order->customer_id)->first(); $feedback = \App\CustomerFeedback::where('customer_id',$customer->id)->where('order_id',$request->id)->first(); ob_start(); ?>

Invoice to

name) ?>
address.', '.$customer->city ?>
mobile_number ?>

Order ID: id ?>

Order Date: created_at)) ?>

Order Type: order_type) ?>

Payment Type: payment_type) ?>

# Item Quantity Price Total
item_name ?> quantity ?> price ?> item_total_price ?>
special_instructions !=''){ echo "

Special Instructions

"; echo "

".$customer_order->special_instructions."

"; } ?>

Delivery charges : delivery_charges; ?>

Tax(tax_rate ?>%) : tax ?>

Subtotal : subtotal ?>

Total : total ?>

Quality Servive Value
Feedback
join('customers as c', 'c.id', '=', 'cf.customer_id')->orderBy('cf.id','desc')->get(); return view('admin.customers.feedback', $data); } /* | Delete feedback |-------------------------------------------------------------------------- */ public function delete_feedback(Request $request) { if($request->id){ $delete = \App\CustomerFeedback::findorFail($request->id); $delete->delete(); $request->session()->flash('message', 'Task was successful!'); return back(); } abort(404); } /* | Customer Orders Count |-------------------------------------------------------------------------- */ public function customersOrdersCount() { $data = []; $data['title'] = 'Customer Orders Count'; $data['customers'] = DB::table('takeaway_orders as o') ->leftJoin('customers as c', 'c.id', '=', 'o.customer_id') ->where('o.customer_id','!=',NULL) ->select('customer_id','name','mobile_number','email','address',DB::raw('COUNT(customer_id) as orders')) ->groupBy('customer_id') ->orderBy('orders','desc')->paginate(50); return view('admin.customers.customer_orders_count', $data); } }