middleware('auth'); $this->middleware('role:Admin'); } /** * Display current unpaid invoices */ public function DisplayUnpaidInvoice() { $invoices = Invoice::where([ 'status' => 'Pending', ])->orWhere([ 'status' => 'Late', ])->orWhere([ 'status' => 'Deferred', ])->orderByDesc('invoice_id')->paginate(50); $totalAmount = Invoice::where([ 'status' => 'Pending', ])->orWhere([ 'status' => 'Late', ])->orWhere([ 'status' => 'Deferred', ])->sum('invoice_amount'); return view('miningtax.admin.display.unpaid')->with('invoices', $invoices); } /** * Search unpaid invoices */ public function SearchUnpaidInvoice(Request $request) { $invoices = Invoice::where('invoice_id', 'LIKE', '%' . $request->q . '%') ->where(['status' => 'Pending']) ->orWhere(['status' => 'Late']) ->orWhere(['status' => 'Deferred']) ->orderByDesc('invoice_id') ->paginate(25); if(count($invoices) > 0) { return view('miningtax.admin.display.unpaid')->with('invoices', $invoices); } return view('miningtax.admin.display.unpaid')->with('error', 'No invoices found'); } /** * Mark an invoice paid */ public function UpdateInvoice(Request $request) { $this->validate($request, [ 'invoiceId' => 'required', 'status' => 'required', ]); Invoice::where([ 'invoice_id' => $request->invoiceId, ])->update([ 'status' => $request->status, ]); return redirect('/miningtax/admin/display/unpaid')->with('success', 'Invoice successfully updated.'); } /** * Display past paid invoices */ public function DisplayPaidInvoices() { $invoices = Invoice::where([ 'status' => 'Paid', ])->orWhere([ 'status' => 'Paid Late', ])->paginate(50); $totalAmount = Invoice::where([ 'status' => 'Paid', ])->orWhere([ 'status' => 'Paid Late', ])->sum('invoice_amount'); return view('miningtax.admin.display.paidinvoices')->with('invoices', $invoices) ->with('totalAmount', $totalAmount); } }