| Server IP : 103.161.17.216 / Your IP : 216.73.216.1 Web Server : nginx/1.18.0 System : Linux tipsysaigoncharming 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 User : www-data ( 33) PHP Version : 7.4.3-4ubuntu2.29 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/app.ansachsongkhoe.net/app/Http/Controllers/ |
Upload File : |
<?php
namespace App\Http\Controllers;
use App\BusinessLocation;
use App\Printer;
use App\InvoiceLayout;
use App\InvoiceScheme;
use Illuminate\Http\Request;
class LocationSettingsController extends Controller
{
/**
* All class instance.
*
*/
protected $printReceiptOnInvoice;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->printReceiptOnInvoice = ['1' => __('messages.yes'), '0' => __('messages.no')];
$this->receiptPrinterType = ['browser' => __('lang_v1.browser_based_printing'), 'printer' => __('lang_v1.configured_printer')];
}
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index($location_id)
{
//Check for locations access permission
if (!auth()->user()->can('business_settings.access') ||
!auth()->user()->can_access_this_location($location_id)
) {
abort(403, 'Unauthorized action.');
}
$business_id = request()->session()->get('user.business_id');
$location = BusinessLocation::where('business_id', $business_id)
->findorfail($location_id);
$printers = Printer::forDropdown($business_id);
$printReceiptOnInvoice = $this->printReceiptOnInvoice;
$receiptPrinterType = $this->receiptPrinterType;
$invoice_layouts = InvoiceLayout::where('business_id', $business_id)
->get()
->pluck('name', 'id');
$invoice_schemes = InvoiceScheme::where('business_id', $business_id)
->get()
->pluck('name', 'id');
return view('location_settings.index')
->with(compact('location', 'printReceiptOnInvoice', 'receiptPrinterType', 'printers', 'invoice_layouts', 'invoice_schemes'));
}
/**
* Update the settings
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function updateSettings($location_id, Request $request)
{
try {
//Check for locations access permission
if (!auth()->user()->can('business_settings.access') ||
!auth()->user()->can_access_this_location($location_id)
) {
abort(403, 'Unauthorized action.');
}
$input = $request->only(['print_receipt_on_invoice', 'receipt_printer_type', 'printer_id', 'invoice_layout_id', 'invoice_scheme_id']);
//Auto set to browser in demo.
if (config('app.env') == 'demo') {
$input['receipt_printer_type'] = 'browser';
}
$business_id = request()->session()->get('user.business_id');
$location = BusinessLocation::where('business_id', $business_id)
->findorfail($location_id);
$location->fill($input);
$location->update();
$output = ['success' => 1,
'msg' => __("receipt.receipt_settings_updated")
];
} catch (\Exception $e) {
$output = ['success' => 0,
'msg' => __("messages.something_went_wrong")
];
}
return back()->with('status', $output);
}
}