Ver código fonte

feat: endpoint consolidado de contas a receber da matriz (TBR)

GET /franchisee-account-receive lista os títulos de TBR das franquias
(franchisee_account_receives) na visão do franqueador, com unidade e
detalhes, filtros por status/unit_id. Resource passa a expor unit_name.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ebagabee 1 mês atrás
pai
commit
e2e26489a2

+ 35 - 0
app/Http/Controllers/FranchiseeAccountReceiveController.php

@@ -0,0 +1,35 @@
+<?php
+
+namespace App\Http\Controllers;
+
+use App\Http\Resources\FranchiseeAccountReceiveResource;
+use App\Models\FranchiseeAccountReceive;
+use Illuminate\Http\JsonResponse;
+use Illuminate\Http\Request;
+
+class FranchiseeAccountReceiveController extends Controller
+{
+    /**
+     * Lista, na visão consolidada do Franqueador, os títulos a receber das
+     * franquias (TBR gerada). É o mesmo registro que, do lado da franquia,
+     * representa o "contas a pagar".
+     */
+    public function index(Request $request): JsonResponse
+    {
+        $query = FranchiseeAccountReceive::with(['unit', 'details'])
+            ->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()),
+        );
+    }
+}

+ 1 - 0
app/Http/Resources/FranchiseeAccountReceiveResource.php

@@ -14,6 +14,7 @@ public function toArray(Request $request): array
         return [
             'id'                 => $this->id,
             'unit_id'            => $this->unit_id,
+            'unit_name'          => $this->whenLoaded('unit', fn () => $this->unit->fantasy_name),
             'tbr_calculation_id' => $this->tbr_calculation_id,
             'order'              => $this->order,
             'history'            => $this->history,

+ 8 - 0
routes/authRoutes/franchisee_account_receive.php

@@ -0,0 +1,8 @@
+<?php
+
+use Illuminate\Support\Facades\Route;
+use App\Http\Controllers\FranchiseeAccountReceiveController;
+
+Route::controller(FranchiseeAccountReceiveController::class)->prefix('franchisee-account-receive')->group(function () {
+    Route::get('/', 'index')->middleware('permission:tbr-calculation,view');
+});