Working on Timezone Offsets

This commit is contained in:
David Bomba 2021-06-11 07:34:03 +10:00
parent 99d6d1c516
commit 1bc32c2aca
4 changed files with 20 additions and 10 deletions

View File

@ -206,14 +206,11 @@ class RecurringInvoiceController extends BaseController
event(new RecurringInvoiceWasCreated($recurring_invoice, $recurring_invoice->company, Ninja::eventVars(auth()->user() ? auth()->user()->id : null)));
if($recurring_invoice->client->getSetting('entity_send_time') > 0){
$timezone = $this->company->timezone();
$offset = $timezone->utc_offset + ($this->client->getSetting('entity_send_time') * 3600);
$recurring_invoice->next_send_date = Carbon::parse($recurring_invoice->next_send_date)->addSeconds($offset);
$recurring_invoice->save();
}
$offset = $recurring_invoice->client->timezone_offset();
$recurring_invoice->next_send_date = Carbon::parse($recurring_invoice->next_send_date)->addSeconds($offset);
$recurring_invoice->save();
return $this->itemResponse($recurring_invoice);
}

View File

@ -929,7 +929,7 @@ class Import implements ShouldQueue
$modified['client_id'] = $this->transformId('clients', $resource['client_id']);
if(array_key_exists('invoice_id', $resource) && $this->tryTransformingId('invoices', $resource['invoice_id']))
if(array_key_exists('invoice_id', $resource) && isset($resource['invoice_id']) && $this->tryTransformingId('invoices', $resource['invoice_id']))
$modified['invoice_id'] = $this->transformId('invoices', $resource['invoice_id']);
$modified['user_id'] = $this->processUserId($resource);

View File

@ -695,4 +695,18 @@ class Client extends BaseModel implements HasLocalePreference
{
return $this->hasMany(Payment::class);
}
public function timezone_offset()
{
$entity_send_time = $this->getSetting('entity_send_time');
if($entity_send_time == 0)
return 0;
$timezone = $this->company->timezone();
$offset = $timezone->utc_offset + ($entity_send_time * 3600);
return $offset;
}
}

View File

@ -222,8 +222,7 @@ class RecurringInvoice extends BaseModel
return null;
}
$timezone = $this->company->timezone();
$offset = $timezone->utc_offset + ($this->client->getSetting('entity_send_time') * 3600);
$offset = $this->client->timezone_offset();
switch ($this->frequency_id) {
case self::FREQUENCY_DAILY: