22 lines
5.8 KiB
PHP
22 lines
5.8 KiB
PHP
<!doctype html>
|
|
<html lang="pt-MZ"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>SGF Tempo — módulos e funções</title>
|
|
<style>body{font:16px system-ui;background:#f4f7f8;color:#173e36;margin:0}main{max-width:1180px;margin:auto;padding:28px}a{color:#174d71}p{line-height:1.6}.brand{font-size:1.8rem;letter-spacing:.04em}.module-choices{display:flex;gap:8px;flex-wrap:wrap;background:#fff;padding:12px;border:1px solid #d8e2df;border-radius:10px;margin:24px 0 32px}.module-choice{position:relative;flex:1;min-width:140px}.module-choice>summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:14px 12px;cursor:pointer;font-weight:650;border-radius:7px;background:#edf4f1}.module-choice>summary::-webkit-details-marker{display:none}.module-choice[open]>summary{background:#1c5a4c;color:#fff}.function-dropdown{position:absolute;z-index:20;top:calc(100% + 8px);left:0;width:300px;max-width:85vw;max-height:65vh;overflow:auto;background:#fff;padding:12px;border:1px solid #ccdcd5;box-shadow:0 14px 32px #173e3626;border-radius:9px}.module-choice:last-child .function-dropdown{left:auto;right:0}.function-dropdown h3{font-size:.85rem;color:#63776e;margin:16px 8px 8px}.function-dropdown p{font-size:.88rem;margin:8px}.function-dropdown button{display:block;text-align:left;width:100%;font:inherit;padding:12px 10px;cursor:pointer;background:#fff;color:#173e36;border:0;border-radius:6px}.function-dropdown button:hover,.function-dropdown button:focus-visible{background:#e6f0eb}.function-dropdown .consult{background:#e6f0eb;font-weight:650}.intro{max-width:780px}.note{border-left:4px solid #39816c;padding:12px 18px;background:#eaf3ef}.advanced{margin-top:24px}.advanced>summary{cursor:pointer;padding:14px;background:#e8edef;border-radius:8px}.profiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:16px}.profiles article{background:#fff;border:1px solid #d8e2df;border-radius:8px;padding:18px}.profiles h3{font-size:1rem}.profiles select,.profiles button{font:inherit;padding:10px;width:100%;margin-top:12px}@media(max-width:760px){main{padding:18px}.module-choice{flex:1 1 28%;min-width:110px}.module-choice>summary{padding:12px 8px;gap:8px}.function-dropdown{position:fixed;left:16px!important;right:16px!important;width:auto;max-width:none;top:auto;max-height:60vh}.module-choices{gap:6px;padding:8px}}</style>
|
|
</head><body><main>
|
|
<header><strong class="brand">TEMPO · SGF</strong><h1>Escolha o módulo</h1><p class="intro">Abra o dropdown do módulo e escolha <strong>Consultar</strong> ou a função com que pretende trabalhar. Cada entrada mantém a sua identidade e permissões.</p></header>
|
|
<nav class="module-choices" aria-label="Módulos do SGF">
|
|
@foreach($tour as $module=>$route)
|
|
<details class="module-choice" name="sgf-entry-module"><summary>{{ $route['label'] }} <span aria-hidden="true">▾</span></summary><div class="function-dropdown" aria-label="Funções de {{ $route['label'] }}">
|
|
<form method="post" action="/sgf/entrar" data-presentation-module="{{ $module }}">@csrf<input type="hidden" name="profile" value="{{ $route['profile'] }}"><input type="hidden" name="module_id" value="{{ $module }}"><input type="hidden" name="landing" value="{{ $module }}"><button class="consult" type="submit">Consultar {{ $route['label'] }} →</button></form>
|
|
<p>{{ $route['description'] }}</p><p>Consulta com {{ $route['function'] }}.</p><h3>Funções de trabalho</h3>
|
|
@foreach($moduleProfiles[$module]??[] as $key=>$profile)<form method="post" action="/sgf/entrar">@csrf<input type="hidden" name="profile" value="{{ $key }}"><input type="hidden" name="module_id" value="{{ $module }}"><button type="submit">{{ $profile['label'] }}</button></form>@endforeach
|
|
</div></details>
|
|
@endforeach
|
|
</nav>
|
|
<section class="note"><strong>Apresentação local com dados fictícios</strong><p>Comercial, Compras, Stock, Oficinas, Financeiro e Contabilidade@if(isset($tour['human_resources'])) e Recursos Humanos@endif usam a mesma instalação. Consultar não repete operações. Preparação e revisão exigem funções distintas; nenhuma entrada concede direitos novos.</p></section>
|
|
<section aria-labelledby="sgf-information"><h2 id="sgf-information">O que pode acompanhar em cada módulo</h2><p>Comece pela consulta. Dentro da função escolhida, use <strong>Início</strong> para ver o percurso, consultar os registos existentes e abrir documentos e histórico. As listas respeitam as permissões da função e a empresa/unidade seleccionadas.</p><div class="profiles">@foreach($tour as $module=>$route)<article><h3>{{ $route['label'] }}</h3><p>{{ $route['description'] }}.</p><form method="post" action="/sgf/entrar">@csrf<input type="hidden" name="profile" value="{{ $route['profile'] }}"><input type="hidden" name="module_id" value="{{ $module }}"><button type="submit">Abrir início de {{ $route['label'] }}</button></form></article>@endforeach</div></section>
|
|
<p class="intro">Documento, movimento físico, dívida e lançamento têm evidências distintas. Preparar não equivale a aprovar ou pagar; cada continuação mantém a origem e exige a função responsável.</p>
|
|
<p><a href="/compras">Entrada anterior de Compras</a></p>
|
|
<details class="advanced"><summary>Todos os perfis e módulos autorizados</summary><div class="profiles">@foreach($profiles as $key=>$profile)<article><h3>{{ $profile['label'] }}</h3><form method="post" action="/sgf/entrar">@csrf<input type="hidden" name="profile" value="{{ $key }}"><label>Módulo<select name="module_id" required><option value="">Escolha o módulo</option>@foreach($profile['modules'] as $module)<option value="{{ $module['id'] }}">{{ $module['label'] }}</option>@endforeach</select></label><button type="submit">Entrar nesta função</button></form></article>@endforeach</div></details>
|
|
<script type="module" src="/sgf-entry-menu.mjs"></script>
|
|
</main></body></html>
|