Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
peripherad
/
back
/
app
/
Http
/
Resources
:
SortToProjectCreditResource.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace App\Http\Resources; use App\Domain\Payment\Enums\PaymentTypeEnum; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; class SortToProjectCreditResource extends JsonResource { public function toArray(Request $request): array { $groupedByProject = $this->paymentDistributions ->filter(fn($item) => $item->project && $item->payment) ->groupBy('project_id'); $projects = $groupedByProject->map(function ($distributions, $projectId) { $project = $distributions->first()->project; $totalExtradition = $distributions ->filter(fn($item) => $item->payment->payment_type == PaymentTypeEnum::PAYMENT_TYPE_ISSUEANCE->value) ->sum(fn($item) => (float)$item->amount); $totalAmount = $distributions->sum(fn($item) => (float)$item->amount); return [ 'id' => $project->id, 'description' => $project->description, 'short_description' => $project->short_description, 'offer_number' => $project->offer_number, 'object_address' => $project->object_address, 'total_extradition' => $totalExtradition, 'total_amount' => $totalAmount, ]; })->values(); return [ 'id' => $this->id, 'name' => $this->name, 'projects' => $projects->toArray(), ]; } }