mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Fixes for recurring invoice email logic
This commit is contained in:
parent
c164ab1970
commit
a0fab8d22d
@ -110,12 +110,31 @@ class SendRecurring implements ShouldQueue
|
|||||||
if ($invoice->auto_bill_enabled && $invoice->client->getSetting('auto_bill_date') == 'on_send_date' && $invoice->client->getSetting('auto_email_invoice')) {
|
if ($invoice->auto_bill_enabled && $invoice->client->getSetting('auto_bill_date') == 'on_send_date' && $invoice->client->getSetting('auto_email_invoice')) {
|
||||||
nlog("attempting to autobill {$invoice->number}");
|
nlog("attempting to autobill {$invoice->number}");
|
||||||
AutoBill::dispatch($invoice->id, $this->db, true)->delay(rand(1, 2));
|
AutoBill::dispatch($invoice->id, $this->db, true)->delay(rand(1, 2));
|
||||||
|
|
||||||
|
//edge case to support where online payment notifications are not enabled
|
||||||
|
if(!$invoice->client->getSetting('client_online_payment_notification')){
|
||||||
|
$this->sendRecurringEmails($invoice);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
elseif ($invoice->auto_bill_enabled && $invoice->client->getSetting('auto_bill_date') == 'on_due_date' && $invoice->client->getSetting('auto_email_invoice') && ($invoice->due_date && Carbon::parse($invoice->due_date)->startOfDay()->lte(now()->startOfDay()))) {
|
elseif ($invoice->auto_bill_enabled && $invoice->client->getSetting('auto_bill_date') == 'on_due_date' && $invoice->client->getSetting('auto_email_invoice') && ($invoice->due_date && Carbon::parse($invoice->due_date)->startOfDay()->lte(now()->startOfDay()))) {
|
||||||
nlog("attempting to autobill {$invoice->number}");
|
nlog("attempting to autobill {$invoice->number}");
|
||||||
AutoBill::dispatch($invoice->id, $this->db, true)->delay(rand(1, 2));
|
AutoBill::dispatch($invoice->id, $this->db, true)->delay(rand(1, 2));
|
||||||
|
|
||||||
|
//edge case to support where online payment notifications are not enabled
|
||||||
|
if(!$invoice->client->getSetting('client_online_payment_notification')) {
|
||||||
|
$this->sendRecurringEmails($invoice);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
elseif ($invoice->client->getSetting('auto_email_invoice')) {
|
elseif ($invoice->client->getSetting('auto_email_invoice')) {
|
||||||
|
$this->sendRecurringEmails($invoice);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private function sendRecurringEmails(Invoice $invoice)
|
||||||
|
{
|
||||||
//Admin notification for recurring invoice sent.
|
//Admin notification for recurring invoice sent.
|
||||||
if ($invoice->invitations->count() >= 1) {
|
if ($invoice->invitations->count() >= 1) {
|
||||||
$invoice->entityEmailEvent($invoice->invitations->first(), 'invoice', 'email_template_invoice');
|
$invoice->entityEmailEvent($invoice->invitations->first(), 'invoice', 'email_template_invoice');
|
||||||
@ -132,8 +151,6 @@ class SendRecurring implements ShouldQueue
|
|||||||
nlog("Firing email for invoice {$invoice->number}");
|
nlog("Firing email for invoice {$invoice->number}");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -310,25 +310,6 @@ class AutoBillInvoice extends AbstractService
|
|||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// private function applyPaymentToCredit($credit, $amount) :Credit
|
|
||||||
// {
|
|
||||||
// $credit_item = new InvoiceItem;
|
|
||||||
// $credit_item->type_id = '1';
|
|
||||||
// $credit_item->product_key = ctrans('texts.credit');
|
|
||||||
// $credit_item->notes = ctrans('texts.credit_payment', ['invoice_number' => $this->invoice->number]);
|
|
||||||
// $credit_item->quantity = 1;
|
|
||||||
// $credit_item->cost = $amount * -1;
|
|
||||||
|
|
||||||
// $credit_items = $credit->line_items;
|
|
||||||
// $credit_items[] = $credit_item;
|
|
||||||
|
|
||||||
// $credit->line_items = $credit_items;
|
|
||||||
|
|
||||||
// $credit = $credit->calc()->getCredit();
|
|
||||||
// $credit->save();
|
|
||||||
|
|
||||||
// return $credit;
|
|
||||||
// }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Harvests a client gateway token which passes the
|
* Harvests a client gateway token which passes the
|
||||||
@ -371,37 +352,4 @@ class AutoBillInvoice extends AbstractService
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Adds a gateway fee to the invoice.
|
|
||||||
*
|
|
||||||
* @param float $fee The fee amount.
|
|
||||||
* @return AutoBillInvoice
|
|
||||||
* @deprecated / unused
|
|
||||||
*/
|
|
||||||
// private function addFeeToInvoice(float $fee)
|
|
||||||
// {
|
|
||||||
// //todo if we increase the invoice balance here, we will also need to adjust UP the client balance and ledger?
|
|
||||||
// $starting_amount = $this->invoice->amount;
|
|
||||||
|
|
||||||
// $item = new InvoiceItem;
|
|
||||||
// $item->quantity = 1;
|
|
||||||
// $item->cost = $fee;
|
|
||||||
// $item->notes = ctrans('texts.online_payment_surcharge');
|
|
||||||
// $item->type_id = 3;
|
|
||||||
|
|
||||||
// $items = (array) $this->invoice->line_items;
|
|
||||||
// $items[] = $item;
|
|
||||||
|
|
||||||
// $this->invoice->line_items = $items;
|
|
||||||
// $this->invoice->saveQuietly();
|
|
||||||
|
|
||||||
// $this->invoice = $this->invoice->calc()->getInvoice()->saveQuietly();
|
|
||||||
|
|
||||||
// if ($starting_amount != $this->invoice->amount && $this->invoice->status_id != Invoice::STATUS_DRAFT) {
|
|
||||||
// $this->invoice->client->service()->updateBalance($this->invoice->amount - $starting_amount)->save();
|
|
||||||
// $this->invoice->ledger()->updateInvoiceBalance($this->invoice->amount - $starting_amount, "Invoice {$this->invoice->number} balance updated after stale gateway fee removed")->save();
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return $this;
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,6 @@ class PdfBuilder
|
|||||||
/**
|
/**
|
||||||
* The DOM Document;
|
* The DOM Document;
|
||||||
*
|
*
|
||||||
* @var $document
|
|
||||||
*/
|
*/
|
||||||
public DomDocument $document;
|
public DomDocument $document;
|
||||||
|
|
||||||
@ -619,7 +618,6 @@ class PdfBuilder
|
|||||||
*
|
*
|
||||||
* @param mixed $items
|
* @param mixed $items
|
||||||
* @param string $table_type
|
* @param string $table_type
|
||||||
* @param mixed|null $custom_fields
|
|
||||||
*
|
*
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
@ -1313,7 +1311,7 @@ class PdfBuilder
|
|||||||
* Generates the custom values for the
|
* Generates the custom values for the
|
||||||
* entity.
|
* entity.
|
||||||
*
|
*
|
||||||
* @param array
|
* @param array $variables
|
||||||
* @return array
|
* @return array
|
||||||
*/
|
*/
|
||||||
public function genericDetailsBuilder(array $variables): array
|
public function genericDetailsBuilder(array $variables): array
|
||||||
@ -1470,7 +1468,7 @@ class PdfBuilder
|
|||||||
* Passes an array of items by reference
|
* Passes an array of items by reference
|
||||||
* and performs a nl2br
|
* and performs a nl2br
|
||||||
*
|
*
|
||||||
* @param array
|
* @param array $variables
|
||||||
* @return void
|
* @return void
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@ -183,7 +183,6 @@ class PdfMock
|
|||||||
/**
|
/**
|
||||||
* getStubVariables
|
* getStubVariables
|
||||||
*
|
*
|
||||||
* @return void
|
|
||||||
*/
|
*/
|
||||||
public function getStubVariables()
|
public function getStubVariables()
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user