ultimatepos/app/Http/Controllers/Restaurant/DataController.php

110 lines
3.8 KiB
PHP

<?php
namespace App\Http\Controllers\Restaurant;
use App\Restaurant\ResTable;
use App\Transaction;
use App\User;
use App\Utils\Util;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
class DataController extends Controller
{
/**
* All Utils instance.
*/
protected $commonUtil;
public function __construct(Util $commonUtil)
{
$this->commonUtil = $commonUtil;
}
/**
* Show the restaurant module related details in pos screen.
*
* @return \Illuminate\Http\Response
*/
public function getPosDetails(Request $request)
{
if (request()->ajax()) {
$business_id = $request->session()->get('user.business_id');
$location_id = $request->get('location_id');
if (! empty($location_id)) {
$transaction_id = $request->get('transaction_id', null);
if (! empty($transaction_id)) {
$transaction = Transaction::find($transaction_id);
$view_data = ['res_table_id' => $transaction->res_table_id,
'res_waiter_id' => $transaction->res_waiter_id,
];
} else {
$view_data = ['res_table_id' => null, 'res_waiter_id' => null];
}
$waiters_enabled = false;
$tables_enabled = false;
$waiters = null;
$tables = null;
if ($this->commonUtil->isModuleEnabled('service_staff')) {
$waiters_enabled = true;
$waiters = $this->commonUtil->getServiceStaff($business_id, $location_id, false);
}
if ($this->commonUtil->isModuleEnabled('tables')) {
$tables_enabled = true;
$tables = ResTable::where('business_id', $business_id)
->where('location_id', $location_id)
->pluck('name', 'id');
}
} else {
$tables = [];
$waiters = [];
$waiters_enabled = $this->commonUtil->isModuleEnabled('service_staff') ? true : false;
$tables_enabled = $this->commonUtil->isModuleEnabled('tables') ? true : false;
$view_data = ['res_table_id' => null, 'res_waiter_id' => null];
}
$pos_settings = json_decode($request->session()->get('business.pos_settings'), true);
$is_service_staff_required = (! empty($pos_settings['is_service_staff_required']) && $pos_settings['is_service_staff_required'] == 1) ? true : false;
return view('restaurant.partials.pos_table_dropdown')
->with(compact('tables', 'waiters', 'view_data', 'waiters_enabled', 'tables_enabled', 'is_service_staff_required'));
}
}
/**
* Save the pos screen details.
*
* @return null
*/
public function sellPosStore($input)
{
$table_id = request()->get('res_table_id');
$res_waiter_id = request()->get('res_waiter_id');
Transaction::where('id', $input['transaction_id'])
->where('type', 'sell')
->where('business_id', $input['business_id'])
->update(['res_table_id' => $table_id,
'res_waiter_id' => $res_waiter_id, ]);
}
public function checkStaffPin(Request $request){
$service_staff_pin = $request->get('service_staff_pin');
$user_id = $request->get('user_id');
$business_id = $request->session()->get('user.business_id');
$query = User::where('service_staff_pin', $service_staff_pin)->where('id', $user_id)->where('business_id', $business_id);
$exists = $query->exists();
if ($exists) {
echo 'true';
exit;
} else {
echo 'false';
exit;
}
}
}