Added Sales & Purchases default category

This commit is contained in:
Cüneyt Şentürk 2020-11-07 16:18:44 +03:00
parent e5a7f5b15e
commit e638b7860c
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\Models\Banking\Account;
use App\Models\Setting\Category;
use App\Models\Setting\Currency;
use App\Models\Setting\Tax;
use App\Utilities\Modules;
@ -16,6 +17,9 @@ class Defaults extends Controller
$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');
$payment_methods = Modules::getPaymentMethods();
@ -23,6 +27,8 @@ class Defaults extends Controller
return view('settings.default.edit', compact(
'accounts',
'currencies',
'sales_categories',
'purchases_categories',
'taxes',
'payment_methods'
));

View File

@ -4,6 +4,9 @@ namespace App\Listeners\Update\V21;
use App\Abstracts\Listeners\Update as Listener;
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;
class Version210 extends Listener
@ -24,6 +27,42 @@ class Version210 extends Listener
return;
}
$this->updateCompanies();
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) {
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',
'list_limit' => 'Records Per Page',
'use_gravatar' => 'Use Gravatar',
'sales_category' => 'Sales Category',
'purchases_category'=> 'Purchases Category',
],
'email' => [

View File

@ -194,7 +194,7 @@
{{ 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') }}

View File

@ -30,7 +30,7 @@
{{ 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') }}

View File

@ -196,7 +196,7 @@
{{ 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') }}

View File

@ -30,7 +30,7 @@
{{ 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') }}

View File

@ -22,6 +22,10 @@
{{ 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('payment_method', trans_choice('general.payment_methods', 1), 'credit-card', $payment_methods, setting('default.payment_method'), []) }}