middleware('od'); } /** * Show the application dashboard. * * @return \Illuminate\Http\Response */ /* | POS |-------------------------------------------------------------------------- */ public function get_pos(Request $request) { $this->data['title'] = 'POS'; $this->data['settings'] = \App\Settings::find(1); $this->data['riders'] = \App\Servers::where('type', 'rider')->where('status', 1)->get(); $this->data['waiters'] = \App\Servers::where('type', 'waiter')->where('status', 1)->get(); return view('admin.pos.pos', $this->data); } /* | get_menu_items_by_category |-------------------------------------------------------------------------- */ public function get_menu_items_by_category(Request $request) { $data = DB::table('menu_categories as mc') ->leftJoin('menu_items as mi', 'mi.category_id', '=', 'mc.id') ->where('mi.category_id', $request->id) ->select('mc.category_name as category_name', 'mc.id as category_id', 'mi.id as menu_item_id', 'mi.*') ->get(); foreach ($data as $row) { $menuitems = DB::table('menu_item_prices')->where('menu_id', $row->menu_item_id)->get(); if (!empty($menuitems)) { foreach ($menuitems as $mi) { $menu_addons = DB::table('menu_addons')->where('menu_item_id', $mi->id)->get(); if (!empty($menu_addons)) { foreach ($menu_addons as $adon) { $adon->details = DB::table('menu_addons_details')->where('menu_addon_id', $adon->id)->get(); } } $mi->addons = $menu_addons; } } $row->menu_items = $menuitems; } ob_start(); ?> data['title'] = 'POS Sales'; $this->data['settings'] = DB::table('settings')->find(1); $orders = DB::table('takeaway_orders as o') ->leftJoin('customers as c', 'c.id', '=', 'o.customer_id') ->where('o.platform', 'pos'); if ($request->from_date !='' && $request->to_date) { $orders = $orders->whereDate('o.created_at', '>=', $request->from_date); $orders = $orders->whereDate('o.created_at', '<=', $request->to_date); } if ($request->order) { $orders = $orders->where('o.order_type', $request->order); } if ($request->payment) { $orders = $orders->where('o.payment_type', $request->payment); } $orders = $orders->select('o.*', 'c.name as customer_name')->orderBy('o.id', 'desc')->paginate(30); $this->data['orders'] = $orders; return view('admin.pos.pos_sales', $this->data); } /* | Save pos |-------------------------------------------------------------------------- */ public function save_pos(Request $request) { $order = new TakeawayOrders; $order->customer_id = $request->customer_id; $order->user_id = Auth::User()->id; $order->user = Auth::User()->name; $order->subtotal = $request->subtotal; $order->total = $request->total_payable; $order->tax = $request->tax; $order->tax_rate = $request->tax_rate; $order->delivery_charges = $request->delivery_charges; $order->discount = $request->discount; $order->discount_value = $request->discount_value; $order->special_instructions = $request->special_instructions; $order->order_type = $request->order_type; $order->payment_type = $request->payment_type; $order->payment_paid = $request->payment_paid; $order->payment_return = $request->payment_return; if($request->order_type == 'delivery' || $request->order_type == 'dinein'){ $order->payment_status = 0; }else{ $order->payment_status = 1; } $order->platform = 'pos'; if ($request->order_type == 'delivery') { $order->server = $request->rider; } if ($request->order_type == 'dinein') { $order->table_no = $request->table_no; $order->server = $request->waiter; } if ($request->punch_date && $request->punch_date != '') { $order->created_at = date("Y-m-d", strtotime($request->punch_date)).' '.date("H:i:s"); } else { $order->created_at = date("Y-m-d H:i:s"); } $order->save(); if ($order->id && !empty($request->items)) { foreach ($request->items as $row) { $orderdetail = new TakeawayOrderDetails; $orderdetail->order_id = $order->id; $orderdetail->category_id = $row['category_id']; $orderdetail->category_name = $row['category_name']; $orderdetail->item_id = $row['item_id']; $orderdetail->item_name = $row['item_name']; $orderdetail->price_id = $row['price_id']; $orderdetail->price_title = $row['price_title']; $orderdetail->price = $row['price']; $orderdetail->quantity = $row['qty']; $orderdetail->item_total_price = $row['price'] * $row['qty']; if (!empty($row['addons'])) { $orderdetail->addons = json_encode($row['addons']); } $orderdetail->save(); ////////////////// update stock ////////////////// if (env('MOD_INVENTORY') == 'on') { $menu_price_id = $row['price_id']; $menu_recipe = DB::table('menu_recipe')->where('menu_item_price_id', $menu_price_id)->get(); if ($menu_recipe && !empty($menu_recipe)) { foreach ($menu_recipe as $row) { if ($row->ingredient_id && $row->ingredient_id != '') { $stock_update = \App\Stock::find($row->ingredient_id); $stock_update->quantity = $stock_update->quantity-$row->consumption; $stock_update->save(); } } } } ////////////////// update stock ////////////////// } } //kitchen if (config('app.mod_kds') == true) { $kitchen = new \App\Kitchen; $kitchen->order_id = $order->id; $kitchen->save(); } $settings = \App\Settings::find(1); $customer = Customers::find($request->customer_id); ob_start(); ?> order_id = random_int(100, 100000); $create->user_id = Auth::User()->id; $create->user_name = Auth::User()->name; $create->save(); ob_start(); ?> kds_id = random_int(100, 100000); $order->customer_id = null; $order->user_id = Auth::User()->id; $order->user = Auth::User()->name; $order->subtotal = 0; $order->total = 0; $order->tax = 0; $order->tax_rate = 0; $order->delivery_charges = 0; $order->discount = 0; $order->discount_value = 0; $order->special_instructions = $request->special_instructions; $order->order_type = $request->order_type; $order->payment_type = 0; $order->payment_paid = 0; $order->payment_return = 0; $order->payment_status = 0; $order->table_no = $request->table_no; $order->server = $request->waiter; if ($request->punch_date && $request->punch_date != '') { $order->created_at = date("Y-m-d", strtotime($request->punch_date)).' '.date("H:i:s"); } else { $order->created_at = date("Y-m-d H:i:s"); } $order->save(); if ($order->id && !empty($request->items)) { foreach ($request->items as $row) { $orderdetail = new \App\KitchenOrdersDetail; $orderdetail->order_id = $order->id; $orderdetail->category_id = $row['category_id']; $orderdetail->category_name = $row['category_name']; $orderdetail->item_id = $row['item_id']; $orderdetail->item_name = $row['item_name']; $orderdetail->price_id = $row['price_id']; $orderdetail->price_title = $row['price_title']; $orderdetail->price = $row['price']; $orderdetail->quantity = $row['qty']; $orderdetail->item_total_price = $row['price'] * $row['qty']; $orderdetail->addons = json_encode($row['addons']); $orderdetail->save(); } } //kitchen $kitchen = new \App\KitchenManual; $kitchen->order_id = $order->id; $kitchen->save(); } /* | get_pos_customers |-------------------------------------------------------------------------- */ public function get_pos_customers(Request $request) { $customers = DB::table('customers')->select('id', 'name', 'mobile_number')->orderBy('id', 'desc')->get(); ob_start(); foreach ($customers as $row) { ?> mobile_number)->first(); if ($check_mobile) { return response()->json([ 'status' => 0, 'msg' => $request->mobile_number. 'This mobile is number already exist!' ]); } $customer = new Customers; $customer->name = $request->name; $customer->mobile_number = $request->mobile_number; $customer->email = $request->email; $customer->address = $request->address; $customer->platform = 'pos'; $customer->save(); if ($customer) { return response()->json([ 'status' => 1, 'msg' => 'Customer added successfully.', 'name' => $customer->name, 'id' => $customer->id, 'mobile_number' => $customer->mobile_number ]); } else { return response()->json([ 'status' => 0, 'msg' => 'Something goes while adding new customer, please try again.' ]); } } /* | delete pos order |-------------------------------------------------------------------------- */ public function delete_order(Request $request) { $settings = \App\Settings::findorFail(1); if ($request->order_delete_key == '' && $settings->order_delete_key == '') { return back(); } if ($settings->order_delete_key != $request->order_delete_key) { $request->session()->flash('error', 'Enter correct key to delete the order.'); return back(); } $order = \App\TakeawayOrders::where('id', $request->id)->first(); $order->delete(); $order_details = \App\TakeawayOrderDetails::where('order_id', $request->id)->get(); if (!empty($order_details)) { foreach ($order_details as $row) { $detail = \App\TakeawayOrderDetails::where('order_id', $row->order_id)->first(); $detail->delete(); } } $request->session()->flash('message', 'Order deleted successfully!'); return back(); } /* | calculator |-------------------------------------------------------------------------- */ public function calculator(Request $request) { $this->data['title'] = 'Calculator'; return view('admin.pos.calculator', $this->data); } public function get_menu_addons_ajax(Request $request) { $addons = DB::table('menu_addons')->where('menu_item_id', $request->item_price_id)->get(); foreach ($addons as $k => $v) { $addons[$k]->details = DB::table('menu_addons_details')->where('menu_addon_id', $v->id)->get(); } ob_start(); ?>
title; ?>
id){ if($request->status == 1){ $status = 0; }else{ $status = 1; } DB::table('takeaway_orders')->where('id',$request->id)->update(['payment_status' => $status]); return response()->json($status); } abort(404); } }