Merge pull request #1655 from cuneytsenturk/default-category

Added Sales & Purchases default category
This commit is contained in:
Cüneyt Şentürk 2020-11-07 16:44:02 +03:00 committed by GitHub
commit 3ab38682fc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 74 additions and 5 deletions

View File

@ -4,6 +4,7 @@ namespace App\Http\Controllers\Settings;
use App\Abstracts\Http\Controller; use App\Abstracts\Http\Controller;
use App\Models\Banking\Account; use App\Models\Banking\Account;
use App\Models\Setting\Category;
use App\Models\Setting\Currency; use App\Models\Setting\Currency;
use App\Models\Setting\Tax; use App\Models\Setting\Tax;
use App\Utilities\Modules; use App\Utilities\Modules;
@ -16,6 +17,9 @@ class Defaults extends Controller
$currencies = Currency::enabled()->orderBy('name')->pluck('name', 'code'); $currencies = Currency::enabled()->orderBy('name')->pluck('name', 'code');
$sales_categories = Category::income()->enabled()->orderBy('name')->pluck('name', 'id');
$purchases_categories = Category::expense()->enabled()->orderBy('name')->pluck('name', 'id');
$taxes = Tax::enabled()->orderBy('name')->get()->pluck('title', 'id'); $taxes = Tax::enabled()->orderBy('name')->get()->pluck('title', 'id');
$payment_methods = Modules::getPaymentMethods(); $payment_methods = Modules::getPaymentMethods();
@ -23,6 +27,8 @@ class Defaults extends Controller
return view('settings.default.edit', compact( return view('settings.default.edit', compact(
'accounts', 'accounts',
'currencies', 'currencies',
'sales_categories',
'purchases_categories',
'taxes', 'taxes',
'payment_methods' 'payment_methods'
)); ));

View File

@ -4,6 +4,9 @@ namespace App\Listeners\Update\V21;
use App\Abstracts\Listeners\Update as Listener; use App\Abstracts\Listeners\Update as Listener;
use App\Events\Install\UpdateFinished as Event; use App\Events\Install\UpdateFinished as Event;
use App\Models\Setting\Category;
use App\Models\Common\Company;
use App\Utilities\Overrider;
use Illuminate\Support\Facades\Artisan; use Illuminate\Support\Facades\Artisan;
class Version210 extends Listener class Version210 extends Listener
@ -24,6 +27,42 @@ class Version210 extends Listener
return; return;
} }
$this->updateCompanies();
Artisan::call('migrate', ['--force' => true]); Artisan::call('migrate', ['--force' => true]);
} }
protected function updateCompanies()
{
$company_id = session('company_id');
$companies = Company::cursor();
foreach ($companies as $company) {
session(['company_id' => $company->id]);
$this->updateSettings($company);
}
setting()->forgetAll();
session(['company_id' => $company_id]);
Overrider::load('settings');
}
public function updateSettings($company)
{
$sales_category = Category::income()->enabled()->first();
$purchases_category = Category::expense()->enabled()->first();
// Set the active company settings
setting()->setExtraColumns(['company_id' => $company->id]);
setting()->forgetAll();
setting()->load(true);
setting()->set(['default.sales_category' => setting('default.sales_category', $sales_category->id)]);
setting()->set(['default.purchases_category' => setting('default.purchases_category', $purchases_category->id)]);
setting()->save();
}
} }

View File

@ -64,8 +64,26 @@ class Categories extends Seeder
], ],
]; ];
$sales_category = $purchases_category = false;
foreach ($rows as $row) { foreach ($rows as $row) {
Category::create($row); $category = Category::create($row);
switch ($category->type) {
case 'income':
if (empty($sales_category)) {
$sales_category = $category;
}
break;
case 'expense':
if (empty($purchases_category)) {
$purchases_category = $category;
}
break;
}
} }
setting()->set('default.sales_category', $sales_category->id);
setting()->set('default.purchases_category', $purchases_category->id);
} }
} }

View File

