diff --git a/packages/Webkul/Core/src/Console/Commands/InvoiceOverdueCron.php b/packages/Webkul/Core/src/Console/Commands/InvoiceOverdueCron.php new file mode 100644 index 000000000..a59ca0763 --- /dev/null +++ b/packages/Webkul/Core/src/Console/Commands/InvoiceOverdueCron.php @@ -0,0 +1,48 @@ +get() + ->each(function (Invoice $invoice) { + $invoice->sendInvoiceReminder(); + }); + } +} diff --git a/packages/Webkul/Sales/src/Traits/InvoiceReminder.php b/packages/Webkul/Sales/src/Traits/InvoiceReminder.php index 3c1dff531..dfc1ef058 100644 --- a/packages/Webkul/Sales/src/Traits/InvoiceReminder.php +++ b/packages/Webkul/Sales/src/Traits/InvoiceReminder.php @@ -53,4 +53,17 @@ trait InvoiceReminder $this->reminders++; $this->save(); } + + /** + * Scope a query to include only the overdue invoices and at the limit of reminders. + */ + public function scopeOverdueReminders($query) + { + if ($this->hasOverdueRemindersLimit()) { + $limit = $this->getOverdueRemindersLimit(); + return $query->where('reminders', '<', $limit); + } + + return $query; + } }