![]() Server : Apache/2.4.62 (Unix) OpenSSL/1.0.2k-fips System : Linux server1.richineiserver.com 3.10.0-1160.119.1.el7.x86_64 #1 SMP Tue Jun 4 14:43:51 UTC 2024 x86_64 User : fdshops ( 1003) PHP Version : 8.2.21 Disable Function : NONE Directory : /home/fdshops/public_html/app/Http/Controllers/ |
<?php namespace App\Http\Controllers; use App\BusinessLocation; use App\InvoiceLayout; use App\InvoiceScheme; use App\Printer; 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); } }