Fixes for timezone offsets

This commit is contained in:
David Bomba 2023-11-15 15:36:24 +11:00
parent ad69d3d7ba
commit 1c15f923ae
7 changed files with 12 additions and 13 deletions

View File

@ -93,7 +93,7 @@ class StorePaymentRequest extends Request
}
if (! isset($input['date'])) {
$input['date'] = now()->addSeconds($user->company()->timezone()->utc_offset)->format('Y-m-d');
$input['date'] = now()->addSeconds($user->company()->utc_offset())->format('Y-m-d');
}
if (! isset($input['idempotency_key'])) {

View File

@ -776,14 +776,8 @@ class Client extends BaseModel implements HasLocalePreference
return 0;
}
$timezone = $this->company->timezone();
$offset -= $this->company->utc_offset();
//2023-11-08 adjustments for DST
date_default_timezone_set('GMT');
$date = new \DateTime("now", new \DateTimeZone($timezone->name));
$offset -= $date->getOffset();
// $offset -= $timezone->utc_offset;
$offset += ($entity_send_time * 3600);
return $offset;

View File

@ -911,9 +911,14 @@ class Company extends BaseModel
public function utc_offset(): int
{
$offset = 0;
$timezone = $this->timezone();
return $timezone->utc_offset ?? 0;
date_default_timezone_set('GMT');
$date = new \DateTime("now", new \DateTimeZone($timezone->name));
$offset = $date->getOffset();
return $offset;
}
public function timezone_offset(): int

View File

@ -325,7 +325,7 @@ class BaseDriver extends AbstractPaymentDriver
$payment->company_gateway_id = $this->company_gateway->id;
$payment->status_id = $status;
$payment->currency_id = $this->client->getSetting('currency_id');
$payment->date = Carbon::now()->addSeconds($this->client->company->timezone()->utc_offset)->format('Y-m-d');
$payment->date = Carbon::now()->addSeconds($this->client->company->utc_offset())->format('Y-m-d');
$payment->gateway_type_id = $data['gateway_type_id'];
$client_contact = $this->getContact();

View File

@ -119,7 +119,7 @@ class CreditService
$payment->type_id = PaymentType::CREDIT;
$payment->is_manual = true;
$payment->currency_id = $this->credit->client->getSetting('currency_id');
$payment->date = now()->addSeconds($this->credit->company->timezone()->utc_offset)->format('Y-m-d');
$payment->date = now()->addSeconds($this->credit->company->utc_offset())->format('Y-m-d');
$payment->saveQuietly();
$payment->number = $payment->client->getNextPaymentNumber($payment->client, $payment);

View File

@ -182,7 +182,7 @@ class AutoBillInvoice extends AbstractService
// $payment->applied = $amount;
$payment->client_id = $this->invoice->client_id;
$payment->currency_id = $this->invoice->client->getSetting('currency_id');
$payment->date = now()->addSeconds($this->invoice->company->timezone()->utc_offset)->format('Y-m-d');
$payment->date = now()->addSeconds($this->invoice->company->utc_offset())->format('Y-m-d');
$payment->status_id = Payment::STATUS_COMPLETED;
$payment->type_id = PaymentType::CREDIT;
$payment->service()->applyNumber()->save();

View File

@ -72,7 +72,7 @@ class MarkPaid extends AbstractService
$payment->is_manual = true;
if ($this->invoice->company->timezone()) {
$payment->date = now()->addSeconds($this->invoice->company->timezone()->utc_offset)->format('Y-m-d');
$payment->date = now()->addSeconds($this->invoice->company->utc_offset())->format('Y-m-d');
}
$payment_type_id = $this->invoice->client->getSetting('payment_type_id');