context->clear(); try { $selection = $request->session()->get('company_context', []); $tenant = $selection['tenant_id'] ?? null; $company = $selection['company_id'] ?? null; abort_unless($request->user() && $tenant && $company, 403, 'Contexto de empresa obrigatório.'); $this->context->selectFor((int) $request->user()->getKey(), $tenant, $company, $selection['unit_id'] ?? null); if (! $request->isMethodSafe()) { $token = $request->header('X-SGF-Context'); abort_unless(is_string($token) && hash_equals($selection['token'] ?? '', $token), 409, 'O contexto mudou. Reabra o formulário antes de guardar.'); } app(\App\Shared\Context\RequireModuleContext::class)->check($request, $this->context); $response = $next($request); if ($request->isMethod('GET') && in_array($request->path(), ['supplier-payables','supplier-payments','purchasing/internal-requisitions'], true) && $response->isSuccessful()) { $bar = ''; $response->setContent(preg_replace('/(]*>)/i', '$1'.$bar, $response->getContent(), 1)); } return $response; } finally { $this->context->clear(); } } }