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; + } }