1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-11-10 13:12:50 +01:00

Fixes for company gateways

This commit is contained in:
David Bomba 2020-09-02 11:11:01 +10:00
parent 455e9a8e1d
commit 2f478158e9
4 changed files with 34 additions and 3 deletions

View File

@ -717,6 +717,10 @@ class InvoiceController extends BaseController
else
$this->reminder_template = $invoice->calculateTemplate();
//touch reminder1,2,3_sent + last_sent here if the email is a reminder.
$invoice->service()->touchReminder($this->reminder_template)->save();
$invoice->invitations->load('contact.client.country','invoice.client.country','invoice.company')->each(function ($invitation) use ($invoice) {
$email_builder = (new InvoiceEmail())->build($invitation, $this->reminder_template);

View File

@ -43,12 +43,12 @@ class StoreCompanyGatewayRequest extends Request
protected function prepareForValidation()
{
$input = $this->all();
$gateway = Gateway::where('key', $input['gateway_key'])->first();
$default_gateway_fields = json_decode($gateway->fields);
/*Force gateway properties */
if(isset($input['config']))
if(isset($input['config']) && is_object(json_decode($input['config'])))
{
foreach(json_decode($input['config']) as $key => $value) {

View File

@ -46,7 +46,7 @@ class UpdateCompanyGatewayRequest extends Request
$input = $this->all();
/*Force gateway properties */
if(isset($input['config']) && $input['gateway_key'])
if(isset($input['config']) && is_object(json_decode($input['config'])) && array_key_exists('gateway_key', $input))
{
$gateway = Gateway::where('key', $input['gateway_key'])->first();
$default_gateway_fields = json_decode($gateway->fields);

View File

@ -215,6 +215,7 @@ class InvoiceService
return $this;
}
/*Set partial value and due date to null*/
public function clearPartial()
{
$this->invoice->partial = null;
@ -223,6 +224,7 @@ class InvoiceService
return $this;
}
/*Update the partial amount of a invoice*/
public function updatePartial($amount)
{
$this->invoice->partial += $amount;
@ -230,6 +232,31 @@ class InvoiceService
return $this;
}
/*When a reminder is sent we want to touch the dates they were sent*/
public function touchReminder(string $reminder_template)
{
switch ($reminder_template) {
case 'reminder1':
$this->invoice->reminder1_sent = now()->format('Y-m-d');
$this->invoice->reminder_last_sent = now()->format('Y-m-d');
break;
case 'reminder2':
$this->invoice->reminder2_sent = now()->format('Y-m-d');
$this->invoice->reminder_last_sent = now()->format('Y-m-d');
break;
case 'reminder3':
$this->invoice->reminder3_sent = now()->format('Y-m-d');
$this->invoice->reminder_last_sent = now()->format('Y-m-d');
break;
default:
# code...
break;
}
return $this;
}
/**