diff --git a/app/Http/Controllers/Banking/Transfers.php b/app/Http/Controllers/Banking/Transfers.php index 4a3f81bce..b1f5ccf7a 100644 --- a/app/Http/Controllers/Banking/Transfers.php +++ b/app/Http/Controllers/Banking/Transfers.php @@ -102,14 +102,10 @@ class Transfers extends Controller $request['account_id'] = $request['from_account_id']; $request['paid_at'] = $request['transferred_at']; - // amount $request['currency_code'] = $payment_currency_code; $request['currency_rate'] = $currencies[$payment_currency_code]; $request['vendor_id'] = '0'; - // description - $request['category_id'] = Category::enabled()->type('other')->pluck('id')->first(); // Transfer Category ID - // payment_method - // reference + $request['category_id'] = Category::transfer(); // Transfer Category ID $request['attachment'] = ''; $payment = Payment::create($request->all()); @@ -195,14 +191,10 @@ class Transfers extends Controller $request['account_id'] = $request['from_account_id']; $request['paid_at'] = $request['transferred_at']; - // amount $request['currency_code'] = $payment_currency_code; $request['currency_rate'] = $currencies[$payment_currency_code]; $request['vendor_id'] = '0'; - // description - $request['category_id'] = Category::enabled()->type('other')->pluck('id')->first(); // Transfer Category ID - // payment_method - // reference + $request['category_id'] = Category::transfer(); // Transfer Category ID $request['attachment'] = ''; $payment->update($request->all()); diff --git a/app/Http/Controllers/Settings/Categories.php b/app/Http/Controllers/Settings/Categories.php index c84b4c298..a6d7f1bb2 100644 --- a/app/Http/Controllers/Settings/Categories.php +++ b/app/Http/Controllers/Settings/Categories.php @@ -18,10 +18,12 @@ class Categories extends Controller { $categories = Category::collect(); + $transfer_id = Category::transfer(); + $types = collect(['expense' => 'Expense', 'income' => 'Income', 'item' => 'Item', 'other' => 'Other']) ->prepend(trans('general.all_type', ['type' => trans_choice('general.types', 2)]), ''); - return view('settings.categories.index', compact('categories', 'types')); + return view('settings.categories.index', compact('categories', 'types', 'transfer_id')); } /** @@ -112,6 +114,11 @@ class Categories extends Controller 'payments' => 'payments', ]); + // Can't delete transfer category + if ($category->id == Category::transfer()) { + return redirect('settings/categories'); + } + if (empty($relationships)) { $category->delete(); diff --git a/app/Models/Setting/Category.php b/app/Models/Setting/Category.php index 71bae2c32..4fd9b40b1 100644 --- a/app/Models/Setting/Category.php +++ b/app/Models/Setting/Category.php @@ -48,4 +48,15 @@ class Category extends Model { return $query->where('type', $type); } + + /** + * Scope transfer category. + * + * @param \Illuminate\Database\Eloquent\Builder $query + * @return \Illuminate\Database\Eloquent\Builder + */ + public function scopeTransfer($query) + { + return $query->where('type', 'other')->pluck('id')->first(); + } } diff --git a/resources/views/settings/categories/index.blade.php b/resources/views/settings/categories/index.blade.php index 56fa4203e..5ca39bacb 100644 --- a/resources/views/settings/categories/index.blade.php +++ b/resources/views/settings/categories/index.blade.php @@ -60,7 +60,9 @@