diff --git a/app/Http/Controllers/TwilioController.php b/app/Http/Controllers/TwilioController.php
index 1f26720773ca..d6bf7488d931 100644
--- a/app/Http/Controllers/TwilioController.php
+++ b/app/Http/Controllers/TwilioController.php
@@ -123,6 +123,10 @@ class TwilioController extends BaseController
return response()->json(['message' => 'Unable to retrieve user.'], 400);
}
+ if (!$user->phone || $user->phone == '') {
+ return response()->json(['message' => 'User found, but no valid phone number on file, please contact support.'], 400);
+ }
+
$sid = config('ninja.twilio_account_sid');
$token = config('ninja.twilio_auth_token');
diff --git a/app/Models/Invoice.php b/app/Models/Invoice.php
index f9903591b1c8..6f03027ad6af 100644
--- a/app/Models/Invoice.php
+++ b/app/Models/Invoice.php
@@ -745,4 +745,55 @@ class Invoice extends BaseModel
return $type;
}
+
+ public function reminderSchedule(): string
+ {
+ $reminder_schedule = '';
+ $settings = $this->client->getMergedSettings();
+
+ $send_email_enabled = ctrans('texts.send_email') . " " .ctrans('texts.enabled');
+ $send_email_disabled = ctrans('texts.send_email') . " " .ctrans('texts.disabled');
+
+ $sends_email_1 = $settings->enable_reminder2 ? $send_email_enabled : $send_email_disabled;
+ $days_1 = $settings->num_days_reminder1 . " " . ctrans('texts.days');
+ $schedule_1 = ctrans("texts.{$settings->schedule_reminder1}"); //after due date etc or disabled
+ $label_1 = ctrans('texts.reminder1');
+
+ $sends_email_2 = $settings->enable_reminder2 ? $send_email_enabled : $send_email_disabled;
+ $days_2 = $settings->num_days_reminder2 . " " . ctrans('texts.days');
+ $schedule_2 = ctrans("texts.{$settings->schedule_reminder2}"); //after due date etc or disabled
+ $label_2 = ctrans('texts.reminder2');
+
+ $sends_email_3 = $settings->enable_reminder2 ? $send_email_enabled : $send_email_disabled;
+ $days_3 = $settings->num_days_reminder3 . " " . ctrans('texts.days');
+ $schedule_3 = ctrans("texts.{$settings->schedule_reminder3}"); //after due date etc or disabled
+ $label_3 = ctrans('texts.reminder3');
+
+ $sends_email_endless = $settings->enable_reminder_endless ? $send_email_enabled : $send_email_disabled;
+ $days_endless = \App\Models\RecurringInvoice::frequencyForKey($settings->endless_reminder_frequency_id);
+ $label_endless = ctrans('texts.reminder_endless');
+
+ if($schedule_1 == ctrans('texts.disabled') || $settings->schedule_reminder1 == 'disabled' || $settings->schedule_reminder1 == '')
+ $reminder_schedule .= "{$label_1}: " . ctrans('texts.disabled') ."
";
+ else
+ $reminder_schedule .= "{$label_1}: {$days_1} {$schedule_1} [{$sends_email_1}]
";
+
+ if($schedule_2 == ctrans('texts.disabled') || $settings->schedule_reminder2 == 'disabled' || $settings->schedule_reminder2 == '')
+ $reminder_schedule .= "{$label_2}: " . ctrans('texts.disabled') ."
";
+ else
+ $reminder_schedule .= "{$label_2}: {$days_2} {$schedule_2} [{$sends_email_2}]
";
+
+ if($schedule_3 == ctrans('texts.disabled') || $settings->schedule_reminder3 == 'disabled' || $settings->schedule_reminder3 == '')
+ $reminder_schedule .= "{$label_3}: " . ctrans('texts.disabled') ."
";
+ else
+ $reminder_schedule .= "{$label_3}: {$days_3} {$schedule_3} [{$sends_email_3}]
";
+
+ if($sends_email_endless == ctrans('texts.disabled') || $settings->endless_reminder_frequency_id == '0' || $settings->endless_reminder_frequency_id == '')
+ $reminder_schedule .= "{$label_endless}: " . ctrans('texts.disabled') ."
";
+ else
+ $reminder_schedule .= "{$label_endless}: {$days_endless} [{$sends_email_endless}]
";
+
+
+ return $reminder_schedule;
+ }
}
diff --git a/app/Transformers/InvoiceTransformer.php b/app/Transformers/InvoiceTransformer.php
index c12ae1361b87..d30ef214be3f 100644
--- a/app/Transformers/InvoiceTransformer.php
+++ b/app/Transformers/InvoiceTransformer.php
@@ -87,7 +87,7 @@ class InvoiceTransformer extends EntityTransformer
public function transform(Invoice $invoice)
{
- return [
+ $data = [
'id' => $this->encodePrimaryKey($invoice->id),
'user_id' => $this->encodePrimaryKey($invoice->user_id),
'project_id' => $this->encodePrimaryKey($invoice->project_id),
@@ -151,5 +151,12 @@ class InvoiceTransformer extends EntityTransformer
'auto_bill_enabled' => (bool) $invoice->auto_bill_enabled,
'tax_info' => $invoice->tax_data ?: new \stdClass,
];
+
+ if (request()->has('reminder_schedule') && request()->query('reminder_schedule') == 'true') {
+ $data['reminder_schedule'] = (string) $invoice->reminderSchedule();
+ }
+
+ return $data;
+
}
}