From 0d2b2af6d5d6ddd32d9dea1860ac251810f33c21 Mon Sep 17 00:00:00 2001 From: omair saleh Date: Sat, 22 Jan 2022 13:57:45 +0800 Subject: [PATCH] fix duplicated bill plz problem --- app/Http/Resources/TransactionResource.php | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/app/Http/Resources/TransactionResource.php b/app/Http/Resources/TransactionResource.php index 633985cf..6153af67 100644 --- a/app/Http/Resources/TransactionResource.php +++ b/app/Http/Resources/TransactionResource.php @@ -16,6 +16,23 @@ class TransactionResource extends JsonResource */ public function toArray($request) { + if ($this->type === TransactionType::BILL){ + + $order = 1; + + $bills = $this->booking->transactions()->bills()->where('original_amount', '=', $this->original_amount)->get(); + + if(count($bills) > 1){ + $key = $bills->search(function($bill){ + return $bill === $this->id; + }); + $order = $key + 1; + } + + $payment = $this->booking->transactions()->payments()->complete()->where('original_amount', '=', $this->original_amount)->get($order); + + + } return [ 'id' => $this->id, 'booking' => new BookingResource($this->booking), @@ -35,7 +52,7 @@ class TransactionResource extends JsonResource 'status' => (int) $this->status, 'details' => TransactionDetailResource::collection($this->transactionDetails), 'documents' => new DocumentResource($this->documents()->first()), - 'customer_booking' => new TransactionResource($this->when((int) $this->type === TransactionType::BILL, $this->booking->transactions()->payments()->complete()->where('original_amount', '=', $this->original_amount)->where('id', '<', $this->id)->orderByDesc('id')->first())), + 'customer_booking' => new TransactionResource($this->when((int) $this->type === TransactionType::BILL, [])), 'expires_on' => Carbon::parse($this->expires_on)->format('d-m-Y h:i:s A'), 'updated_at' => Carbon::parse($this->updated_at)->format('d-m-Y h:i:s A') ];