@ -68,6 +68,8 @@ return [
'description' => 'Default account, currency, language of your company', 'description' => 'Default account, currency, language of your company',
'list_limit' => 'Records Per Page', 'list_limit' => 'Records Per Page',
'use_gravatar' => 'Use Gravatar', 'use_gravatar' => 'Use Gravatar',
'sales_category' => 'Sales Category',
'purchases_category'=> 'Purchases Category',
], ],
'email' => [ 'email' => [

View File

@ -194,7 +194,7 @@
{{ Form::textareaGroup('notes', trans_choice('general.notes', 2)) }} {{ Form::textareaGroup('notes', trans_choice('general.notes', 2)) }}
{{ Form::selectAddNewGroup('category_id', trans_choice('general.categories', 1), 'folder', $categories, setting('default.category'), ['required' => 'required', 'path' => route('modals.categories.create') . '?type=expense']) }} {{ Form::selectAddNewGroup('category_id', trans_choice('general.categories', 1), 'folder', $categories, setting('default.purchases_category'), ['required' => 'required', 'path' => route('modals.categories.create') . '?type=expense']) }}
{{ Form::recurring('create') }} {{ Form::recurring('create') }}

View File

@ -30,7 +30,7 @@
{{ Form::textareaGroup('description', trans('general.description')) }} {{ Form::textareaGroup('description', trans('general.description')) }}
{{ Form::selectAddNewGroup('category_id', trans_choice('general.categories', 1), 'folder', $categories, setting('default.category'), ['required' => 'required', 'path' => route('modals.categories.create') . '?type=expense']) }} {{ Form::selectAddNewGroup('category_id', trans_choice('general.categories', 1), 'folder', $categories, setting('default.purchases_category'), ['required' => 'required', 'path' => route('modals.categories.create') . '?type=expense']) }}
{{ Form::recurring('create') }} {{ Form::recurring('create') }}

View File

@ -196,7 +196,7 @@
{{ Form::textareaGroup('footer', trans('general.footer'), '', setting('invoice.footer'), ['rows' => '3'], 'col-md-6') }} {{ Form::textareaGroup('footer', trans('general.footer'), '', setting('invoice.footer'), ['rows' => '3'], 'col-md-6') }}
{{ Form::selectAddNewGroup('category_id', trans_choice('general.categories', 1), 'folder', $categories, setting('defaults.category'), ['required' => 'required', 'path' => route('modals.categories.create') . '?type=income']) }} {{ Form::selectAddNewGroup('category_id', trans_choice('general.categories', 1), 'folder', $categories, setting('default.sales_category'), ['required' => 'required', 'path' => route('modals.categories.create') . '?type=income']) }}
{{ Form::recurring('create') }} {{ Form::recurring('create') }}

View File

@ -30,7 +30,7 @@
{{ Form::textareaGroup('description', trans('general.description')) }} {{ Form::textareaGroup('description', trans('general.description')) }}
{{ Form::selectAddNewGroup('category_id', trans_choice('general.categories', 1), 'folder', $categories, setting('default.category'), ['required' => 'required', 'path' => route('modals.categories.create') . '?type=income']) }} {{ Form::selectAddNewGroup('category_id', trans_choice('general.categories', 1), 'folder', $categories, setting('default.sales_category'), ['required' => 'required', 'path' => route('modals.categories.create') . '?type=income']) }}
{{ Form::recurring('create') }} {{ Form::recurring('create') }}

View File

@ -22,6 +22,10 @@
{{ Form::selectGroup('currency', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, setting('default.currency'), []) }} {{ Form::selectGroup('currency', trans_choice('general.currencies', 1), 'exchange-alt', $currencies, setting('default.currency'), []) }}
{{ Form::selectGroup('sales_category', trans('settings.default.sales_category'), 'folder', $sales_categories, setting('default.sales_category'), []) }}
{{ Form::selectGroup('purchases_category', trans('settings.default.purchases_category'), 'folder', $purchases_categories, setting('default.purchases_category'), []) }}
{{ Form::selectGroup('tax', trans_choice('general.taxes', 1), 'percent', $taxes, setting('default.tax'), []) }} {{ Form::selectGroup('tax', trans_choice('general.taxes', 1), 'percent', $taxes, setting('default.tax'), []) }}
{{ Form::selectGroup('payment_method', trans_choice('general.payment_methods', 1), 'credit-card', $payment_methods, setting('default.payment_method'), []) }} {{ Form::selectGroup('payment_method', trans_choice('general.payment_methods', 1), 'credit-card', $payment_methods, setting('default.payment_method'), []) }}