Fixes for recurring invoices sending to clients that are not checked

This commit is contained in:
David Bomba 2021-08-06 21:55:54 +10:00
parent 60d05ab331
commit f95ed170ed
2 changed files with 15 additions and 5 deletions

View File

@ -56,6 +56,17 @@ class SendRecurring implements ShouldQueue
*/ */
public function handle() : void public function handle() : void
{ {
//reset all contacts here
$this->recurring_invoice->client->contacts()->update(['send_email' => false]);
$this->recurring_invoice->invitations->each(function ($invitation){
$contact = $invitation->contact;
$contact->send_email = true;
$contact->save();
});
// Generate Standard Invoice // Generate Standard Invoice
$invoice = RecurringInvoiceToInvoiceFactory::create($this->recurring_invoice, $this->recurring_invoice->client); $invoice = RecurringInvoiceToInvoiceFactory::create($this->recurring_invoice, $this->recurring_invoice->client);
@ -67,7 +78,7 @@ class SendRecurring implements ShouldQueue
$invoice = $invoice->service() $invoice = $invoice->service()
->markSent() ->markSent()
->applyNumber() ->applyNumber()
->createInvitations() ->createInvitations() //need to only link invitations to those in the recurring invoice
->fillDefaults() ->fillDefaults()
->save(); ->save();

View File

@ -49,16 +49,15 @@ class RecurringService
public function start() public function start()
{ {
//make sure next_send_date is either now or in the future else return.
// if(Carbon::parse($this->recurring_entity->next_send_date)->lt(now()))
// return $this;
if ($this->recurring_entity->remaining_cycles == 0) { if ($this->recurring_entity->remaining_cycles == 0) {
return $this; return $this;
} }
$this->createInvitations()->setStatus(RecurringInvoice::STATUS_ACTIVE); // $this->createInvitations()->setStatus(RecurringInvoice::STATUS_ACTIVE);
$this->setStatus(RecurringInvoice::STATUS_ACTIVE);
return $this; return $this;
} }