diff --git a/app/Events/RecurringQuote/RecurringQuoteWasArchived.php b/app/Events/RecurringQuote/RecurringQuoteWasArchived.php new file mode 100644 index 000000000000..769460b68864 --- /dev/null +++ b/app/Events/RecurringQuote/RecurringQuoteWasArchived.php @@ -0,0 +1,47 @@ +recurring_quote = $recurring_quote; + $this->company = $company; + $this->event_vars = $event_vars; + } +} diff --git a/app/Events/RecurringQuote/RecurringQuoteWasCreated.php b/app/Events/RecurringQuote/RecurringQuoteWasCreated.php new file mode 100644 index 000000000000..88814748b3f3 --- /dev/null +++ b/app/Events/RecurringQuote/RecurringQuoteWasCreated.php @@ -0,0 +1,47 @@ +recurring_quote = $recurring_quote; + $this->company = $company; + $this->event_vars = $event_vars; + } +} diff --git a/app/Events/RecurringQuote/RecurringQuoteWasDeleted.php b/app/Events/RecurringQuote/RecurringQuoteWasDeleted.php new file mode 100644 index 000000000000..3c27baa847f1 --- /dev/null +++ b/app/Events/RecurringQuote/RecurringQuoteWasDeleted.php @@ -0,0 +1,47 @@ +recurring_quote = $recurring_quote; + $this->company = $company; + $this->event_vars = $event_vars; + } +} diff --git a/app/Events/RecurringQuote/RecurringQuoteWasRestored.php b/app/Events/RecurringQuote/RecurringQuoteWasRestored.php new file mode 100644 index 000000000000..624c807af690 --- /dev/null +++ b/app/Events/RecurringQuote/RecurringQuoteWasRestored.php @@ -0,0 +1,51 @@ +recurring_quote = $recurring_quote; + $this->fromDeleted = $fromDeleted; + $this->company = $company; + $this->event_vars = $event_vars; + } +} diff --git a/app/Events/RecurringQuote/RecurringQuoteWasUpdated.php b/app/Events/RecurringQuote/RecurringQuoteWasUpdated.php new file mode 100644 index 000000000000..27c704fe2c4c --- /dev/null +++ b/app/Events/RecurringQuote/RecurringQuoteWasUpdated.php @@ -0,0 +1,49 @@ +recurring_quote = $recurring_quote; + $this->company = $company; + $this->event_vars = $event_vars; + } +} diff --git a/app/Listeners/RecurringExpense/CreatedRecurringExpenseActivity.php b/app/Listeners/RecurringExpense/CreatedRecurringExpenseActivity.php new file mode 100644 index 000000000000..12608e17183e --- /dev/null +++ b/app/Listeners/RecurringExpense/CreatedRecurringExpenseActivity.php @@ -0,0 +1,57 @@ +activity_repo = $activity_repo; + } + + /** + * Handle the event. + * + * @param object $event + * @return void + */ + public function handle($event) + { + MultiDB::setDb($event->company->db); + + $recurring_expense = $event->recurring_expense; + + $fields = new stdClass; + + $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->recurring_expense->user_id; + + $fields->recurring_expense_id = $recurring_expense->id; + $fields->user_id = $user_id; + $fields->company_id = $recurring_expense->company_id; + $fields->activity_type_id = Activity::ARCHIVE_RECURRING_EXPENSE; + + $this->activity_repo->save($fields, $recurring_expense, $event->event_vars); + } +} diff --git a/app/Listeners/RecurringExpense/RecurringExpenseArchivedActivity.php b/app/Listeners/RecurringExpense/RecurringExpenseArchivedActivity.php new file mode 100644 index 000000000000..12608e17183e --- /dev/null +++ b/app/Listeners/RecurringExpense/RecurringExpenseArchivedActivity.php @@ -0,0 +1,57 @@ +activity_repo = $activity_repo; + } + + /** + * Handle the event. + * + * @param object $event + * @return void + */ + public function handle($event) + { + MultiDB::setDb($event->company->db); + + $recurring_expense = $event->recurring_expense; + + $fields = new stdClass; + + $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->recurring_expense->user_id; + + $fields->recurring_expense_id = $recurring_expense->id; + $fields->user_id = $user_id; + $fields->company_id = $recurring_expense->company_id; + $fields->activity_type_id = Activity::ARCHIVE_RECURRING_EXPENSE; + + $this->activity_repo->save($fields, $recurring_expense, $event->event_vars); + } +} diff --git a/app/Listeners/RecurringExpense/RecurringExpenseDeletedActivity.php b/app/Listeners/RecurringExpense/RecurringExpenseDeletedActivity.php new file mode 100644 index 000000000000..236e73b9c420 --- /dev/null +++ b/app/Listeners/RecurringExpense/RecurringExpenseDeletedActivity.php @@ -0,0 +1,55 @@ +activity_repo = $activity_repo; + } + + /** + * Handle the event. + * + * @param object $event + * @return void + */ + public function handle($event) + { + MultiDB::setDb($event->company->db); + + $fields = new stdClass; + + $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->recurring_expense->user_id; + + $fields->recurring_expense_id = $event->recurring_expense->id; + $fields->user_id = $user_id; + $fields->company_id = $event->recurring_expense->company_id; + $fields->activity_type_id = Activity::DELETE_RECURRING_EXPENSE; + + $this->activity_repo->save($fields, $event->recurring_expense, $event->event_vars); + } +} diff --git a/app/Listeners/RecurringExpense/RecurringExpenseRestoredActivity.php b/app/Listeners/RecurringExpense/RecurringExpenseRestoredActivity.php new file mode 100644 index 000000000000..d175d105a747 --- /dev/null +++ b/app/Listeners/RecurringExpense/RecurringExpenseRestoredActivity.php @@ -0,0 +1,55 @@ +activity_repo = $activity_repo; + } + + /** + * Handle the event. + * + * @param object $event + * @return void + */ + public function handle($event) + { + MultiDB::setDb($event->company->db); + + $fields = new stdClass; + + $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->recurring_expense->user_id; + + $fields->recurring_expense_id = $event->recurring_expense->id; + $fields->user_id = $user_id; + $fields->company_id = $event->recurring_expense->company_id; + $fields->activity_type_id = Activity::RESTORE_RECURRING_EXPENSE; + + $this->activity_repo->save($fields, $event->recurring_expense, $event->event_vars); + } +} diff --git a/app/Listeners/RecurringExpense/RecurringExpenseUpdatedActivity.php b/app/Listeners/RecurringExpense/RecurringExpenseUpdatedActivity.php new file mode 100644 index 000000000000..dd46cc6df960 --- /dev/null +++ b/app/Listeners/RecurringExpense/RecurringExpenseUpdatedActivity.php @@ -0,0 +1,57 @@ +activity_repo = $activity_repo; + } + + /** + * Handle the event. + * + * @param object $event + * @return void + */ + public function handle($event) + { + MultiDB::setDb($event->company->db); + + $recurring_expense = $event->recurring_expense; + + $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->recurring_expense->user_id; + + $fields = new stdClass; + + $fields->recurring_expense_id = $recurring_expense->id; + $fields->user_id = $user_id; + $fields->company_id = $recurring_expense->company_id; + $fields->activity_type_id = Activity::UPDATE_RECURRING_EXPENSE; + + $this->activity_repo->save($fields, $recurring_expense, $event->event_vars); + } +} diff --git a/app/Listeners/RecurringQuote/CreateRecurringQuoteActivity.php b/app/Listeners/RecurringQuote/CreateRecurringQuoteActivity.php new file mode 100644 index 000000000000..352bbfd33fd4 --- /dev/null +++ b/app/Listeners/RecurringQuote/CreateRecurringQuoteActivity.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); + + $fields = new stdClass; + + $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->recurring_quote->user_id; + + $fields->user_id = $user_id; + $fields->recurring_quote_id = $event->recurring_quote->id; + $fields->client_id = $event->recurring_quote->client_id; + $fields->company_id = $event->recurring_quote->company_id; + $fields->activity_type_id = Activity::CREATE_RECURRING_QUOTE; + + $this->activity_repo->save($fields, $event->recurring_quote, $event->event_vars); + } +} diff --git a/app/Listeners/RecurringQuote/RecurringQuoteArchivedActivity.php b/app/Listeners/RecurringQuote/RecurringQuoteArchivedActivity.php new file mode 100644 index 000000000000..1f977f963612 --- /dev/null +++ b/app/Listeners/RecurringQuote/RecurringQuoteArchivedActivity.php @@ -0,0 +1,57 @@ +activity_repo = $activity_repo; + } + + /** + * Handle the event. + * + * @param object $event + * @return void + */ + public function handle($event) + { + MultiDB::setDb($event->company->db); + + $event->recurring_quote->service()->deletePdf(); + + $fields = new stdClass; + $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->recurring_quote->user_id; + + $fields->user_id = $user_id; + $fields->recurring_quote_id = $event->recurring_quote->id; + $fields->client_id = $event->recurring_quote->client_id; + $fields->company_id = $event->recurring_quote->company_id; + $fields->activity_type_id = Activity::ARCHIVE_RECURRING_QUOTE; + + $this->activity_repo->save($fields, $event->recurring_quote, $event->event_vars); + } +} diff --git a/app/Listeners/RecurringQuote/RecurringQuoteDeletedActivity.php b/app/Listeners/RecurringQuote/RecurringQuoteDeletedActivity.php new file mode 100644 index 000000000000..605195cbed2c --- /dev/null +++ b/app/Listeners/RecurringQuote/RecurringQuoteDeletedActivity.php @@ -0,0 +1,55 @@ +activity_repo = $activity_repo; + } + + /** + * Handle the event. + * + * @param object $event + * @return void + */ + public function handle($event) + { + MultiDB::setDb($event->company->db); + + $fields = new stdClass; + $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->recurring_quote->user_id; + + $fields->user_id = $user_id; + $fields->recurring_quote_id = $event->recurring_quote->id; + $fields->client_id = $event->recurring_quote->client_id; + $fields->company_id = $event->recurring_quote->company_id; + $fields->activity_type_id = Activity::DELETE_RECURRING_QUOTE; + + $this->activity_repo->save($fields, $event->recurring_quote, $event->event_vars); + } +} diff --git a/app/Listeners/RecurringQuote/RecurringQuoteRestoredActivity.php b/app/Listeners/RecurringQuote/RecurringQuoteRestoredActivity.php new file mode 100644 index 000000000000..16972eb6cc21 --- /dev/null +++ b/app/Listeners/RecurringQuote/RecurringQuoteRestoredActivity.php @@ -0,0 +1,55 @@ +activity_repo = $activity_repo; + } + + /** + * Handle the event. + * + * @param object $event + * @return void + */ + public function handle($event) + { + MultiDB::setDb($event->company->db); + + $fields = new stdClass; + $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->recurring_quote->user_id; + + $fields->user_id = $user_id; + $fields->recurring_quote_id = $event->recurring_quote->id; + $fields->client_id = $event->recurring_quote->client_id; + $fields->company_id = $event->recurring_quote->company_id; + $fields->activity_type_id = Activity::RESTORE_RECURRING_QUOTE; + + $this->activity_repo->save($fields, $event->recurring_quote, $event->event_vars); + } +} diff --git a/app/Listeners/RecurringQuote/UpdateRecurringQuoteActivity.php b/app/Listeners/RecurringQuote/UpdateRecurringQuoteActivity.php new file mode 100644 index 000000000000..fb81d3710bc6 --- /dev/null +++ b/app/Listeners/RecurringQuote/UpdateRecurringQuoteActivity.php @@ -0,0 +1,55 @@ +activity_repo = $activity_repo; + } + + /** + * Handle the event. + * + * @param object $event + * @return void + */ + public function handle($event) + { + MultiDB::setDB($event->company->db); + + $fields = new stdClass; + $user_id = array_key_exists('user_id', $event->event_vars) ? $event->event_vars['user_id'] : $event->recurring_quote->user_id; + + $fields->user_id = $user_id; + $fields->client_id = $event->recurring_quote->client_id; + $fields->company_id = $event->recurring_quote->company_id; + $fields->activity_type_id = Activity::UPDATE_RECURRING_QUOTE; + $fields->recurring_quote_id = $event->recurring_quote->id; + + $this->activity_repo->save($fields, $event->recurring_quote, $event->event_vars); + } +} diff --git a/app/Models/Activity.php b/app/Models/Activity.php index b51c9b8cb9b4..595601a1a4e4 100644 --- a/app/Models/Activity.php +++ b/app/Models/Activity.php @@ -96,6 +96,18 @@ class Activity extends StaticModel const DELETE_RECURRING_INVOICE = 103; const RESTORE_RECURRING_INVOICE = 104; + const CREATE_RECURRING_QUOTE = 110; + const UPDATE_RECURRING_QUOTE = 111; + const ARCHIVE_RECURRING_QUOTE = 112; + const DELETE_RECURRING_QUOTE = 113; + const RESTORE_RECURRING_QUOTE = 114; + + const CREATE_RECURRING_EXPENSE = 120; + const UPDATE_RECURRING_EXPENSE = 121; + const ARCHIVE_RECURRING_EXPENSE = 122; + const DELETE_RECURRING_EXPENSE = 123; + const RESTORE_RECURRING_EXPENSE = 124; + protected $casts = [ 'is_system' => 'boolean', 'updated_at' => 'timestamp', diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index 24164a40e84c..da39760ffa91 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -68,11 +68,21 @@ use App\Events\Quote\QuoteWasEmailed; use App\Events\Quote\QuoteWasRestored; use App\Events\Quote\QuoteWasUpdated; use App\Events\Quote\QuoteWasViewed; +use App\Events\RecurringExpense\RecurringExpenseWasArchived; +use App\Events\RecurringExpense\RecurringExpenseWasCreated; +use App\Events\RecurringExpense\RecurringExpenseWasDeleted; +use App\Events\RecurringExpense\RecurringExpenseWasRestored; +use App\Events\RecurringExpense\RecurringExpenseWasUpdated; 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\RecurringQuote\RecurringQuoteWasArchived; +use App\Events\RecurringQuote\RecurringQuoteWasCreated; +use App\Events\RecurringQuote\RecurringQuoteWasDeleted; +use App\Events\RecurringQuote\RecurringQuoteWasRestored; +use App\Events\RecurringQuote\RecurringQuoteWasUpdated; use App\Events\Subscription\SubscriptionWasArchived; use App\Events\Subscription\SubscriptionWasCreated; use App\Events\Subscription\SubscriptionWasDeleted; @@ -174,6 +184,11 @@ use App\Listeners\RecurringInvoice\RecurringInvoiceArchivedActivity; use App\Listeners\RecurringInvoice\RecurringInvoiceDeletedActivity; use App\Listeners\RecurringInvoice\RecurringInvoiceRestoredActivity; use App\Listeners\RecurringInvoice\UpdateRecurringInvoiceActivity; +use App\Listeners\RecurringQuote\CreateRecurringQuoteActivity; +use App\Listeners\RecurringQuote\RecurringQuoteArchivedActivity; +use App\Listeners\RecurringQuote\RecurringQuoteDeletedActivity; +use App\Listeners\RecurringQuote\RecurringQuoteRestoredActivity; +use App\Listeners\RecurringQuote\UpdateRecurringQuoteActivity; use App\Listeners\SendVerificationNotification; use App\Listeners\User\ArchivedUserActivity; use App\Listeners\User\CreatedUserActivity; @@ -410,6 +425,36 @@ class EventServiceProvider extends ServiceProvider QuoteWasRestored::class => [ QuoteRestoredActivity::class, ], + RecurringExpenseWasCreated::class => [ + CreatedRecurringExpenseActivity::class, + ], + RecurringExpenseWasUpdated::class => [ + RecurringExpenseUpdatedActivity::class, + ], + RecurringExpenseWasArchived::class => [ + RecurringExpenseArchivedActivity::class, + ], + RecurringExpenseWasDeleted::class => [ + RecurringExpenseDeletedActivity::class, + ], + RecurringExpenseWasRestored::class => [ + RecurringExpenseRestoredActivity::class + ], + RecurringQuoteWasUpdated::class => [ + UpdateRecurringQuoteActivity::class, + ], + RecurringQuoteWasCreated::class => [ + CreateRecurringQuoteActivity::class, + ], + RecurringQuoteWasDeleted::class => [ + RecurringQuoteDeletedActivity::class, + ], + RecurringQuoteWasArchived::class => [ + RecurringQuoteArchivedActivity::class, + ], + RecurringQuoteWasRestored::class => [ + RecurringQuoteRestoredActivity::class, + ], RecurringInvoiceWasUpdated::class => [ UpdateRecurringInvoiceActivity::class, ], diff --git a/routes/api.php b/routes/api.php index 3b41ab6888fb..db788698b12b 100644 --- a/routes/api.php +++ b/routes/api.php @@ -141,8 +141,6 @@ Route::group(['middleware' => ['api_db', 'token_auth', 'locale'], 'prefix' => 'a Route::post('recurring_quotes/bulk', 'RecurringQuoteController@bulk')->name('recurring_quotes.bulk'); Route::put('recurring_quotes/{recurring_quote}/upload', 'RecurringQuoteController@upload'); - Route::post('recurring_quotes/bulk', 'RecurringQuoteController@bulk')->name('recurring_quotes.bulk'); - Route::post('refresh', 'Auth\LoginController@refresh'); Route::get('scheduler', 'SchedulerController@index');