commit de compras
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
auth()->forgetGuards();app(App\Shared\Context\CompanyContext::class)->clear();
|
||||
// The QA forms use the explicit CSRF header. Keep validation, but do not replace
|
||||
// the shared localhost XSRF-TOKEN cookie belonging to another demonstration.
|
||||
$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/ledger-demo',function()use($s,$g){
|
||||
if($g['cycle_enabled']??false){return response()->view('accounting.ledger-cycle-entry',['tag'=>$s['tag'],'obligation'=>$g['obligation_id']])->header('Cache-Control','no-store');}
|
||||
if($g['integrated_flow']??false){
|
||||
return response()->view('accounting.payable-flow-entry',['tag'=>$s['tag'],'source'=>$g['local_source_id']])->header('Cache-Control','no-store');
|
||||
}
|
||||
$tag=htmlspecialchars($s['tag'],ENT_QUOTES,'UTF-8');$id=(int)$g['obligation_id'];
|
||||
return response('<!doctype html><html lang="pt"><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Ensaio de lançamento SGF</title><main style="font:18px system-ui;max-width:850px;margin:40px auto;padding:24px" data-ledger-demo="'.$tag.'"><h1>Primeiro lançamento contabilístico — QA</h1><p>Exclusivamente sintético. Obrigação #'.$id.', 60 MZN, duas contas artificiais e período QA-2026-10. Não altera a dívida financeira, stock ou orçamento.</p><p><a href="/qa/ledger-enter/prepare?open=ledger">Preparar / aplicar</a> · <a href="/qa/ledger-enter/validate?open=ledger">Rever com outra identidade</a> · <a href="/qa/ledger-enter/read?open=ledger">Consultar</a></p><ol><li>Preparador captura a obrigação e fundamento.</li><li>Revisor confere o impacto e aprova ou recusa a versão exacta.</li><li>Preparador aplica uma vez e consulta o lançamento.</li></ol><p>Data de ensaio 29/10/2026, regra QA-PAYABLE-JOURNAL. O histórico não é apagado para repetir a demonstração. Revisão visual e aceitação ainda por realizar.</p></main></html>')->header('Cache-Control','no-store');
|
||||
});
|
||||
Illuminate\Support\Facades\Route::middleware('web')->get('/qa/ledger-enter/{role}',function(Illuminate\Http\Request $r,string $role)use($f,$g){
|
||||
abort_unless(in_array($role,['prepare','validate','read'],true),404);$module=$r->query('module','accounting');abort_unless(in_array($module,['accounting','purchasing'],true),422);
|
||||
$u=App\Models\User::findOrFail($f['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',$f['scope']+['token'=>$token,'module_id'=>$module]);
|
||||
$r->session()->put('ledger_demo',true);
|
||||
if($r->query('open')==='cycle')return redirect('/general-ledger/cycle');
|
||||
if($r->query('open')==='flow')return redirect('/general-ledger/flow?source='.$g['local_source_id']);
|
||||
if($r->query('open')==='ledger')return redirect('/general-ledger');
|
||||
return response()->json(['csrf'=>csrf_token(),'context'=>$token,'obligation_id'=>$g['obligation_id']])->header('Cache-Control','no-store');
|
||||
});
|
||||
$sql=[];$mode=[];
|
||||
require __DIR__.'/ledger-reports-observer.php';
|
||||
DB::listen(function($event)use(&$sql,&$mode){$sql[]=$event->sql;if(!$mode&&str_contains($event->sql,'"gl_journals"')){$pdo=$event->connection->getPdo();$mode=['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_LEDGER_QA_PROOF']??'')==='read')file_put_contents($s['root'].'/ledger-http-read-mode.json',json_encode(['transaction'=>$mode,'writer_lock_queries'=>count(array_filter($sql,fn($s)=>str_contains(strtolower($s),'for update')))],JSON_PRETTY_PRINT));
|
||||
exit;
|
||||
Reference in New Issue
Block a user