feat: fix start date and end date timezone issue

This commit is contained in:
root 2026-07-17 10:25:33 +00:00
parent 80638ddf9b
commit 027f7845b3

View File

@ -6,6 +6,7 @@
use App\Models\ClientInvoice;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\DB;
use Carbon\Carbon;
class ClientInvoicePaymentSyncService
{
@ -50,6 +51,7 @@ public function sync(ClientInvoice $invoice, array $payments): ClientInvoice
$totals['payment_no'] ??= $payment->payment_no;
foreach ($paymentPayload['items'] ?? [] as $itemPayload) {
// dd($itemPayload);
$billingItemType = $billingItemTypes->get((int) ($itemPayload['billing_item_types_id'] ?? 0));
$grossAmount = $this->amount($itemPayload['payment_item_amount'] ?? 0);
$netAmount = $this->amount($itemPayload['net_amount'] ?? 0);
@ -59,8 +61,8 @@ public function sync(ClientInvoice $invoice, array $payments): ClientInvoice
$payment->items()->create([
'billing_item_types_id' => $billingItemType?->id ?? $itemPayload['billing_item_types_id'],
'start_date' => $itemPayload['start_date'] ?? null,
'end_date' => $itemPayload['end_date'] ?? null,
'start_date' => !empty($itemPayload['start_date'])?Carbon::parse($itemPayload['start_date'])->timezone('Asia/Kuala_Lumpur')->format('Y-m-d'):null,
'end_date' => !empty($itemPayload['end_date'])?Carbon::parse($itemPayload['end_date'])->timezone('Asia/Kuala_Lumpur')->format('Y-m-d'):null,
'payment_item_amount' => $grossAmount,
'tax_percentage' => $this->amount($itemPayload['tax_percentage'] ?? 0),
'net_amount' => $netAmount,
@ -76,8 +78,8 @@ public function sync(ClientInvoice $invoice, array $payments): ClientInvoice
'final_net_amount' => $finalNetAmount,
'spending' => $spending,
'is_creditcard' => $isCreditCard,
'start_date' => $itemPayload['start_date'] ?? null,
'end_date' => $itemPayload['end_date'] ?? null,
'start_date' => !empty($itemPayload['start_date'])?Carbon::parse($itemPayload['start_date'])->timezone('Asia/Kuala_Lumpur')->format('Y-m-d'):null,
'end_date' => !empty($itemPayload['end_date'])?Carbon::parse($itemPayload['end_date'])->timezone('Asia/Kuala_Lumpur')->format('Y-m-d') :null,
]);
}
}