diff --git a/app/Events/Document/DocumentCreated.php b/app/Events/Document/DocumentCreated.php index 0388b44ac..2f1385730 100644 --- a/app/Events/Document/DocumentCreated.php +++ b/app/Events/Document/DocumentCreated.php @@ -8,13 +8,17 @@ class DocumentCreated extends Event { public $document; + public $request; + /** * Create a new event instance. * * @param $document + * @param $request */ - public function __construct($document) + public function __construct($document, $request) { $this->document = $document; + $this->request = $request; } } diff --git a/app/Jobs/Document/CreateDocument.php b/app/Jobs/Document/CreateDocument.php index 4fe69a37b..9efa67ca1 100644 --- a/app/Jobs/Document/CreateDocument.php +++ b/app/Jobs/Document/CreateDocument.php @@ -55,7 +55,7 @@ class CreateDocument extends Job $this->document->createRecurring(); }); - event(new DocumentCreated($this->document)); + event(new DocumentCreated($this->document, $this->request)); return $this->document; } diff --git a/app/Listeners/Document/SettingFieldCreated.php b/app/Listeners/Document/SettingFieldCreated.php new file mode 100644 index 000000000..9f3bdf406 --- /dev/null +++ b/app/Listeners/Document/SettingFieldCreated.php @@ -0,0 +1,43 @@ +request; + + if ($request->has('setting')) { + return; + } + + $type = $request->get('type'); + + foreach ($request->get('setting') as $key => $value) { + if ($key == 'company_logo') { + setting()->set('company.logo', $value); + + continue; + } + + $real_key = $type . '.' . $key; + + setting()->set($real_key, $value); + } + + // Save all settings + setting()->save(); + } +} diff --git a/app/Listeners/Document/SettingFieldUpdated.php b/app/Listeners/Document/SettingFieldUpdated.php new file mode 100644 index 000000000..2baed11d1 --- /dev/null +++ b/app/Listeners/Document/SettingFieldUpdated.php @@ -0,0 +1,43 @@ +request; + + if ($request->has('setting')) { + return; + } + + $type = $request->get('type'); + + foreach ($request->get('setting') as $key => $value) { + if ($key == 'company_logo') { + setting()->set('company.logo', $value); + + continue; + } + + $real_key = $type . '.' . $key; + + setting()->set($real_key, $value); + } + + // Save all settings + setting()->save(); + } +} diff --git a/app/Providers/Event.php b/app/Providers/Event.php index 7981a1051..fea9f3e2c 100644 --- a/app/Providers/Event.php +++ b/app/Providers/Event.php @@ -39,6 +39,7 @@ class Event extends Provider 'App\Events\Document\DocumentCreated' => [ 'App\Listeners\Document\CreateDocumentCreatedHistory', 'App\Listeners\Document\IncreaseNextDocumentNumber', + 'App\Listeners\Document\SettingFieldCreated', ], 'App\Events\Document\DocumentReceived' => [ 'App\Listeners\Document\MarkDocumentReceived', @@ -59,6 +60,9 @@ class Event extends Provider 'App\Events\Document\DocumentSent' => [ 'App\Listeners\Document\MarkDocumentSent', ], + 'App\Events\Document\DocumentUpdated' => [ + 'App\Listeners\Document\SettingFieldUpdated', + ], 'App\Events\Document\DocumentViewed' => [ 'App\Listeners\Document\MarkDocumentViewed', ], diff --git a/resources/views/components/documents/form/company.blade.php b/resources/views/components/documents/form/company.blade.php index e6d4e7497..a2c03018b 100644 --- a/resources/views/components/documents/form/company.blade.php +++ b/resources/views/components/documents/form/company.blade.php @@ -9,17 +9,17 @@