Files
exchange-2.0/app/Http/Resources/GroupResource.php
T
2022-05-25 21:28:01 +08:00

43 lines
1.6 KiB
PHP

<?php
namespace App\Http\Resources;
use App\Classes\ValueObjects\Constants\ApprovalStatus;
use App\Classes\ValueObjects\Constants\TransactionType;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Http\Resources\Json\JsonResource;
class GroupResource extends JsonResource
{
/**
* Transform the resource into an array.
*
* @param \Illuminate\Http\Request $request
* @return array
*/
public function toArray($request)
{
$transactions = $this->transactions()->get();
$complete_transactions = new Collection([]);
foreach($transactions as $transaction){
$booking = $transaction->owner()->first()->owner()->first();
$purchaseOrders = $booking->transactions()->where('type', TransactionType::PURCHASE_ORDER)->where('status', '=', ApprovalStatus::APPROVED)->get();
$complete_transactions = $complete_transactions->merge($purchaseOrders);
}
return [
'id' => $this->id,
'original_amount' => (float) $this->original_amount,
'original_currency' => new CurrencyResource($this->original_currency),
'amount' => (float) $this->amount,
'currency' => new CurrencyResource($this->currency),
'created_at' => Carbon::parse($this->created_at)->format('d-m-Y h:i:s A'),
'currency_rate' => (float) $this->currency_rate,
'transactions' => TransactionResource::collection($transactions),
'complete_transactions' => TransactionResource::collection($complete_transactions),
];
}
}