![]() 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\InvoiceLayout; use App\InvoiceScheme; use Datatables; use Illuminate\Http\Request; class InvoiceSchemeController extends Controller { protected $number_types; public function __construct() { $this->number_types = ['sequential' => __('invoice.sequential'), 'random'=> __('invoice.random')]; } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { if (! auth()->user()->can('invoice_settings.access')) { abort(403, 'Unauthorized action.'); } $business_id = request()->session()->get('user.business_id'); if (request()->ajax()) { $schemes = InvoiceScheme::where('business_id', $business_id) ->select(['id', 'name', 'scheme_type', 'prefix', 'number_type', 'start_number', 'invoice_count', 'total_digits', 'is_default']); return Datatables::of($schemes) ->addColumn( 'action', '<button type="button" data-href="{{action(\'App\Http\Controllers\InvoiceSchemeController@edit\', [$id])}}" class="tw-dw-btn tw-dw-btn-xs tw-dw-btn-outline tw-dw-btn-primary btn-modal" data-container=".invoice_edit_modal"><i class="glyphicon glyphicon-edit"></i> @lang("messages.edit")</button> <button type="button" data-href="{{action(\'App\Http\Controllers\InvoiceSchemeController@destroy\', [$id])}}" class="tw-dw-btn tw-dw-btn-outline tw-dw-btn-xs tw-dw-btn-error delete_invoice_button" @if($is_default) disabled @endif><i class="glyphicon glyphicon-trash"></i> @lang("messages.delete")</button> @if($is_default) <button type="button" class="tw-dw-btn tw-dw-btn-xs tw-dw-btn-outline tw-dw-btn-accent" disabled><i class="fa fa-check-square-o" aria-hidden="true"></i> @lang("barcode.default")</button> @else <button class="tw-dw-btn tw-dw-btn-xs tw-dw-btn-outline tw-dw-btn-info set_default_invoice" data-href="{{action(\'App\Http\Controllers\InvoiceSchemeController@setDefault\', [$id])}}">@lang("barcode.set_as_default")</button> @endif ' ) ->editColumn('number_type', function ($row) { return $this->number_types[$row->number_type]; }) ->editColumn('prefix', function ($row) { if ($row->scheme_type == 'year') { return $row->prefix.date('Y').config('constants.invoice_scheme_separator'); } else { return $row->prefix; } }) ->editColumn('name', function ($row) { if ($row->is_default == 1) { return $row->name.' <span class="label label-success">'.__('barcode.default').'</span>'; } else { return $row->name; } }) ->removeColumn('id') ->removeColumn('is_default') ->removeColumn('scheme_type') ->rawColumns([6, 0]) ->make(false); } $invoice_layouts = InvoiceLayout::where('business_id', $business_id) ->with(['locations']) ->get(); return view('invoice_scheme.index') ->with(compact('invoice_layouts')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { if (! auth()->user()->can('invoice_settings.access')) { abort(403, 'Unauthorized action.'); } $number_types = $this->number_types; return view('invoice_scheme.create')->with(compact('number_types')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { if (! auth()->user()->can('invoice_settings.access')) { abort(403, 'Unauthorized action.'); } try { $input = $request->only(['name', 'scheme_type', 'prefix', 'start_number', 'total_digits', 'number_type']); $business_id = $request->session()->get('user.business_id'); $input['business_id'] = $business_id; $input['start_number'] = ($input['number_type'] == 'aleatory') ? '' : $input['start_number']; if (! empty($request->input('is_default'))) { //get_default $default = InvoiceScheme::where('business_id', $business_id) ->where('is_default', 1) ->update(['is_default' => 0]); $input['is_default'] = 1; } InvoiceScheme::create($input); $output = ['success' => true, 'msg' => __('invoice.added_success'), ]; } catch (\Exception $e) { \Log::emergency('File:'.$e->getFile().'Line:'.$e->getLine().'Message:'.$e->getMessage()); $output = ['success' => false, 'msg' => __('messages.something_went_wrong'), ]; } return $output; } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { if (! auth()->user()->can('invoice_settings.access')) { abort(403, 'Unauthorized action.'); } // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { if (! auth()->user()->can('invoice_settings.access')) { abort(403, 'Unauthorized action.'); } $business_id = request()->session()->get('user.business_id'); $invoice = InvoiceScheme::where('business_id', $business_id)->find($id); $number_types = $this->number_types; return view('invoice_scheme.edit') ->with(compact('invoice', 'number_types')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { if (! auth()->user()->can('invoice_settings.access')) { abort(403, 'Unauthorized action.'); } try { $input = $request->only(['name', 'scheme_type', 'prefix', 'start_number', 'total_digits', 'number_type']); $input['start_number'] = ($input['number_type'] == 'aleatory') ? '' : $input['start_number']; $invoice = InvoiceScheme::where('id', $id)->update($input); $output = ['success' => true, 'msg' => __('invoice.updated_success'), ]; } catch (\Exception $e) { \Log::emergency('File:'.$e->getFile().'Line:'.$e->getLine().'Message:'.$e->getMessage()); $output = ['success' => false, 'msg' => __('messages.something_went_wrong'), ]; } return $output; } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { if (! auth()->user()->can('invoice_settings.access')) { abort(403, 'Unauthorized action.'); } if (request()->ajax()) { try { $invoice = InvoiceScheme::find($id); if ($invoice->is_default != 1) { $invoice->delete(); $output = ['success' => true, 'msg' => __('invoice.deleted_success'), ]; } else { $output = ['success' => false, 'msg' => __('messages.something_went_wrong'), ]; } } catch (\Exception $e) { \Log::emergency('File:'.$e->getFile().'Line:'.$e->getLine().'Message:'.$e->getMessage()); $output = ['success' => false, 'msg' => __('messages.something_went_wrong'), ]; } return $output; } } /** * Sets invoice scheme setting as default * * @param int $id * @return \Illuminate\Http\Response */ public function setDefault($id) { if (! auth()->user()->can('invoice_settings.access')) { abort(403, 'Unauthorized action.'); } if (request()->ajax()) { try { //get_default $business_id = request()->session()->get('user.business_id'); $default = InvoiceScheme::where('business_id', $business_id) ->where('is_default', 1) ->update(['is_default' => 0]); $invoice = InvoiceScheme::find($id); $invoice->is_default = 1; $invoice->save(); $output = ['success' => true, 'msg' => __('barcode.default_set_success'), ]; } catch (\Exception $e) { \Log::emergency('File:'.$e->getFile().'Line:'.$e->getLine().'Message:'.$e->getMessage()); $output = ['success' => false, 'msg' => __('messages.something_went_wrong'), ]; } return $output; } } }