mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Fixes for reminderS
This commit is contained in:
parent
a8d148b0dc
commit
dbb60c029e
@ -71,18 +71,20 @@ class ReminderJob implements ShouldQueue
|
|||||||
if ($invoice->isPayable()) {
|
if ($invoice->isPayable()) {
|
||||||
$reminder_template = $invoice->calculateTemplate('invoice');
|
$reminder_template = $invoice->calculateTemplate('invoice');
|
||||||
$invoice->service()->touchReminder($reminder_template)->save();
|
$invoice->service()->touchReminder($reminder_template)->save();
|
||||||
|
|
||||||
$invoice = $this->calcLateFee($invoice, $reminder_template);
|
$invoice = $this->calcLateFee($invoice, $reminder_template);
|
||||||
|
|
||||||
$invoice->invitations->each(function ($invitation) use ($invoice, $reminder_template) {
|
//check if this reminder needs to be emailed
|
||||||
EmailEntity::dispatch($invitation, $invitation->company, $reminder_template);
|
if(in_array($reminder_template, ['reminder1','reminder2','reminder3']) && $invoice->client->getSetting("enable_".$reminder_template))
|
||||||
nlog("Firing reminder email for invoice {$invoice->number}");
|
{
|
||||||
});
|
$invoice->invitations->each(function ($invitation) use ($invoice, $reminder_template) {
|
||||||
|
EmailEntity::dispatch($invitation, $invitation->company, $reminder_template);
|
||||||
|
nlog("Firing reminder email for invoice {$invoice->number}");
|
||||||
|
});
|
||||||
|
|
||||||
if ($invoice->invitations->count() > 0) {
|
if ($invoice->invitations->count() > 0) {
|
||||||
event(new InvoiceWasEmailed($invoice->invitations->first(), $invoice->company, Ninja::eventVars(), $reminder_template));
|
event(new InvoiceWasEmailed($invoice->invitations->first(), $invoice->company, Ninja::eventVars(), $reminder_template));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$invoice->service()->setReminder()->save();
|
$invoice->service()->setReminder()->save();
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
@ -60,7 +60,8 @@ class ACH
|
|||||||
$customer = $this->stripe->findOrCreateCustomer();
|
$customer = $this->stripe->findOrCreateCustomer();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
$source = $this->stripe->stripe->customers->createSource($customer->id, ['source' => $stripe_response->token->id]);
|
$source = Customer::createSource($customer->id, ['source' => $stripe_response->token->id], $this->stripe->stripe_connect_auth);
|
||||||
|
// $source = $this->stripe->stripe->customers->createSource($customer->id, ['source' => $stripe_response->token->id]);
|
||||||
} catch (InvalidRequestException $e) {
|
} catch (InvalidRequestException $e) {
|
||||||
throw new PaymentFailed($e->getMessage(), $e->getCode());
|
throw new PaymentFailed($e->getMessage(), $e->getCode());
|
||||||
}
|
}
|
||||||
|
@ -62,7 +62,6 @@ class Charge
|
|||||||
|
|
||||||
$this->stripe->init();
|
$this->stripe->init();
|
||||||
|
|
||||||
|
|
||||||
$response = null;
|
$response = null;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@ -75,7 +74,7 @@ class Charge
|
|||||||
'confirm' => true,
|
'confirm' => true,
|
||||||
'description' => $description,
|
'description' => $description,
|
||||||
];
|
];
|
||||||
|
nlog($data);
|
||||||
$response = $this->stripe->createPaymentIntent($data, $this->stripe->stripe_connect_auth);
|
$response = $this->stripe->createPaymentIntent($data, $this->stripe->stripe_connect_auth);
|
||||||
// $response = $local_stripe->paymentIntents->create($data);
|
// $response = $local_stripe->paymentIntents->create($data);
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ class UpdateReminder extends AbstractService
|
|||||||
$this->settings->enable_reminder1) {
|
$this->settings->enable_reminder1) {
|
||||||
$reminder_date = Carbon::parse($this->invoice->date)->startOfDay()->addDays($this->settings->num_days_reminder1)->addSeconds($offset);
|
$reminder_date = Carbon::parse($this->invoice->date)->startOfDay()->addDays($this->settings->num_days_reminder1)->addSeconds($offset);
|
||||||
|
|
||||||
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)));
|
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
|
||||||
$date_collection->push($reminder_date);
|
$date_collection->push($reminder_date);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -60,7 +60,7 @@ class UpdateReminder extends AbstractService
|
|||||||
$this->settings->enable_reminder1) {
|
$this->settings->enable_reminder1) {
|
||||||
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->subDays($this->settings->num_days_reminder1)->addSeconds($offset);
|
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->subDays($this->settings->num_days_reminder1)->addSeconds($offset);
|
||||||
|
|
||||||
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)));
|
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
|
||||||
$date_collection->push($reminder_date);
|
$date_collection->push($reminder_date);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -69,7 +69,7 @@ class UpdateReminder extends AbstractService
|
|||||||
$this->settings->enable_reminder1) {
|
$this->settings->enable_reminder1) {
|
||||||
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->addDays($this->settings->num_days_reminder1)->addSeconds($offset);
|
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->addDays($this->settings->num_days_reminder1)->addSeconds($offset);
|
||||||
|
|
||||||
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)));
|
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
|
||||||
$date_collection->push($reminder_date);
|
$date_collection->push($reminder_date);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,7 +78,7 @@ class UpdateReminder extends AbstractService
|
|||||||
$this->settings->enable_reminder2) {
|
$this->settings->enable_reminder2) {
|
||||||
$reminder_date = Carbon::parse($this->invoice->date)->startOfDay()->addDays($this->settings->num_days_reminder2)->addSeconds($offset);
|
$reminder_date = Carbon::parse($this->invoice->date)->startOfDay()->addDays($this->settings->num_days_reminder2)->addSeconds($offset);
|
||||||
|
|
||||||
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)));
|
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
|
||||||
$date_collection->push($reminder_date);
|
$date_collection->push($reminder_date);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -87,7 +87,7 @@ class UpdateReminder extends AbstractService
|
|||||||
$this->settings->enable_reminder2) {
|
$this->settings->enable_reminder2) {
|
||||||
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->subDays($this->settings->num_days_reminder2)->addSeconds($offset);
|
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->subDays($this->settings->num_days_reminder2)->addSeconds($offset);
|
||||||
|
|
||||||
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)));
|
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
|
||||||
$date_collection->push($reminder_date);
|
$date_collection->push($reminder_date);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,7 +96,7 @@ class UpdateReminder extends AbstractService
|
|||||||
$this->settings->enable_reminder2) {
|
$this->settings->enable_reminder2) {
|
||||||
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->addDays($this->settings->num_days_reminder2)->addSeconds($offset);
|
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->addDays($this->settings->num_days_reminder2)->addSeconds($offset);
|
||||||
|
|
||||||
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)));
|
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
|
||||||
$date_collection->push($reminder_date);
|
$date_collection->push($reminder_date);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -105,7 +105,7 @@ class UpdateReminder extends AbstractService
|
|||||||
$this->settings->enable_reminder3) {
|
$this->settings->enable_reminder3) {
|
||||||
$reminder_date = Carbon::parse($this->invoice->date)->startOfDay()->addDays($this->settings->num_days_reminder3)->addSeconds($offset);
|
$reminder_date = Carbon::parse($this->invoice->date)->startOfDay()->addDays($this->settings->num_days_reminder3)->addSeconds($offset);
|
||||||
|
|
||||||
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)));
|
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
|
||||||
$date_collection->push($reminder_date);
|
$date_collection->push($reminder_date);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -114,7 +114,7 @@ class UpdateReminder extends AbstractService
|
|||||||
$this->settings->enable_reminder3) {
|
$this->settings->enable_reminder3) {
|
||||||
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->subDays($this->settings->num_days_reminder3)->addSeconds($offset);
|
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->subDays($this->settings->num_days_reminder3)->addSeconds($offset);
|
||||||
|
|
||||||
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)));
|
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
|
||||||
$date_collection->push($reminder_date);
|
$date_collection->push($reminder_date);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,16 +123,24 @@ class UpdateReminder extends AbstractService
|
|||||||
$this->settings->enable_reminder3) {
|
$this->settings->enable_reminder3) {
|
||||||
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->addDays($this->settings->num_days_reminder3)->addSeconds($offset);
|
$reminder_date = Carbon::parse($this->invoice->due_date)->startOfDay()->addDays($this->settings->num_days_reminder3)->addSeconds($offset);
|
||||||
|
|
||||||
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)));
|
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
|
||||||
$date_collection->push($reminder_date);
|
$date_collection->push($reminder_date);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($this->invoice->last_sent_date &&
|
if ($this->invoice->last_sent_date &&
|
||||||
$this->settings->enable_reminder_endless) {
|
$this->settings->enable_reminder_endless) {
|
||||||
$reminder_date = $this->addTimeInterval($this->invoice->last_sent_date, (int)$this->settings->endless_reminder_frequency_id)->addSeconds($offset);
|
|
||||||
|
|
||||||
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)));
|
$reminder_date = $this->addTimeInterval($this->invoice->last_sent_date, (int)$this->settings->endless_reminder_frequency_id);
|
||||||
$date_collection->push($reminder_date);
|
|
||||||
|
if($reminder_date){
|
||||||
|
|
||||||
|
$reminder_date->addSeconds($offset);
|
||||||
|
|
||||||
|
if ($reminder_date->gt(Carbon::parse($this->invoice->next_send_date)))
|
||||||
|
$date_collection->push($reminder_date);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if($date_collection->count() >=1 && $date_collection->sort()->first()->gte(now()))
|
if($date_collection->count() >=1 && $date_collection->sort()->first()->gte(now()))
|
||||||
@ -143,6 +151,20 @@ class UpdateReminder extends AbstractService
|
|||||||
return $this->invoice;
|
return $this->invoice;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private function testReminderValid($reminder_number, $reminder_schedule) :bool
|
||||||
|
{
|
||||||
|
|
||||||
|
$reminder_sent = "reminder{$reminder_number}_sent";
|
||||||
|
$schedule_reminder = "schedule_reminder{$reminder_number}";
|
||||||
|
$enable_reminder = "enable_reminder{$reminder_number}";
|
||||||
|
$late_fee_amount = "late_fee_amount{$reminder_number}";
|
||||||
|
$late_fee_percent = "late_fee_percent{$reminder_number}";
|
||||||
|
|
||||||
|
return (is_null($this->invoice->{$reminder_sent}) &&
|
||||||
|
$this->settings->{$schedule_reminder} == $reminder_schedule &&
|
||||||
|
($this->settings->{$enable_reminder} || $late_fee_percent > 0 || $late_fee_amount > 0));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
private function addTimeInterval($date, $endless_reminder_frequency_id) :?Carbon
|
private function addTimeInterval($date, $endless_reminder_frequency_id) :?Carbon
|
||||||
{
|
{
|
||||||
|
12188
package-lock.json
generated
12188
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@ -86,8 +86,12 @@ class ReminderTest extends TestCase
|
|||||||
{
|
{
|
||||||
|
|
||||||
$this->invoice->date = now()->subDays(2)->format('Y-m-d');
|
$this->invoice->date = now()->subDays(2)->format('Y-m-d');
|
||||||
$this->invoice->due_date = Carbon::now()->addDays(30)->format('Y-m-d');
|
|
||||||
|
$this->invoice->due_date = now()->addDays(30)->format('Y-m-d');
|
||||||
$this->invoice->reminder1_sent = now()->subDays(1)->format('Y-m-d');
|
$this->invoice->reminder1_sent = now()->subDays(1)->format('Y-m-d');
|
||||||
|
$this->invoice->last_sent_date = now()->subDays(1)->format('Y-m-d');
|
||||||
|
$this->invoice->next_send_date = now()->subDays(1)->format('Y-m-d');
|
||||||
|
$this->invoice->reminder2_sent = null;
|
||||||
|
|
||||||
$settings = $this->company->settings;
|
$settings = $this->company->settings;
|
||||||
$settings->enable_reminder1 = true;
|
$settings->enable_reminder1 = true;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user