forgetGuards();app(CompanyContext::class)->clear(); $app->bind(Illuminate\Foundation\Http\Middleware\PreventRequestForgery::class,static fn($container)=>new class($container,$container->make(Illuminate\Contracts\Encryption\Encrypter::class)) extends Illuminate\Foundation\Http\Middleware\PreventRequestForgery {protected $addHttpCookie=false;}); $app->usePublicPath($c['storage'].'/public');app(Illuminate\Foundation\Vite::class)->useHotFile($c['storage'].'/no-hot'); Illuminate\Support\Facades\Route::middleware('web')->get('/qa/sales-demo',function()use($s,$g){return response()->view('accounting.sales-demo-entry',['tag'=>$s['tag'],'invoice'=>$g['invoice_id']])->header('Cache-Control','no-store');}); Illuminate\Support\Facades\Route::middleware('web')->get('/qa/sales-enter/{role}',function(Illuminate\Http\Request $r,string $role)use($g){abort_unless(isset($g['actors'][$role]),404);$module=$r->query('module','accounting');abort_unless(in_array($module,['commercial','finance','accounting'],true),422);$u=App\Models\User::findOrFail($g['actors'][$role]);auth()->login($u);$r->session()->regenerate();$token=bin2hex(random_bytes(24));$r->session()->put('auth_version',$u->auth_version);$r->session()->put('company_context',$g['scope']+['token'=>$token,'module_id'=>$module]);$r->session()->put('sales_demo',true);if($r->query('open')==='sales')return redirect('/general-ledger/sales?invoice_id='.$g['invoice_id']);return response()->json(['csrf'=>csrf_token(),'context'=>$token,'invoice_id'=>$g['invoice_id']])->header('Cache-Control','no-store');}); $sql=[];$readMode=null;DB::listen(function($e)use(&$sql,&$readMode){$sql[]=$e->sql;if(!$readMode&&str_contains($e->sql,'"gl_journals"')){$pdo=$e->connection->getPdo();$readMode=['isolation'=>$pdo->query('SHOW transaction_isolation')->fetchColumn(),'read_only'=>$pdo->query('SHOW transaction_read_only')->fetchColumn()];}}); $app->handleRequest(Illuminate\Http\Request::capture()); if(($_SERVER['HTTP_X_SALES_QA_PROOF']??'')==='read')file_put_contents($s['root'].'/sales-http-read.json',json_encode(['transaction'=>$readMode,'writer_locks'=>count(array_filter($sql,fn($q)=>str_contains(strtolower($q),'for update')))],JSON_PRETTY_PRINT));exit;