diff --git a/app/Http/Controllers/ExpenseController.php b/app/Http/Controllers/ExpenseController.php index 1dc4f18d9b25..fa3eae6acd2a 100644 --- a/app/Http/Controllers/ExpenseController.php +++ b/app/Http/Controllers/ExpenseController.php @@ -86,6 +86,7 @@ class ExpenseController extends BaseController 'vendor' => $vendor, 'clients' => Client::scope()->with('contacts')->orderBy('name')->get(), 'clientPublicId' => $request->client_id, + 'categoryPublicId' => $request->category_id, ]; $data = array_merge($data, self::getViewModel()); @@ -125,6 +126,7 @@ class ExpenseController extends BaseController 'vendorPublicId' => $expense->vendor ? $expense->vendor->public_id : null, 'clients' => Client::scope()->with('contacts')->orderBy('name')->get(), 'clientPublicId' => $expense->client ? $expense->client->public_id : null, + 'categoryPublicId' => $expense->expense_category ? $expense->expense_category->public_id : null, ]; $data = array_merge($data, self::getViewModel()); @@ -234,7 +236,7 @@ class ExpenseController extends BaseController 'countries' => Cache::get('countries'), 'customLabel1' => Auth::user()->account->custom_vendor_label1, 'customLabel2' => Auth::user()->account->custom_vendor_label2, - 'categories' => ExpenseCategory::scope()->get() + 'categories' => ExpenseCategory::scope()->orderBy('name')->get(), ]; } diff --git a/app/Http/Controllers/InvoiceController.php b/app/Http/Controllers/InvoiceController.php index 3faf5fe91ed4..0106f6cf8937 100644 --- a/app/Http/Controllers/InvoiceController.php +++ b/app/Http/Controllers/InvoiceController.php @@ -245,7 +245,7 @@ class InvoiceController extends BaseController $invoice->public_id = 0; if (Session::get('expenses')) { - $invoice->expenses = Expense::scope(Session::get('expenses'))->with('documents')->get(); + $invoice->expenses = Expense::scope(Session::get('expenses'))->with('documents', 'expense_category')->get(); } diff --git a/app/Services/ExpenseService.php b/app/Services/ExpenseService.php index abf8a63e6343..040f7a405705 100644 --- a/app/Services/ExpenseService.php +++ b/app/Services/ExpenseService.php @@ -58,19 +58,6 @@ class ExpenseService extends BaseService $data['vendor_id'] = Vendor::getPrivateId($data['vendor_id']); } - if ( ! empty($data['category'])) { - $name = trim($data['category']); - $category = ExpenseCategory::scope()->withTrashed()->whereName($name)->first(); - if ( ! $category) { - $category = ExpenseCategory::createNew(); - $category->name = $name; - $category->save(); - } - $data['expense_category_id'] = $category->id; - } elseif (isset($data['category'])) { - $data['expense_category_id'] = null; - } - return $this->expenseRepo->save($data, $expense); } diff --git a/resources/views/expenses/edit.blade.php b/resources/views/expenses/edit.blade.php index 2e285a2ca0e4..c5889d8d7292 100644 --- a/resources/views/expenses/edit.blade.php +++ b/resources/views/expenses/edit.blade.php @@ -26,7 +26,6 @@ @if ($expense) {!! Former::populate($expense) !!} {!! Former::populateField('should_be_invoiced', intval($expense->should_be_invoiced)) !!} - {!! Former::populateField('category', $expense->expense_category ? $expense->expense_category->name : '') !!} {!! Former::hidden('public_id') !!} @endif @@ -40,9 +39,10 @@ ->label(trans('texts.vendor')) ->addGroupClass('vendor-select') !!} - {!! Former::text('category') - ->data_bind("typeahead: category, items: categories, key: 'name', valueUpdate: 'afterkeydown'") - ->label(trans('texts.category')) !!} + {!! Former::select('expense_category_id')->addOption('', '') + ->data_bind('combobox: expense_category_id') + ->label(trans('texts.category')) + ->addGroupClass('category-select') !!} {!! Former::text('expense_date') ->data_date_format(Session::get(SESSION_DATE_PICKER_FORMAT, DEFAULT_DATE_PICKER_FORMAT)) @@ -132,12 +132,12 @@