diff --git a/app/Http/Controllers/VendorController.php b/app/Http/Controllers/VendorController.php index 3c1482febe19..99fa589db1be 100644 --- a/app/Http/Controllers/VendorController.php +++ b/app/Http/Controllers/VendorController.php @@ -13,6 +13,8 @@ namespace App\Http\Controllers; use App\Factory\VendorFactory; use App\Filters\VendorFilters; +use App\Utils\Ninja; +use App\Events\Vendor\VendorWasCreated; use App\Http\Requests\Vendor\CreateVendorRequest; use App\Http\Requests\Vendor\DestroyVendorRequest; use App\Http\Requests\Vendor\EditVendorRequest; @@ -376,6 +378,8 @@ class VendorController extends BaseController $this->uploadLogo($request->file('company_logo'), $vendor->company, $vendor); + event(new VendorWasCreated($vendor, $vendor->company, Ninja::eventVars())); + return $this->itemResponse($vendor); } diff --git a/app/Listeners/Activity/CreatedVendorActivity.php b/app/Listeners/Activity/CreatedVendorActivity.php new file mode 100644 index 000000000000..cb7b1a223c46 --- /dev/null +++ b/app/Listeners/Activity/CreatedVendorActivity.php @@ -0,0 +1,54 @@ +activity_repo = $activity_repo; + } + + /** + * Handle the event. + * + * @param object $event + * @return void + */ + public function handle($event) + { + MultiDB::setDb($event->company->db); + + $fields = new stdClass; + + $fields->vendor_id = $event->vendor->id; + $fields->user_id = $event->vendor->user_id; + $fields->company_id = $event->vendor->company_id; + $fields->activity_type_id = Activity::CREATE_VENDOR; + + $this->activity_repo->save($fields, $event->vendor, $event->event_vars); + } +} diff --git a/app/Models/Activity.php b/app/Models/Activity.php index 8ba4bf497480..6dc1824a41f3 100644 --- a/app/Models/Activity.php +++ b/app/Models/Activity.php @@ -47,7 +47,7 @@ class Activity extends StaticModel const RESTORE_PAYMENT = 27; // const RESTORE_CREDIT = 28; // const APPROVE_QUOTE = 29; // - const CREATE_VENDOR = 30; + const CREATE_VENDOR = 30; // const ARCHIVE_VENDOR = 31; const DELETE_VENDOR = 32; const RESTORE_VENDOR = 33; diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 40bfe5214a59..1f1f82e8182e 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -60,8 +60,10 @@ use App\Events\Quote\QuoteWasViewed; use App\Events\User\UserLoggedIn; use App\Events\User\UserWasCreated; use App\Events\User\UserWasDeleted; +use App\Events\Vendor\VendorWasCreated; use App\Listeners\Activity\ArchivedClientActivity; use App\Listeners\Activity\CreatedClientActivity; +use App\Listeners\Activity\CreatedVendorActivity; use App\Listeners\Activity\CreatedCreditActivity; use App\Listeners\Activity\CreatedQuoteActivity; use App\Listeners\Activity\CreditArchivedActivity; @@ -286,6 +288,10 @@ class EventServiceProvider extends ServiceProvider QuoteWasRestored::class => [ QuoteRestoredActivity::class, ], + VendorWasCreated::class => [ + CreatedVendorActivity::class, + ] + ]; /** diff --git a/tests/Feature/PaymentTest.php b/tests/Feature/PaymentTest.php index 0baa00a2172f..3b7d43e46a10 100644 --- a/tests/Feature/PaymentTest.php +++ b/tests/Feature/PaymentTest.php @@ -1379,7 +1379,7 @@ $contact = ClientContact::factory()->create([ ])->post('/api/v1/payments/bulk?action=delete', $data); $arr = $response->json(); -info(print_r($arr,1)); + $this->assertEquals(1, $arr['data'][0]['is_deleted']); }