Edit File: SettlementController.php
<?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use App\Http\Requests\Api\Settlement\SendSettlementRequest; use App\Http\Resources\SettlementDetailsResource; use App\Http\Resources\SettlementsResource; use App\Http\Resources\SettlementOrderResource; use App\Models\Settlement; use App\Traits\ApiTrait; use App\Traits\GeneralTrait; use App\Traits\Uploadable; use Illuminate\Http\Request; use Illuminate\Support\Arr; use App\Models\StoreCommission; class SettlementController extends Controller { use ApiTrait, GeneralTrait, Uploadable; public function waitingSettlementOrders() { $user = auth('api')->user(); $data = []; $data['total_values'] = $user->ordersInfo()['totals']; $data['orders'] = SettlementOrderResource::collection($user->waitingSettlementOrders()->where('status','pending')->orderBy('created_at' , 'desc')->get()); return $this->dataReturn($data); } public function settlementRequest(SendSettlementRequest $rqeuest) { $order_ids = []; $user = auth('api')->user(); // check if user has settlement request if($user->settlements()->where('status','pending')->count() > 0) { $msg = trans('order.exist_settlement'); return $this->failMsg($msg); } $userWaitingSettlementOrders = $user->waitingSettlementOrders()->where('status','pending'); if($userWaitingSettlementOrders->count() == 0){ $msg = trans('order.notneed_settlement'); return $this->failMsg($msg); } $orders= $userWaitingSettlementOrders->pluck('order_id')->toArray(); foreach($orders as $order_id){ $order_ids[] = ['order_id'=>$order_id]; } $settlement = $user->settlements()->create($rqeuest->validated()); $settlement->settlementOrders()->createMany( $order_ids); StoreCommission::where('user_id', auth('api')->user()->id) ->orderBy('created_at', 'desc')->where('sent' , 'false')->update(['sent' => 'true']); $msg=trans('order.settlement_request_sent'); return $this->successMsg($msg); } public function newSettlements() { $user = auth('api')->user(); $settlements = SettlementsResource::collection($user->settlements()->where('status','pending')->orderBy('created_at' , 'desc')->get()); return $this->dataReturn($settlements); } public function finishedSettlements() { $user = auth('api')->user(); $settlements = SettlementsResource::collection($user->settlements()->whereIn('status',['accepted','refused'])->orderBy('created_at' , 'desc')->get()); return $this->dataReturn($settlements); } public function settlementDetails(Request $request) { $user = auth('api')->user(); $settlement = $user->settlements()->where('id',$request->settlement_id)->first(); $data = []; $data['total_values'] = new SettlementDetailsResource($settlement); $data['settlement_orders'] = SettlementOrderResource::collection($settlement->settlementOrders); return $this->dataReturn($data); } }
Back to File Manager