use jobs in seeds

This commit is contained in:
Denis Duliçi 2021-09-06 14:46:42 +03:00
parent 442b238854
commit 7fd3917d63
7 changed files with 38 additions and 22 deletions

View File

@ -5,6 +5,7 @@ namespace App\Jobs\Common;
use App\Abstracts\Job; use App\Abstracts\Job;
use App\Interfaces\Job\HasOwner; use App\Interfaces\Job\HasOwner;
use App\Interfaces\Job\ShouldCreate; use App\Interfaces\Job\ShouldCreate;
use App\Jobs\Common\CreateWidget;
use App\Models\Auth\User; use App\Models\Auth\User;
use App\Models\Common\Company; use App\Models\Common\Company;
use App\Models\Common\Dashboard; use App\Models\Common\Dashboard;
@ -110,16 +111,21 @@ class CreateDashboard extends Job implements HasOwner, ShouldCreate
$name = (new $class())->getDefaultName(); $name = (new $class())->getDefaultName();
} }
Widget::firstOrCreate([ $widget = Widget::companyId($this->model->company_id)
'company_id' => $this->model->company_id, ->where('dashboard_id', $this->model->id)
'dashboard_id' => $this->model->id, ->where('class', $class)
'class' => $class, ->first();
], [
'name' => $name, if (! $widget) {
'sort' => $sort, $this->dispatch(new CreateWidget([
'settings' => (new $class())->getDefaultSettings(), 'company_id' => $this->model->company_id,
'created_by' => $this->model->created_by, 'dashboard_id' => $this->model->id,
]); 'class' => $class,
'name' => $name,
'sort' => $sort,
'settings' => (new $class())->getDefaultSettings(),
]));
}
$sort++; $sort++;
} }

View File

@ -11,8 +11,6 @@ class CreateWidget extends Job implements HasOwner, ShouldCreate
{ {
public function handle(): Widget public function handle(): Widget
{ {
$this->request['enabled'] = $this->request['enabled'] ?? 1;
\DB::transaction(function () { \DB::transaction(function () {
$this->widget = Widget::create($this->request->all()); $this->widget = Widget::create($this->request->all());
}); });

View File

@ -3,11 +3,14 @@
namespace Database\Seeds; namespace Database\Seeds;
use App\Abstracts\Model; use App\Abstracts\Model;
use App\Models\Banking\Account; use App\Jobs\Banking\CreateAccount;
use App\Traits\Jobs;
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
class Accounts extends Seeder class Accounts extends Seeder
{ {
use Jobs;
/** /**
* Run the database seeds. * Run the database seeds.
* *
@ -26,14 +29,14 @@ class Accounts extends Seeder
{ {
$company_id = $this->command->argument('company'); $company_id = $this->command->argument('company');
$account = Account::create([ $account = $this->dispatch(new CreateAccount([
'company_id' => $company_id, 'company_id' => $company_id,
'name' => trans('demo.accounts.cash'), 'name' => trans('demo.accounts.cash'),
'number' => '1', 'number' => '1',
'currency_code' => 'USD', 'currency_code' => 'USD',
'bank_name' => trans('demo.accounts.cash'), 'bank_name' => trans('demo.accounts.cash'),
'enabled' => '1', 'enabled' => '1',
]); ]));
setting()->set('default.account', $account->id); setting()->set('default.account', $account->id);
} }

View File

@ -3,11 +3,14 @@
namespace Database\Seeds; namespace Database\Seeds;
use App\Abstracts\Model; use App\Abstracts\Model;
use App\Models\Setting\Category; use App\Jobs\Setting\CreateCategory;
use App\Traits\Jobs;
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
class Categories extends Seeder class Categories extends Seeder
{ {
use Jobs;
/** /**
* Run the database seeds. * Run the database seeds.
* *
@ -67,7 +70,7 @@ class Categories extends Seeder
$income_category_id = $expense_category_id = 0; $income_category_id = $expense_category_id = 0;
foreach ($rows as $row) { foreach ($rows as $row) {
$category = Category::create($row); $category = $this->dispatch(new CreateCategory($row));
switch ($category->type) { switch ($category->type) {
case 'income': case 'income':

View File

@ -3,11 +3,14 @@
namespace Database\Seeds; namespace Database\Seeds;
use App\Abstracts\Model; use App\Abstracts\Model;
use App\Models\Setting\Currency; use App\Jobs\Setting\CreateCurrency;
use App\Traits\Jobs;
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
class Currencies extends Seeder class Currencies extends Seeder
{ {
use Jobs;
/** /**
* Run the database seeds. * Run the database seeds.
* *
@ -75,7 +78,7 @@ class Currencies extends Seeder
]; ];
foreach ($rows as $row) { foreach ($rows as $row) {
Currency::create($row); $this->dispatch(new CreateCurrency($row));
} }
} }
} }

View File

@ -3,8 +3,8 @@
namespace Database\Seeds; namespace Database\Seeds;
use App\Abstracts\Model; use App\Abstracts\Model;
use Artisan;
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Artisan;
class Modules extends Seeder class Modules extends Seeder
{ {

View File

@ -3,11 +3,14 @@
namespace Database\Seeds; namespace Database\Seeds;
use App\Abstracts\Model; use App\Abstracts\Model;
use App\Models\Common\Report; use App\Jobs\Common\CreateReport;
use App\Traits\Jobs;
use Illuminate\Database\Seeder; use Illuminate\Database\Seeder;
class Reports extends Seeder class Reports extends Seeder
{ {
use Jobs;
/** /**
* Run the database seeds. * Run the database seeds.
* *
@ -65,7 +68,7 @@ class Reports extends Seeder
]; ];
foreach ($rows as $row) { foreach ($rows as $row) {
Report::create($row); $this->dispatch(new CreateReport($row));
} }
} }
} }