orderByDesc('due_date') ->orderByDesc('id'); if ($request->filled('status')) { $query->where('status', $request->query('status')); } if ($request->filled('unit_id')) { $query->where('unit_id', $request->query('unit_id')); } return $this->successResponse( payload: FranchiseeAccountReceiveResource::collection($query->get()), ); } public function store(StoreFranchisorReceivableRequest $request): JsonResponse { $item = $this->service->createManual($request->validated()); return $this->successResponse( payload: new FranchiseeAccountReceiveResource($item), message: __('messages.created'), code: 201, ); } public function settle(SettlePayableRequest $request, int $id): JsonResponse { $item = FranchiseeAccountReceive::find($id); if (! $item) { return $this->errorResponse(message: 'Conta a receber não encontrada', code: 404); } return $this->successResponse( payload: new FranchiseeAccountReceiveResource($this->service->settle($item, $request->validated())), message: 'Baixa realizada com sucesso', ); } public function charge(int $id): JsonResponse { $item = FranchiseeAccountReceive::find($id); if (! $item) { return $this->errorResponse(message: 'Conta a receber não encontrada', code: 404); } return $this->successResponse( payload: new FranchiseeAccountReceiveResource($this->service->generateCharge($item)), message: 'Cobrança gerada no Asaas', ); } public function reopen(int $id): JsonResponse { $item = FranchiseeAccountReceive::find($id); if (! $item) { return $this->errorResponse(message: 'Conta a receber não encontrada', code: 404); } return $this->successResponse( payload: new FranchiseeAccountReceiveResource($this->service->reopen($item)), message: 'Conta reaberta', ); } }