diff --git a/app/Events/RecurringInvoice/RecurringInvoiceWasArchived.php b/app/Events/RecurringInvoice/RecurringInvoiceWasArchived.php new file mode 100644 index 000000000000..61fc9f4e98c8 --- /dev/null +++ b/app/Events/RecurringInvoice/RecurringInvoiceWasArchived.php @@ -0,0 +1,47 @@ +recurring_invoice = $recurring_invoice; + $this->company = $company; + $this->event_vars = $event_vars; + } +} diff --git a/app/Events/RecurringInvoice/RecurringInvoiceWasCreated.php b/app/Events/RecurringInvoice/RecurringInvoiceWasCreated.php new file mode 100644 index 000000000000..caf760d37ca7 --- /dev/null +++ b/app/Events/RecurringInvoice/RecurringInvoiceWasCreated.php @@ -0,0 +1,47 @@ +recurring_invoice = $recurring_invoice; + $this->company = $company; + $this->event_vars = $event_vars; + } +} diff --git a/app/Events/RecurringInvoice/RecurringInvoiceWasDeleted.php b/app/Events/RecurringInvoice/RecurringInvoiceWasDeleted.php new file mode 100644 index 000000000000..f4c6be153871 --- /dev/null +++ b/app/Events/RecurringInvoice/RecurringInvoiceWasDeleted.php @@ -0,0 +1,47 @@ +recurring_invoice = $recurring_invoice; + $this->company = $company; + $this->event_vars = $event_vars; + } +} diff --git a/app/Events/RecurringInvoice/RecurringInvoiceWasRestored.php b/app/Events/RecurringInvoice/RecurringInvoiceWasRestored.php new file mode 100644 index 000000000000..a037e65c86b9 --- /dev/null +++ b/app/Events/RecurringInvoice/RecurringInvoiceWasRestored.php @@ -0,0 +1,51 @@ +recurring_invoice = $recurring_invoice; + $this->fromDeleted = $fromDeleted; + $this->company = $company; + $this->event_vars = $event_vars; + } +} diff --git a/app/Events/RecurringInvoice/RecurringInvoiceWasUpdated.php b/app/Events/RecurringInvoice/RecurringInvoiceWasUpdated.php new file mode 100644 index 000000000000..f7b496f6636e --- /dev/null +++ b/app/Events/RecurringInvoice/RecurringInvoiceWasUpdated.php @@ -0,0 +1,49 @@ +recurring_invoice = $recurring_invoice; + $this->company = $company; + $this->event_vars = $event_vars; + } +} diff --git a/app/Http/Controllers/RecurringInvoiceController.php b/app/Http/Controllers/RecurringInvoiceController.php index 3b6eec2c1091..a8451a29216f 100644 --- a/app/Http/Controllers/RecurringInvoiceController.php +++ b/app/Http/Controllers/RecurringInvoiceController.php @@ -11,6 +11,8 @@ namespace App\Http\Controllers; +use App\Events\RecurringInvoice\RecurringInvoiceWasCreated; +use App\Events\RecurringInvoice\RecurringInvoiceWasUpdated; use App\Factory\RecurringInvoiceFactory; use App\Filters\RecurringInvoiceFilters; use App\Http\Requests\RecurringInvoice\ActionRecurringInvoiceRequest; @@ -200,7 +202,7 @@ class RecurringInvoiceController extends BaseController { $recurring_invoice = $this->recurring_invoice_repo->save($request->all(), RecurringInvoiceFactory::create(auth()->user()->company()->id, auth()->user()->id)); -nlog($recurring_invoice); + event(new RecurringInvoiceWasCreated($recurring_invoice, $recurring_invoice->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null))); return $this->itemResponse($recurring_invoice); } @@ -378,6 +380,8 @@ nlog($recurring_invoice); $recurring_invoice->service()->deletePdf()->save(); + event(new RecurringInvoiceWasUpdated($recurring_invoice, $recurring_invoice->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null))); + return $this->itemResponse($recurring_invoice); } diff --git a/app/Listeners/RecurringInvoice/CreateRecurringInvoiceActivity.php b/app/Listeners/RecurringInvoice/CreateRecurringInvoiceActivity.php new file mode 100644 index 000000000000..5ecb63bd01c0 --- /dev/null +++ b/app/Listeners/RecurringInvoice/CreateRecurringInvoiceActivity.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->recurring_invoice_id = $event->recurring_invoice_id->id; + $fields->client_id = $event->recurring_invoice_id->client_id; + $fields->user_id = $event->recurring_invoice_id->user_id; + $fields->company_id = $event->recurring_invoice_id->company_id; + $fields->activity_type_id = Activity::CREATE_RECURRING_INVOICE; + + $this->activity_repo->save($fields, $event->recurring_invoice_id, $event->event_vars); + } +} diff --git a/app/Listeners/RecurringInvoice/RecurringInvoiceArchivedActivity.php b/app/Listeners/RecurringInvoice/RecurringInvoiceArchivedActivity.php new file mode 100644 index 000000000000..24a8e5869cd0 --- /dev/null +++ b/app/Listeners/RecurringInvoice/RecurringInvoiceArchivedActivity.php @@ -0,0 +1,56 @@ +activity_repo = $activity_repo; + } + + /** + * Handle the event. + * + * @param object $event + * @return void + */ + public function handle($event) + { + MultiDB::setDb($event->company->db); + + $event->recurring_invoice->service()->deletePdf(); + + $fields = new stdClass; + + $fields->recurring_invoice_id = $event->recurring_invoice->id; + $fields->client_id = $event->recurring_invoice->client_id; + $fields->user_id = $event->recurring_invoice->user_id; + $fields->company_id = $event->recurring_invoice->company_id; + $fields->activity_type_id = Activity::ARCHIVE_RECURRING_INVOICE; + + $this->activity_repo->save($fields, $event->recurring_invoice, $event->event_vars); + } +} diff --git a/app/Listeners/RecurringInvoice/RecurringInvoiceDeletedActivity.php b/app/Listeners/RecurringInvoice/RecurringInvoiceDeletedActivity.php new file mode 100644 index 000000000000..4f9c8834a316 --- /dev/null +++ b/app/Listeners/RecurringInvoice/RecurringInvoiceDeletedActivity.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->recurring_invoice_id = $event->recurring_invoice->id; + $fields->client_id = $event->recurring_invoice->client_id; + $fields->user_id = $event->recurring_invoice->user_id; + $fields->company_id = $event->recurring_invoice->company_id; + $fields->activity_type_id = Activity::DELETE_RECURRING_INVOICE; + + $this->activity_repo->save($fields, $event->recurring_invoice, $event->event_vars); + } +} diff --git a/app/Listeners/RecurringInvoice/RecurringInvoiceRestoredActivity.php b/app/Listeners/RecurringInvoice/RecurringInvoiceRestoredActivity.php new file mode 100644 index 000000000000..8e95cc49f161 --- /dev/null +++ b/app/Listeners/RecurringInvoice/RecurringInvoiceRestoredActivity.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->recurring_invoice_id = $event->recurring_invoice->id; + $fields->client_id = $event->recurring_invoice->client_id; + $fields->user_id = $event->recurring_invoice->user_id; + $fields->company_id = $event->recurring_invoice->company_id; + $fields->activity_type_id = Activity::RESTORE_RECURRING_INVOICE; + + $this->activity_repo->save($fields, $event->recurring_invoice, $event->event_vars); + } +} diff --git a/app/Listeners/RecurringInvoice/UpdateRecurringInvoiceActivity.php b/app/Listeners/RecurringInvoice/UpdateRecurringInvoiceActivity.php new file mode 100644 index 000000000000..86fb596e5325 --- /dev/null +++ b/app/Listeners/RecurringInvoice/UpdateRecurringInvoiceActivity.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->client_id = $event->recurring_invoice->client_id; + $fields->user_id = $event->recurring_invoice->user_id; + $fields->company_id = $event->recurring_invoice->company_id; + $fields->activity_type_id = Activity::UPDATE_RECURRING_INVOICE; + $fields->recurring_invoice_id = $event->recurring_invoice->id; + + $this->activity_repo->save($fields, $event->recurring_invoice, $event->event_vars); + } +} diff --git a/app/Models/Activity.php b/app/Models/Activity.php index 9f42edac178e..77bb73338326 100644 --- a/app/Models/Activity.php +++ b/app/Models/Activity.php @@ -90,6 +90,12 @@ class Activity extends StaticModel const DELETE_SUBSCRIPTION = 83; const RESTORE_SUBSCRIPTION = 84; + const CREATE_RECURRING_INVOICE = 100; + const UPDATE_RECURRING_INVOICE = 101; + const ARCHIVE_RECURRING_INVOICE = 102; + const DELETE_RECURRING_INVOICE = 103; + const RESTORE_RECURRING_INVOICE = 104; + protected $casts = [ 'is_system' => 'boolean', 'updated_at' => 'timestamp', diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index a5f0e5c40dc2..d1d25d81069c 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -68,6 +68,11 @@ use App\Events\Quote\QuoteWasEmailed; use App\Events\Quote\QuoteWasRestored; use App\Events\Quote\QuoteWasUpdated; use App\Events\Quote\QuoteWasViewed; +use App\Events\RecurringInvoice\RecurringInvoiceWasArchived; +use App\Events\RecurringInvoice\RecurringInvoiceWasCreated; +use App\Events\RecurringInvoice\RecurringInvoiceWasDeleted; +use App\Events\RecurringInvoice\RecurringInvoiceWasRestored; +use App\Events\RecurringInvoice\RecurringInvoiceWasUpdated; use App\Events\Subscription\SubscriptionWasArchived; use App\Events\Subscription\SubscriptionWasCreated; use App\Events\Subscription\SubscriptionWasDeleted; @@ -164,6 +169,11 @@ use App\Listeners\Quote\QuoteEmailedNotification; use App\Listeners\Quote\QuoteRestoredActivity; use App\Listeners\Quote\QuoteViewedActivity; use App\Listeners\Quote\ReachWorkflowSettings; +use App\Listeners\RecurringInvoice\CreateRecurringInvoiceActivity; +use App\Listeners\RecurringInvoice\RecurringInvoiceArchivedActivity; +use App\Listeners\RecurringInvoice\RecurringInvoiceDeletedActivity; +use App\Listeners\RecurringInvoice\RecurringInvoiceRestoredActivity; +use App\Listeners\RecurringInvoice\UpdateRecurringInvoiceActivity; use App\Listeners\SendVerificationNotification; use App\Listeners\User\ArchivedUserActivity; use App\Listeners\User\CreatedUserActivity; @@ -400,6 +410,21 @@ class EventServiceProvider extends ServiceProvider QuoteWasRestored::class => [ QuoteRestoredActivity::class, ], + RecurringInvoiceWasUpdated::class => [ + UpdateRecurringInvoiceActivity::class, + ], + RecurringInvoiceWasCreated::class => [ + CreateRecurringInvoiceActivity::class, + ], + RecurringInvoiceWasDeleted::class => [ + RecurringInvoiceDeletedActivity::class, + ], + RecurringInvoiceWasArchived::class => [ + RecurringInvoiceArchivedActivity::class, + ], + RecurringInvoiceWasRestored::class => [ + RecurringInvoiceRestoredActivity::class, + ], TaskWasCreated::class => [ CreatedTaskActivity::class, ],