mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2024-09-19 16:01:34 +02:00
Endless reminders #1730
This commit is contained in:
parent
ab42593ee4
commit
e2d4c0a22b
@ -74,7 +74,7 @@ class SendReminders extends Command
|
||||
}
|
||||
|
||||
$this->chargeLateFees();
|
||||
$this->setReminderEmails();
|
||||
$this->sendReminderEmails();
|
||||
$this->sendScheduledReports();
|
||||
$this->loadExchangeRates();
|
||||
|
||||
@ -116,7 +116,7 @@ class SendReminders extends Command
|
||||
}
|
||||
}
|
||||
|
||||
private function setReminderEmails()
|
||||
private function sendReminderEmails()
|
||||
{
|
||||
$accounts = $this->accountRepo->findWithReminders();
|
||||
$this->info(count($accounts) . ' accounts found with reminders');
|
||||
|
@ -444,6 +444,7 @@ if (! defined('APP_NAME')) {
|
||||
define('TEMPLATE_REMINDER1', 'reminder1');
|
||||
define('TEMPLATE_REMINDER2', 'reminder2');
|
||||
define('TEMPLATE_REMINDER3', 'reminder3');
|
||||
define('TEMPLATE_REMINDER4', 'reminder4');
|
||||
|
||||
define('RESET_FREQUENCY_DAILY', 1);
|
||||
define('RESET_FREQUENCY_WEEKLY', 2);
|
||||
|
@ -845,6 +845,9 @@ class AccountController extends BaseController
|
||||
$account->account_email_settings->{"late_fee{$number}_percent"} = Input::get("late_fee{$number}_percent");
|
||||
}
|
||||
|
||||
$account->enable_reminder4 = Input::get('enable_reminder4') ? true : false;
|
||||
$account->account_email_settings->frequency_id_reminder4 = Input::get('frequency_id_reminder4');
|
||||
|
||||
$account->save();
|
||||
$account->account_email_settings->save();
|
||||
|
||||
|
@ -108,6 +108,7 @@ class Account extends Eloquent
|
||||
'enable_reminder1',
|
||||
'enable_reminder2',
|
||||
'enable_reminder3',
|
||||
'enable_reminder4',
|
||||
'num_days_reminder1',
|
||||
'num_days_reminder2',
|
||||
'num_days_reminder3',
|
||||
@ -178,6 +179,7 @@ class Account extends Eloquent
|
||||
'credit_number_pattern',
|
||||
'task_rate',
|
||||
'inclusive_taxes',
|
||||
'convert_products',
|
||||
];
|
||||
|
||||
/**
|
||||
@ -1016,7 +1018,7 @@ class Account extends Eloquent
|
||||
return false;
|
||||
}
|
||||
|
||||
return $this->enable_reminder1 || $this->enable_reminder2 || $this->enable_reminder3;
|
||||
return $this->enable_reminder1 || $this->enable_reminder2 || $this->enable_reminder3 || $this->enable_reminder4;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -43,6 +43,7 @@ class AccountEmailSettings extends Eloquent
|
||||
TEMPLATE_REMINDER1,
|
||||
TEMPLATE_REMINDER2,
|
||||
TEMPLATE_REMINDER3,
|
||||
TEMPLATE_REMINDER4,
|
||||
];
|
||||
|
||||
}
|
||||
|
@ -40,9 +40,11 @@ class AccountEmailSettingsTransformer extends EntityTransformer
|
||||
'email_subject_reminder1' => $settings->email_subject_reminder1,
|
||||
'email_subject_reminder2' => $settings->email_subject_reminder2,
|
||||
'email_subject_reminder3' => $settings->email_subject_reminder3,
|
||||
'email_subject_reminder4' => $settings->email_subject_reminder4,
|
||||
'email_template_reminder1' => $settings->email_template_reminder1,
|
||||
'email_template_reminder2' => $settings->email_template_reminder2,
|
||||
'email_template_reminder3' => $settings->email_template_reminder3,
|
||||
'email_template_reminder4' => $settings->email_template_reminder4,
|
||||
'late_fee1_amount' => $settings->late_fee1_amount,
|
||||
'late_fee1_percent' => $settings->late_fee1_percent,
|
||||
'late_fee2_amount' => $settings->late_fee2_amount,
|
||||
|
@ -211,6 +211,7 @@ class AccountTransformer extends EntityTransformer
|
||||
'enable_reminder1' => $account->enable_reminder1,
|
||||
'enable_reminder2' => $account->enable_reminder2,
|
||||
'enable_reminder3' => $account->enable_reminder3,
|
||||
'enable_reminder4' => $account->enable_reminder4,
|
||||
'num_days_reminder1' => $account->num_days_reminder1,
|
||||
'num_days_reminder2' => $account->num_days_reminder2,
|
||||
'num_days_reminder3' => $account->num_days_reminder3,
|
||||
@ -276,6 +277,7 @@ class AccountTransformer extends EntityTransformer
|
||||
'custom_contact_label2' => $account->custom_contact_label2,
|
||||
'task_rate' => (float) $account->task_rate,
|
||||
'inclusive_taxes' => (bool) $account->inclusive_taxes,
|
||||
'convert_products' => (bool) $account->convert_products,
|
||||
];
|
||||
}
|
||||
}
|
||||
|
@ -2627,6 +2627,7 @@ $LANG = array(
|
||||
'progress' => 'Progress',
|
||||
'view_project' => 'View Project',
|
||||
'summary' => 'Summary',
|
||||
'endless_reminder' => 'Endless Reminder',
|
||||
|
||||
);
|
||||
|
||||
|
@ -13,23 +13,34 @@
|
||||
<div class="well" style="padding-bottom:20px">
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
{!! Former::plaintext('schedule')
|
||||
->value(
|
||||
Former::input('num_days_' . $field)
|
||||
->style('float:left;width:20%')
|
||||
->raw() .
|
||||
Former::select('direction_' . $field)
|
||||
->addOption(trans('texts.days_before'), REMINDER_DIRECTION_BEFORE)
|
||||
->addOption(trans('texts.days_after'), REMINDER_DIRECTION_AFTER)
|
||||
->style('float:left;width:40%')
|
||||
->raw() .
|
||||
'<div id="days_after_'. $field .'" style="float:left;width:40%;display:none;padding-top:8px;padding-left:16px;font-size:16px;">' . trans('texts.days_after') . '</div>' .
|
||||
Former::select('field_' . $field)
|
||||
->addOption(trans('texts.field_due_date'), REMINDER_FIELD_DUE_DATE)
|
||||
->addOption(trans('texts.field_invoice_date'), REMINDER_FIELD_INVOICE_DATE)
|
||||
->style('float:left;width:40%')
|
||||
->raw()
|
||||
) !!}
|
||||
@if ($field == 'reminder4')
|
||||
{!! Former::populateField('frequency_id_reminder4', $account->account_email_settings->frequency_id_reminder4) !!}
|
||||
{!! Former::plaintext('frequency')
|
||||
->value(
|
||||
Former::select('frequency_id_reminder4')
|
||||
->options(\App\Models\Frequency::selectOptions())
|
||||
->style('float:left;')
|
||||
->raw()
|
||||
) !!}
|
||||
@else
|
||||
{!! Former::plaintext('schedule')
|
||||
->value(
|
||||
Former::input('num_days_' . $field)
|
||||
->style('float:left;width:20%')
|
||||
->raw() .
|
||||
Former::select('direction_' . $field)
|
||||
->addOption(trans('texts.days_before'), REMINDER_DIRECTION_BEFORE)
|
||||
->addOption(trans('texts.days_after'), REMINDER_DIRECTION_AFTER)
|
||||
->style('float:left;width:40%')
|
||||
->raw() .
|
||||
'<div id="days_after_'. $field .'" style="float:left;width:40%;display:none;padding-top:8px;padding-left:16px;font-size:16px;">' . trans('texts.days_after') . '</div>' .
|
||||
Former::select('field_' . $field)
|
||||
->addOption(trans('texts.field_due_date'), REMINDER_FIELD_DUE_DATE)
|
||||
->addOption(trans('texts.field_invoice_date'), REMINDER_FIELD_INVOICE_DATE)
|
||||
->style('float:left;width:40%')
|
||||
->raw()
|
||||
) !!}
|
||||
@endif
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
|
||||
@ -40,21 +51,23 @@
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" style="padding-top:30px">
|
||||
<div class="col-md-6">
|
||||
{!! Former::text('late_fee' . $number . '_amount')
|
||||
->label('late_fee_amount')
|
||||
->type('number')
|
||||
->step('any') !!}
|
||||
@if ($field != 'reminder4')
|
||||
<div class="row" style="padding-top:30px">
|
||||
<div class="col-md-6">
|
||||
{!! Former::text('late_fee' . $number . '_amount')
|
||||
->label('late_fee_amount')
|
||||
->type('number')
|
||||
->step('any') !!}
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
{!! Former::text('late_fee' . $number . '_percent')
|
||||
->label('late_fee_percent')
|
||||
->type('number')
|
||||
->step('any')
|
||||
->append('%') !!}
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
{!! Former::text('late_fee' . $number . '_percent')
|
||||
->label('late_fee_percent')
|
||||
->type('number')
|
||||
->step('any')
|
||||
->append('%') !!}
|
||||
</div>
|
||||
</div>
|
||||
@endif
|
||||
</div>
|
||||
|
||||
<br/>
|
||||
|
@ -73,11 +73,13 @@
|
||||
<li role="presentation" class="active"><a href="#reminder1" aria-controls="notes" role="tab" data-toggle="tab">{{ trans('texts.first_reminder') }}</a></li>
|
||||
<li role="presentation"><a href="#reminder2" aria-controls="terms" role="tab" data-toggle="tab">{{ trans('texts.second_reminder') }}</a></li>
|
||||
<li role="presentation"><a href="#reminder3" aria-controls="footer" role="tab" data-toggle="tab">{{ trans('texts.third_reminder') }}</a></li>
|
||||
<li role="presentation"><a href="#reminder4" aria-controls="footer" role="tab" data-toggle="tab">{{ trans('texts.endless_reminder') }}</a></li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
@include('accounts.template', ['field' => 'reminder1', 'number' => 1, 'isReminder' => true, 'active' => true])
|
||||
@include('accounts.template', ['field' => 'reminder2', 'number' => 2, 'isReminder' => true])
|
||||
@include('accounts.template', ['field' => 'reminder3', 'number' => 3, 'isReminder' => true])
|
||||
@include('accounts.template', ['field' => 'reminder4', 'number' => 4, 'isReminder' => true])
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
Loading…
Reference in New Issue
Block a user