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
/
User
:
AccountResource.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace App\Http\Resources; use App\Domain\Payment\Enums\PaymentStatusEnum; use App\Domain\Payment\Enums\PaymentTypeEnum; use Carbon\Carbon; use Illuminate\Http\Request; use Illuminate\Http\Resources\Json\JsonResource; class AccountResource extends JsonResource { public function toArray(Request $request): array { $credit = 0; $debit = 0; $payments = 0; $currentBalanceIfNotCash = 0; //$balanceOfTheDate = 0; //$addedDate = Carbon::parse($this->added); foreach ($this->payments as $payment) { $paymentDate = Carbon::parse($payment->payment_date); if ($this->is_cash) { if ($payment->payment_type == PaymentTypeEnum::PAYMENT_TYPE_RECEPTION->value && $payment->status == PaymentStatusEnum::STATUS_RECEIVED->value ) { $credit += $payment->amount; } elseif($payment->payment_type == PaymentTypeEnum::PAYMENT_TYPE_MOVING->value && $payment->status == PaymentStatusEnum::STATUS_RECEIVED->value) { foreach ($payment->distributions as $distribution) { $credit += $distribution->cashbox; } } elseif ($payment->payment_type == PaymentTypeEnum::PAYMENT_TYPE_ISSUEANCE->value) { if ($payment->status == PaymentStatusEnum::STATUS_ISSUED->value) { $debit += $payment->amount; } elseif (in_array($payment->status, [ PaymentStatusEnum::STATUS_APPROVE->value, PaymentStatusEnum::STATUS_AGREE_ONE_TWO->value, PaymentStatusEnum::STATUS_AGREE_TWO_TWO->value, PaymentStatusEnum::STATUS_ISSUE->value, ])) { $payments += $payment->amount; } } } else { if ($payment->payment_type == PaymentTypeEnum::PAYMENT_TYPE_RECEPTION_FROM_1C->value) { $credit += $payment->amount; $currentBalanceIfNotCash += $payment->amount; } elseif ($payment->payment_type == PaymentTypeEnum::PAYMENT_TYPE_MOVING->value || $payment->payment_type == PaymentTypeEnum::PAYMENT_TYPE_PAYMENT->value ) { $debit += $payment->amount; $currentBalanceIfNotCash -= $payment->amount; } } /*if ($addedDate->gt($paymentDate)) { if ($payment->payment_type == PaymentTypeEnum::PAYMENT_TYPE_RECEPTION->value) { $balanceOfTheDate += $payment->amount; } }*/ } $currentBalance = ($this->is_cash) ? $this->balance_of_the_date + $credit - $debit : $this->current_balance; $remainingBalance = ($this->is_cash) ? $currentBalance - $payments : null; return [ 'id' => $this->id, 'name' => $this->name, 'number' => $this->number, 'organization' => $this->organization_name, 'date_added' => $this->added, 'balance_of_the_date' => $this->balance_of_the_date, 'credit' => $credit, 'debit' => $debit, 'payments' => $payments, // Новое поле которое надо обработать 'current_balance' => $currentBalance, 'remaining_balance' => $remainingBalance, // Новое поле которое надо обработать 'archived' => $this->archived, 'is_cash' => $this->is_cash, ]; } }