Add reminder schedules to invoice transformer selectively

This commit is contained in:
David Bomba 2023-08-11 11:30:11 +10:00
parent 90c9c50623
commit 63c7c0718c
3 changed files with 63 additions and 1 deletions

View File

@ -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');

View File

@ -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') ."<br>";
else
$reminder_schedule .= "{$label_1}: {$days_1} {$schedule_1} [{$sends_email_1}]<br>";
if($schedule_2 == ctrans('texts.disabled') || $settings->schedule_reminder2 == 'disabled' || $settings->schedule_reminder2 == '')
$reminder_schedule .= "{$label_2}: " . ctrans('texts.disabled') ."<br>";
else
$reminder_schedule .= "{$label_2}: {$days_2} {$schedule_2} [{$sends_email_2}]<br>";
if($schedule_3 == ctrans('texts.disabled') || $settings->schedule_reminder3 == 'disabled' || $settings->schedule_reminder3 == '')
$reminder_schedule .= "{$label_3}: " . ctrans('texts.disabled') ."<br>";
else
$reminder_schedule .= "{$label_3}: {$days_3} {$schedule_3} [{$sends_email_3}]<br>";
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') ."<br>";
else
$reminder_schedule .= "{$label_endless}: {$days_endless} [{$sends_email_endless}]<br>";
return $reminder_schedule;
}
}

View File

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