diff --git a/app/Jobs/Document/UpdateDocument.php b/app/Jobs/Document/UpdateDocument.php index 7edff00f9..f9717219e 100644 --- a/app/Jobs/Document/UpdateDocument.php +++ b/app/Jobs/Document/UpdateDocument.php @@ -62,6 +62,7 @@ class UpdateDocument extends Job $this->dispatch(new CreateDocumentItemsAndTotals($this->document, $this->request)); $this->document->paid_amount = $this->document->paid; + event(new PaidAmountCalculated($this->document)); if ($this->document->paid_amount > 0) { diff --git a/app/Listeners/Document/SettingFieldCreated.php b/app/Listeners/Document/SettingFieldCreated.php index 66080152d..3ed162964 100644 --- a/app/Listeners/Document/SettingFieldCreated.php +++ b/app/Listeners/Document/SettingFieldCreated.php @@ -3,11 +3,15 @@ namespace App\Listeners\Document; use App\Events\Document\DocumentCreated as Event; +use App\Models\Common\Company; use App\Traits\Documents; +use App\Traits\Uploads; +use Illuminate\Support\Arr; +use Illuminate\Support\Str; class SettingFieldCreated { - use Documents; + use Documents, Uploads; /** * Handle the event. @@ -18,6 +22,7 @@ class SettingFieldCreated public function handle(Event $event) { $request = $event->request; + $document = $event->document; if (!$request->has('setting')) { return; @@ -28,6 +33,10 @@ class SettingFieldCreated foreach ($fields as $key => $value) { if ($key == 'company_logo') { + if (Arr::has($value, 'dropzone')) { + continue; + } + setting()->set('company.logo', $value); continue; @@ -38,6 +47,31 @@ class SettingFieldCreated setting()->set($real_key, $value); } + $files = $request->file('setting', []); + + if ($files) { + $company = Company::find($document->company_id); + + foreach ($files as $key => $value) { + // Upload attachment + $media = $this->getMedia($value, 'settings'); + + $company->attachMedia($media, Str::snake($real_key)); + + $value = $media->id; + + 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 index 50155cd8e..681d4e02e 100644 --- a/app/Listeners/Document/SettingFieldUpdated.php +++ b/app/Listeners/Document/SettingFieldUpdated.php @@ -3,11 +3,15 @@ namespace App\Listeners\Document; use App\Events\Document\DocumentUpdated as Event; +use App\Models\Common\Company; +use App\Traits\Uploads; use App\Traits\Documents; +use Illuminate\Support\Arr; +use Illuminate\Support\Str; class SettingFieldUpdated { - use Documents; + use Documents, Uploads; /** * Handle the event. @@ -18,6 +22,7 @@ class SettingFieldUpdated public function handle(Event $event) { $request = $event->request; + $document = $event->document; if (!$request->has('setting')) { return; @@ -28,6 +33,10 @@ class SettingFieldUpdated foreach ($fields as $key => $value) { if ($key == 'company_logo') { + if (Arr::has($value, 'dropzone')) { + continue; + } + setting()->set('company.logo', $value); continue; @@ -38,6 +47,31 @@ class SettingFieldUpdated setting()->set($real_key, $value); } + $files = $request->file('setting', []); + + if ($files) { + $company = Company::find($document->company_id); + + foreach ($files as $key => $value) { + // Upload attachment + $media = $this->getMedia($value, 'settings'); + + $company->attachMedia($media, Str::snake($real_key)); + + $value = $media->id; + + if ($key == 'company_logo') { + setting()->set('company.logo', $value); + + continue; + } + + $real_key = $type . '.' . $key; + + setting()->set($real_key, $value); + } + } + // Save all settings setting()->save(); }