'Group Approve Statement Transaction', 'message' => 'You have successfully approveed a group of Statement Transation' ]; } /** @var ListsBankStatementTransactions */ private $listsBankStatementTransactions; /** @var UpdatesBankStatementTransactionOwnerStatus */ private $updatesBankStatementTransactionOwnerStatus; /** * UpdateAnnouncementLogic constructor. * @param ListsBankStatementTransactions $listsBankStatementTransactions * @param UpdatesBankStatementTransactionOwnerStatus $updatesBankStatementTransactionOwnerStatus */ public function __construct( ListsBankStatementTransactions $listsBankStatementTransactions, UpdatesBankStatementTransactionOwnerStatus $updatesBankStatementTransactionOwnerStatus ) { $this->listsBankStatementTransactions = $listsBankStatementTransactions; $this->updatesBankStatementTransactionOwnerStatus = $updatesBankStatementTransactionOwnerStatus; } /** * @param Request $request * @return JsonResponse * @throws \App\Classes\Exceptions\AccessForbiddenException * @throws \App\Classes\Exceptions\MalformedRequestException * @throws \App\Classes\Exceptions\RequestValidationException */ public function logic(Request $request): JsonResponse { $statementTrasactions = $this->listsBankStatementTransactions->execute($this->listsBankStatementTransactions->deserializeFilters( json_decode("{min_amount: 0, is_mapped: true, is_mapped_with_multiple: false, statement_transaction_owner_type_in: [1, 2], statement_transaction_owner_status_in: [1], per_page: 100, order_by: {column: 'posting_date', DESC: true}}", true) )); foreach ($statementTrasactions as $statementTrasaction) { $statementTrasactionOwner = $statementTrasaction->owners; if (count($statementTrasactionOwner)) { $this->updatesBankStatementTransactionOwnerStatus->execute($statementTrasactionOwner->first(), ApprovalStatus::APPROVED); } } return $this->collectionResponse(BankStatementTransactionResource::collection($statementTrasactions)); } }