![]() Server : Apache System : Linux server2.thebrownbagmedia.com 4.18.0-553.34.1.el8_10.x86_64 #1 SMP Wed Jan 8 09:40:06 EST 2025 x86_64 User : topnotchcv ( 1029) PHP Version : 8.1.32 Disable Function : NONE Directory : /home/topnotchcv/public_html/app/Http/Controllers/ |
<?php namespace App\Http\Controllers; use App\Models\Cases; use App\Models\Hearing; use App\Models\Invoice; use App\Models\InvoiceItem; use App\Models\InvoicePayment; use Illuminate\Http\Request; class InvoiceController extends Controller { public function index() { if (\Auth::user()->can('manage invoice')) { $invoices = Invoice::where('parent_id', parentId())->get(); return view('invoice.index', compact('invoices')); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function create($case_id) { if (\Auth::user()->can('create invoice')) { $case = Cases::find($case_id); $hearings = Hearing::where('case_id',$case_id)->where('invoice_created',0)->get(); $invoiceNumber = $this->invoiceNumber(); $status = Invoice::$status; return view('invoice.create', compact('case', 'invoiceNumber', 'status', 'hearings')); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function store(Request $request, $case_id) { if (\Auth::user()->can('create invoice')) { $case = Cases::find($case_id); $invoice = new Invoice(); $invoice->invoice_id = $this->invoiceNumber(); $invoice->case_id = $case_id; $invoice->advocate_id = $case->advocate_id; $invoice->client_id = $case->client_id; $invoice->date = $request->date; $invoice->status = 'open'; $invoice->parent_id = parentId(); $invoice->save(); foreach ($request->item as $key => $value) { $invoice_item = new InvoiceItem(); $invoice_item->invoice_id = $invoice->id; $invoice_item->item = $value; $invoice_item->amount = $request->amount[$key]; $invoice_item->notes = $request->notes[$key]; $invoice_item->save(); if(isset($request->hearing_id[$key])){ $hearing=Hearing::find($request->hearing_id[$key]); $hearing->invoice_created=1; $hearing->save(); } } return redirect()->route('invoice.show',[$case_id,$invoice->id])->with('success', 'Invoice successfully created.'); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function show($case_id, $id) { if (\Auth::user()->can('show invoice')) { $invoice = Invoice::find($id); $settings = settings(); return view('invoice.show', compact('invoice', 'settings')); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function edit($case_id, $id) { if (\Auth::user()->can('edit invoice')) { $case = Cases::find($case_id); $invoice = Invoice::find($id); $hearings = $case->hearings; return view('invoice.edit', compact('case', 'invoice', 'hearings')); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function update(Request $request, $case_id, $id) { if (\Auth::user()->can('edit invoice')) { $case = Cases::find($case_id); $invoice = Invoice::find($id); $invoice->date = $request->date; $invoice->save(); $ids = []; foreach ($invoice->InvoiceItem as $key => $value) { $ids[$value->id] = $value->id; } foreach ($request->item as $key => $value) { if (isset($request->id[$key]) && in_array($request->id[$key], $ids)) { $invoice_item = InvoiceItem::find($request->id[$key]); $invoice_item->invoice_id = $invoice->id; $invoice_item->item = $value; $invoice_item->amount = $request->amount[$key]; $invoice_item->notes = $request->notes[$key]; $invoice_item->save(); unset($ids[$request->id[$key]]); } else { $invoice_item = new InvoiceItem(); $invoice_item->invoice_id = $invoice->id; $invoice_item->item = $value; $invoice_item->amount = $request->amount[$key]; $invoice_item->notes = $request->notes[$key]; $invoice_item->save(); } } if (count($ids) > 0) { foreach ($ids as $key => $id) { if ($id) { $invoice_item = InvoiceItem::find($id); if ($invoice_item) { $invoice_item->delete(); } } } } return redirect()->route('invoice.index')->with('success', 'Invoice successfully updated.'); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function destroy($case_id, $id) { if (\Auth::user()->can('delete invoice')) { $case = Cases::find($case_id); $invoice = Invoice::find($id); if ($invoice) { InvoiceItem::where('invoice_id',$id)->delete(); InvoicePayment::where('invoice_id',$id)->delete(); } $invoice->delete(); return redirect()->back()->with('success', 'Invoice successfully deleted.'); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function invoiceNumber() { $latestInvoice = Invoice::where('parent_id', parentId())->latest()->first(); if ($latestInvoice == null) { return 1; } else { return $latestInvoice->invoice_id + 1; } } }