Files
2026-11-11 09:00:17 +02:00

223 lines
35 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SGF TEMPO
**Entrada dos seis módulos na mesma instalação:** http://127.0.0.1:8085/sgf · [Guião de apresentação](docs/SGF_GUIAO_APRESENTACAO.md) · [Estado funcional e limitações](docs/SGF_SIX_MODULE_CLOSURE_20261110.md). Comercial, Compras, Stock, Oficinas, Financeiro e Contabilidade integrados no recorte QA aprovado,18 lançamentos equilibrados, sem SGC ou novas demonstrações. Abertura/legibilidade do novo Stock confirmada pelo utilizador; aceitação integral, revisão visual restante e capacidade de implantação continuam separadas.
**Directiva actual — conclusão do SGF autónomo:** fechar os seis módulos numa única instalação e entregar um produto apresentável a potenciais clientes. [Escopo, diagnóstico e critérios únicos de entrega](docs/SGF_SOLUTION_DELIVERY.md). O conector SGC é opcional e permanece desligado; as provas e demonstrações históricas abaixo não representam a conclusão dos seis módulos.
**Compras — entrada única actual:** **http://127.0.0.1:8085/compras**. [Guia de utilização](docs/COMPRAS_USO_LOCAL.md) · [percurso concluído e prova](docs/PURCHASING_COMPLETION.md). A instalação existente reúne fornecedores, requisições, propostas/adjudicação, ordens, recepções, facturas e reconhecimento de obrigações. Há um exemplo completo conservado, com principal100MZN e movimento1UN. Funções sintéticas explícitas; nenhuma instalação empresarial ou operação real foi activada. Para reutilizar a aplicação local: `scripts/abrir-compras.ps1`. As referências de demonstrações abaixo são históricas.
[Comprovativos de fornecedor integrados na consulta contabilística](docs/FINANCIAL_RECEIPT_RECOVERY_DELIVERY.md): domínio explícito de reconhecimento ou liquidação, direitos próprios, sem reexecutar operações.43 verificações dirigidas em base QA nova; nenhum pagamento criado. Revisão visual, carga e implantação pendentes.
[Recuperação de comprovativos contabilísticos](docs/GENERAL_LEDGER_RECEIPT_RECOVERY_DELIVERY.md): consulta por chave, apenas do autor no contexto actual, sem executar operações. Integrada nas páginas de origens e diário;29 verificações dirigidas em base QA nova. Revisão visual e implantação permanecem pendentes.
[Correcção industrial1800→1820 implementada em QA](docs/GENERAL_LEDGER_INDUSTRIAL_CORRECTION_DELIVERY.md): nova demo **http://127.0.0.1:8059/qa/cost-demo**, par atómico revisto distintamente, residual300 separado, diário/razão/fecho. Conjunto11 lançamentos/23 linhas, bruto8725 por lado. Demos anteriores intactas; sem reabertura, stock/salários ou implantação presumida.
[Relatório financeiro: captura histórica validada reutilizada](docs/SGF_PAYABLE_REPORT_CAPTURE_DELIVERY.md). Ensaio em cópia QA:22,0→12,9s para10.000 posições, consultas2313 e heap34MiB iguais; totais/hash preservados. Validação do recibo e histórico original mantida, comandos usam fontes actuais. O gargalo persiste; sem capacidade de implantação validada.
[Lote industrial1800 → Contabilidade implementado em QA](docs/GENERAL_LEDGER_INDUSTRIAL_DELIVERY.md): demo nova **http://127.0.0.1:8058/qa/cost-demo**, workflows efectivos, residual300 separado e mesmo diário/razão/fecho. Conjunto com vendas, fornecedor e custo directo:9 lançamentos/19 linhas, bruto5105 por lado. Demos anteriores intactas; sem stock valorizado, salários ou uso real. Revisão visual, carga e implantação pendentes.
[Vendas, fornecedores e custos no mesmo diário QA](docs/GENERAL_LEDGER_COMPOSITION_DELIVERY.md): demonstração nova **http://127.0.0.1:8057/qa/cost-demo**, painel de origens com paginação independente e fecho conjunto. Regressão:8 lançamentos/17 linhas, bruto3305 por lado, cliente400/custo295/fornecedor60. Reutiliza os efeitos autorizados; demos anteriores e decisões iniciais preservadas. Revisão visual, carga sustentada e implantação continuam pendentes.
[Correcção de custo275→295 implementada em QA](docs/GENERAL_LEDGER_DIRECT_COST_CORRECTION_DELIVERY.md): demonstração própria **http://127.0.0.1:8055/qa/cost-demo**, estorno275/substituição295 numa transacção, revisão distinta, diário/balancete/razão e fecho. Original preservado; tipos de custo/fornecedor separados e SQL contra partes órfãs. A8054 mantém o recorte anterior; revisão visual e implantação separadas.
[Oficina → custo directo → Contabilidade implementado em QA](docs/GENERAL_LEDGER_DIRECT_COST_DELIVERY.md): demonstração nova **http://127.0.0.1:8054/qa/cost-demo**, custo seleccionado100+175=275, revisão distinta, um lançamento, relatórios e fecho. Mesmos workflows/writer; sem duplicar origens, processar outbox ou valorizar stock. Correcção de custo já lançado, revisão visual e implantação continuam separadas.
[Balancete e razão por conta integrados](docs/GENERAL_LEDGER_REPORTS_DELIVERY.md): núcleo único em SGF/SGC, abertura/movimentos/fecho por datas, páginas25/100, saldo acumulado entre páginas e evidência da origem. Só consulta com direitos existentes; três consultas de relatório por página do balancete. Provas dirigidas e pacote QA novo, preservando o anterior; revisão visual e implantação separadas.
[Comercial → Recebíveis → Contabilidade implementado em QA](docs/GENERAL_LEDGER_SALES_RECEIVABLE_DELIVERY.md): nova demonstração **http://127.0.0.1:8053/qa/sales-demo**, factura de teste1.000 → recebimentos/afectações400+600 → reversão400 → extracto e fecho QA. Mesmo writer, três linhas no reconhecimento, revisão distinta e concorrência comprovada. Mantém demos anteriores, revisão visual e capacidade de implantação separadas; não activa operações reais.
[Distribuição financeira autónoma verificada](docs/COMMON_FINANCE_BUNDLE_DELIVERY.md): artefacto com hashes fixados, recusa de alterações antes do arranque e nova demonstração SGC **http://127.0.0.1:8052/qa/ledger-demo**. Os núcleos financeiros são carregados do pacote local, sem fonte SGF de runtime ou activação do destino.
[Ciclo contabilístico sintético completo autorizado](docs/GENERAL_LEDGER_COMPLETE_CYCLE_DELIVERY.md): demonstrações novas **SGF8050 / SGC8051**, reconhecimento60 → afectação20/saldo40 → contabilização → reversão/saldo60 → par correctivo → fecho QA. Um núcleo, revisão distinta, recuperação e concorrência comprovadas; sem uso real, reabertura ou activação de Compras.
[Percurso integrado de conferência financeira até ao lançamento](docs/SGF_FINANCIAL_LEDGER_FLOW_DELIVERY.md): demonstração própria em **http://127.0.0.1:8049/qa/ledger-demo**, começando sem obrigação reconhecida. Preparação, reconhecimento independente, proposta/revisão contabilística, aplicação única, extracto e posição ligados pela mesma origem. Código funcional sintético; compra viva, correcções/fecho contabilísticos, revisão visual e implantação continuam separados.
[Ciclo de material Oficina–Stock](docs/WORKSHOP_MATERIAL_CYCLE.md): repartição de entregas entre consumos, devolução independente do excedente não consumido e histórico paginado. Ensaio sintético; sem instalação operacional ou compensação de material consumido.
[Oficina → entrega já abatida](docs/WORKSHOP_DELIVERY_LINK.md): ligação individual de consumo verificado a uma saída existente, com impacto físico zero e confirmação independente. Apenas correspondência integral sintética; repartições e compensações pendentes.
[Oficina → Stock, conferência individual sintética](docs/WORKSHOP_STOCK_DELIVERY.md): escritor de saída comum com Compras, preparação/impacto e confirmação independente, sem abatimento duplicado. Reconciliação de entregas, devoluções, revisão visual e implantação permanecem separadas.
[Preparação do fluxo entre módulos](docs/SGF_MODULE_FLOW_PREPARATION.md): inventário de fontes, responsáveis/evidências por etapa e ligações Compras/Stock/Oficina/Comercial/Financeiro/Contabilidade. Primeiro incremento delimitado: [consulta comum de Stock](docs/STOCK_READ_SCOPE.md). Preparação verificável, sem declarar motores/ligações em falta já implementados ou activar operações reais.
[Primeira ligação funcional de Stock](docs/STOCK_READ_DELIVERY.md): leitor comum, API e interface SGF de artigos/armazéns/existências/movimentos, com isolamento, páginas e invalidação de referência de leitura. Entrega parcial exclusivamente sintética; sem movimentos, segunda composição Compras ou activação em demos/destino. 72 leituras medidas novas, testes funcionais/navegação e build aprovados.
[Consulta Stock nas duas aplicações](docs/STOCK_READ_COMPOSITION_DELIVERY.md): APIs SGF/Compras sobre o mesmo leitor/protocolo e artefacto local verificado, com 12 cenários equivalentes e autoridade nativa em cada host. Segunda composição de consulta demonstrada em bases QA separadas; sem ligação de recepção/consumo, alteração do stock existente, activação de candidatas ou publicação.
[Recepção aceite e movimento único](docs/STOCK_RECEIPT_LINK_DELIVERY.md): workflow nativo delega no writer comum; SGF observa o mesmo movimento num livro QA com role SELECT-only. Origem/hash, rejeições, repetição, falha/recuperação e concorrência comprovadas, com regressão afectada de recepção/lotes. Não entrega ainda comando/interface de recepção SGF ou consumo da oficina; sem activação/publicação.
Fila administrativa de associações: **Opções gerais → Associações de módulos**, com filtros/paginação, prévia de impacto e confirmação individual. [Implementação local, testes e limitações](docs/MODULE_ASSOCIATION_QUEUE_DELIVERY.md). Sem atribuição automática; os cinco pendentes locais e o cliente sintético 8039 permanecem preservados. Revisão visual separada.
[Avaliação inicial sintética de carga da fila](docs/MODULE_ASSOCIATION_LOAD_REVIEW.md): medições e planos de 1 000/5 000/10 000 clientes identificaram consultas repetidas à auditoria no checkpoint 340f3bb. A optimização foi implementada posteriormente, conforme as entregas abaixo; a capacidade de implantação permanece pendente.
[Optimização local posterior da fila](docs/MODULE_ASSOCIATION_OPTIMIZATION_DELIVERY.md): leitura conjunta da página/dependências, respostas e recusas equivalentes, comparação A/B/C nos três volumes. Índices experimentados e desfeitos apenas na base sintética; nenhum índice no destino. Revisão visual e capacidade de implantação permanecem pendentes; os seis registos e a cache bloqueada foram preservados.
[Continuação: documentos com 100 linhas](docs/MODULE_ASSOCIATION_PROJECTION_DELIVERY.md): a fila selecciona apenas metadados/referências; prévia e confirmação conservam a leitura completa. Redução observada de 45,49 para 19,23 MiB no caso sintético mais pesado. Índice de revisão e par comparados separadamente, sem instalação no destino ou validação de capacidade real.
[Concorrência sintética da fila](docs/MODULE_ASSOCIATION_CONCURRENCY_REVIEW.md): 440 leituras com até quatro identidades/processos, estado anterior preservado durante confirmação sem commit e espera de outra confirmação observada. Fixture nova retida só na base de regressão; índice de prova removido, sem alteração dos seis registos ou validação de capacidade de implantação.
[Consolidação de carga, concorrência e HTTP](docs/MODULE_ASSOCIATION_LOAD_CONSOLIDATION.md): 24 combinações de volume/área/página e nove filtros conferidos, com tempos, consultas e memória A/B/C; 13 tentativas antigas limitadas mantidas explícitas. Leitura conjunta implementada; projecção e índices medidos separadamente. Reúne espera/libertação dos bloqueios, resposta 423 e recuperação sem duplicação. Sem medições em falta ou novas execuções nesta consolidação. Índice parcial de revisão apenas proposto como correcção mínima; revisão visual e capacidade de implantação pendentes.
[Resposta HTTP ao limite de espera](docs/MODULE_ASSOCIATION_HTTP_LOCK_DELIVERY.md): prévia/confirmação devolvem 423 com mensagem administrativa quando ocorre 55P03, sem SQL exposto ou repetição automática. Recuperação após rollback/commit verificada só na regressão; três cenários novos e 13 testes afectados aprovados. Prazo operacional, revisão visual e capacidade de implantação continuam separados.
**Obrigações a fornecedores — ensaio:** SGF em http://127.0.0.1:8006 e Compras autónomo em http://127.0.0.1:8005/obrigacoes-fornecedores. [Guião, funções, código e provas](docs/SUPPLIER_PAYABLE_DELIVERY.md). Principal 11 600 MZN, vencimento pendente; sem pagamentos ou uso real. A demonstração orçamental em 8003 permanece independente.
**Percurso orçamental sintético disponível:** http://127.0.0.1:8003 → seleccionar empresa/unidade → **Compras → Controlo orçamental sintético**. [Contas por função, guião, arranque e provas](docs/SGF_BUDGET_WORKSPACE_DELIVERY.md). Interface ligada ao núcleo comum; base de equipa separada da demonstração anterior em 8002. Apenas QA, sem habilitação real ou aceitação visual presumida.
**Compras e núcleo financeiro comum:** [desenho de referência e transição](docs/PURCHASING_COMMON_CORE_PLAN.md). Um módulo, um núcleo financeiro e duas composições comerciais, sem facturação de vendas obrigatória no Compras autónomo. Primeiro incremento delimitado; reestruturação ainda não executada.
**Orientação actual de 29/10/2026:** desenvolvimento com organizações, funções e operações sintéticas; validação da equipa em entregas integradas; pessoas reais e concessões efectivas apenas na implantação. Configurações da Tempo preservadas. Consultar [demonstração integrada, funções e guião](docs/PRODUCT_DEMO.md). Esta decisão prevalece sobre dependências históricas de concessões reais nos parágrafos seguintes.
**Ensaio industrial (`INDUSTRIAL-COST-SIM-v1`):** lote/produto sintéticos com composição exacta, imputação por capacidade explícita, residual separado e variante incompleta. Percurso/provas e propostas pendentes em [INDUSTRIAL_COST_DELIVERY.md](docs/INDUSTRIAL_COST_DELIVERY.md). Exclusivamente `sgf_tempo_test`; `100000` e direitos industriais reais não aplicados. Custeio real e restantes operações reais continuam bloqueados; sem stock ou lançamentos.
**Actualização posterior de custos directos:** `090000` e os quatro direitos de consulta/preparação/validação foram instalados tecnicamente por autorização específica, com tabelas de custo vazias e custeio real bloqueado. Ver a secção de instalação em [WORKSHOP_DIRECT_COST_DELIVERY.md](docs/WORKSHOP_DIRECT_COST_DELIVERY.md); as menções anteriores a essa pendência são históricas.
**Estado posterior em 27/10/2026:** oficinas e recebimentos sintéticos foram aceites; `080000`/quatro concessões de abertura e `070000`/oito concessões foram instaladas tecnicamente por autorizações específicas, sem retirar os bloqueios reais. As indicações de pendência nos parágrafos históricos abaixo foram substituídas pelos relatórios actualizados. O ensaio de custo directo e as suas pendências estão em [WORKSHOP_DIRECT_COST_DELIVERY.md](docs/WORKSHOP_DIRECT_COST_DELIVERY.md); `090000` e quatro concessões de custos não foram aplicadas.
**Oficina de teste (`WORKSHOP-RESOURCE-RECORD-v1`):** ordem, responsável, autorização por versão da tarefa, apontamentos de tempos/materiais e verificação distinta do autor. Só funciona em instância isolada ligada a `sgf_tempo_test`. Abrir a ordem não autoriza executar; ocorrência passada pode ser relatada e reconhecida apenas para auditoria, conservando a marca de fora do âmbito. Comandos, percurso e provas em [WORKSHOP_RESOURCE_DELIVERY.md](docs/WORKSHOP_RESOURCE_DELIVERY.md). Migração `080000` e concessões reais não aplicadas; técnico/verificador reais ainda não indicados. A migração `070000` também permanece pendente: não usar migração geral para aplicar ambas sem autorização específica. Sem stock, custos, facturação ou utilização operacional. Não confundir esta entrega técnica com aceitação do utilizador ou de recebimentos.
**Recebimentos simulados (`SGF-RECEIVABLES-SIM-v1`):** implementação exclusivamente de teste, com obrigação explícita, recebimentos parciais, afectações, conferência simulada e correcções rastreáveis. Percurso, comandos e provas em [SERVICE_RECEIVABLES_DELIVERY.md](docs/SERVICE_RECEIVABLES_DELIVERY.md). Migração `070000` e oito concessões reais permanecem pendentes de confirmação específica; não executar a migração normal para as aplicar sem essa confirmação. A demonstração usa apenas `sgf_tempo_test`, login sintético e porta 8001; a aplicação normal não muda de ligação. Recuperação de resposta perdida usa a mesma chave de comando; não repetir criando outro acontecimento. Sem recebimentos reais, recibo fiscal, novo PDF, banco, lançamento ou fecho. Emissão/configuração real continuam bloqueadas. Entrega técnica ainda sujeita à revisão do utilizador.
Primeiro percurso funcional local, sobre a fundação existente e o roteiro v0.9 de 25 de Outubro de 2026. Laravel modular com React, independente do InvesteMoz. Versões e lockfiles preservados; sem módulos financeiros, integrações externas ou publicação.
**Base aceite:** incremento local de entrada, contexto e permissões aceite e concluído pelo utilizador em 25 de Outubro de 2026, com os limites de [IDENTITY_DELIVERY.md](docs/IDENTITY_DELIVERY.md). Preservar esta base. A autorização posterior de serviços está delimitada abaixo.
**Entrega A aceite em 25 de Outubro de 2026:** serviços em rascunho, no âmbito demonstrado e com os limites de [SERVICES_A_DELIVERY.md](docs/SERVICES_A_DELIVERY.md). B/C, operações financeiras confirmadas e publicação continuam sem autorização. O checkpoint aceite `26b80df` permanece preservado.
## Preparação documental (incremento posterior)
**Pré-visualização no navegador:** em **Rascunhos de facturação**, abrir um rascunho não confirmado e escolher **Pré-visualizar rascunho**. O aviso de ausência de validade fiscal e as pendências são obrigatórios. Mudanças geram aviso; **Actualizar pré-visualização** carrega explicitamente a nova versão. Para registos confirmados, usar **Abrir confirmação interna histórica**, que não reconstrói dados ausentes. A apresentação consulta-se em **Apresentação do rascunho**; Osmane tem configuração especificamente confirmada e aplicada na Tempo Lda; Samira apenas consulta. Sair e voltar a entrar, se necessário, para carregar o novo direito. [Relatório da pré-visualização](docs/DRAFT_INVOICE_PREVIEW_DELIVERY.md). Sem PDF, impressão documental ou emissão fiscal.
Depois de entrar e seleccionar a empresa/unidade autorizadas, abrir **Preparação documental** no menu lateral:
1. **Dados do emitente**: completar NUIT, morada, localidade e país. A denominação é o nome já existente; altera-se no menu Empresa, conforme direitos próprios.
2. **Dados dos clientes**: seleccionar um cliente existente e completar os mesmos campos uma vez. Continua a ser possível criar clientes apenas com nome no menu Clientes.
3. **Instruções de pagamento**: escolher **Novas instruções** ou uma configuração existente. Preparar banco/titular/identificadores/moeda quando aplicáveis e texto. São instruções do emitente para facilitar o pagamento, sem registo de recebimento ou ligação a bancos. Não introduzir credenciais, tokens, PIN ou dados de cartões.
4. **Preparação de prestações** ou **Preparação de facturação**: seleccionar um rascunho já criado nos menus existentes. Preparar moeda, unidades das linhas, data/período, condições, vencimento proposto e modo de preço. Seleccionar instruções configuradas por designação; guardar.
5. Consultar **Completude e validações** e os dados relacionados do emitente/cliente. «Preenchido» não é «validado». Condições/vencimento continuam sujeitos a conferência, sem correcção automática.
Ao criar um novo rascunho de facturação a partir de uma prestação com preparação actual, os dados documentais e selecções são reutilizados. Preparar uma moeda diferente actualiza explicitamente a moeda do rascunho pela operação existente, mantendo valores exactos; escolher «imposto incluído/acrescido» não recalcula impostos nem reinterpreta preços. Se um rascunho for editado depois, rever e guardar novamente a sua preparação. Documentos B1 confirmados permanecem bloqueados.
Osmane tem os direitos documentais especificamente confirmados na Tempo Lda/SEGI; Samira apenas consulta. Para carregar as novas concessões, actualizar o navegador e, se necessário, sair e voltar a entrar. Sem rascunhos, as listas de preparação estarão vazias: este ecrã reutiliza os registos existentes, não cria uma factura.
[Relatório e limites da preparação documental](docs/DOCUMENT_PREPARATION_DELIVERY.md). Não há emissão, numeração fiscal, PDF de factura, recebimentos ou lançamentos. Dados bancários apenas introduzidos pelo utilizador não são apresentados como verificados pelo banco.
## Usar a entrega A e B1
**Incremento posterior B1:** disponível a confirmação interna do rascunho de facturação para quem possua `billing_drafts.confirm_internal`. Abrir o rascunho, escolher **Rever confirmação interna**, conferir versão/contexto e confirmar. Quantidades/preços e referências devem estar completos e actuais; moeda ou regras desconhecidas permanecem pendentes. A fotografia é imutável e o rascunho confirmado deixa de poder ser editado ou eliminado. A referência `INT-B1-…` não é numeração fiscal. Não há emissão, impressão de factura, reconhecimento ou lançamento contabilístico. [Relatório B1](docs/SERVICES_B1_DELIVERY.md). A mantém-se aceite no checkpoint `ca13acb`; B1 foi aceite em 25 de Outubro de 2026 no âmbito demonstrado, sem validade fiscal nem lançamentos contabilísticos. Não avançar para os restantes incrementos nem publicar.
Actualizar o navegador e entrar normalmente. Seleccionar a empresa e a unidade autorizadas. Os novos menus são **Clientes**, **Serviços**, **Prestações em rascunho** e **Rascunhos de facturação**.
1. Criar o cliente (apenas nome obrigatório) e o serviço. São cadastros da empresa, reutilizados entre unidades.
2. Criar uma prestação em rascunho na unidade seleccionada, escolhendo o cliente e as linhas de serviço existentes.
3. Preencher quantidades/preços como texto decimal com ponto, até 16 algarismos inteiros e 8 decimais. Valores vazios ficam pendentes. Não há moeda por omissão.
4. Guardar e usar **Preparar rascunho de facturação**. O servidor reutiliza cliente, linhas, moeda indicada e versão da prestação, sem emitir factura.
5. Consultar pendências e **Histórico e captura durável**. A base aritmética não é um total fiscal ou valor definitivo a pagar.
Uma prestação alterada não reescreve silenciosamente o rascunho de facturação: aparece uma pendência. **Actualizar explicitamente da prestação** cria outra versão com os dados de origem revistos.
**Gerir acessos desta área** permite conceder/revogar apenas acções que o gestor possui no mesmo âmbito. Clientes/serviços têm âmbito de empresa; os dois tipos de rascunho têm âmbito de unidade. Os acessos de identidade continuam no menu anterior **Acessos**.
As novas concessões foram confirmadas especificamente para os registos existentes de Osmane (16 concessões) e Samira (4 de consulta), na Tempo Lda/SEGI. Nenhuma conta foi criada nesta entrega e nenhum dado de demonstração foi colocado em desenvolvimento.
Consultar estado local, sem mostrar segredos: `sgf.ps1 php scripts/a-status.php`. Não repetir `a-access-plan.php --apply` sem nova confirmação específica caso os direitos tenham sido entretanto alterados.
## Abrir e parar
Em `C:\laragon\www\sgf-tempo`:
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\sgf.ps1 start
```
Abrir http://127.0.0.1:8000. Se a porta estiver ocupada, o arranque recusa sem terminar processos. `status` mostra o estado; `stop` pára apenas os processos próprios registados e o cluster exclusivo. Não existe serviço Windows novo nem alteração global da política de execução.
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\sgf.ps1 status
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\sgf.ps1 stop
```
## Primeira conta
**Estado actual:** a conta inicial de Osmane Nala já foi criada e verificada na Tempo Lda. Não repetir o comando de criação abaixo; conserva-se como registo do procedimento. Entrar com o email indicado e a palavra-passe definida localmente.
Sem utilizadores, o ecrã mostra «Falta concluir a primeira conta» e o procedimento local. A existência da aplicação não significa que haja uma conta criada. Não há palavras-passe por omissão nem administrador universal.
A operação inicial de Osmane Nala / Tempo Lda foi pré-visualizada e confirmada na sessão. Para a concluir, o utilizador deve executar no seu terminal local:
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\laragon\data\sgf-tempo\run\complete-first-admin.ps1
```
O procedimento apresenta o âmbito já confirmado nesta sessão e solicita uma nova palavra-passe duas vezes com Read-Host -AsSecureString do PowerShell, mostrando apenas asteriscos. Não é necessário responder yes novamente. Não introduzir palavras-passe no chat, em argumentos ou no motivo. Só depois da confirmação e das duas entradas válidas são criados, atomicamente, o tenant, empresa, utilizador e concessões. Se for interrompido ou falhar, a criação não fica parcialmente aplicada. Não repetir depois de a conta existir.
Concluído o procedimento, actualizar o estado no navegador e entrar com a credencial definida localmente. A conta inicial tem apenas consulta/edição do nome da empresa, criação de unidades e gestão delimitada de acessos na empresa aprovada. Não se criam unidades iniciais: o utilizador pode criá-las com a permissão específica. Ao criá-las, recebe concessões explícitas de consulta e edição apenas para cada nova unidade, conforme decisão aprovada.
## Percurso disponível
1. Entrar por email/palavra-passe; tentativas repetidas são limitadas.
2. Seleccionar uma empresa autorizada e uma unidade com consulta explicitamente concedida.
3. Consultar a área inicial com empresa e unidade visíveis.
4. Consultar/editar nomes segundo as concessões; criar unidades apenas com `unit.create`.
5. Gerir acessos de utilizadores existentes apenas na empresa activa e sem delegar direitos superiores aos próprios.
6. Sair: a sessão anterior é invalidada.
Não existe criação de tenants ou empresas pela interface, auto-registo, opção «todas as unidades», recuperação por email ou fornecedor externo. Consultar [utilização e recuperação](docs/IDENTITY_WORKFLOW.md) para os procedimentos locais de utilizadores e recuperação.
## Testes e ferramentas
O percurso de **Facturas de teste**, navegador e PDF da mesma fotografia, está demonstrado apenas na instância isolada. A migração e as oito concessões iniciais foram especificamente autorizadas e aplicadas em desenvolvimento, com dados anteriores preservados. A aplicação normal continua a recusar emissão/configuração real no servidor; nenhuma série real ou documento foi criado. Actualizar a sessão para consultar o bloqueio em **Facturas de teste**. Ver [entrega técnica, aplicação verificada e limitações](docs/SERVICE_INVOICE_TEST_DELIVERY.md). Não executar fixtures na base normal ou interpretar documentos de teste como facturas fiscais.
O incremento de cálculo condicionado foi aceite; ver [entrega, verificações e limites](docs/CONDITIONAL_CALCULATION_ACCEPTANCE.md). Na empresa/unidade autorizadas, consultar **Perfil fiscal do serviço** e **Rascunhos de facturação → Pré-visualizar rascunho**. A activação é uma operação local especificamente autorizada, sem via no navegador. O cálculo exige decisão temporal aprovada e compatível; quando há pendência, não determina exigibilidade ou período de apuramento. Sem emissão, recebimentos ou lançamentos.
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\sgf.ps1 test
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\sgf.ps1 npm run build
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\sgf.ps1 php scripts/verify-foundation.php
powershell.exe -NoProfile -ExecutionPolicy Bypass -File .\scripts\sgf.ps1 php scripts/identity-status.php
```
Os testes destrutivos usam exclusivamente `sgf_tempo_test`, verificada antes da execução. Não usar fresh, reset ou wipe em desenvolvimento. Migrações futuras aprovadas: `sgf.ps1 migrate`, com proprietário de migrações separado; a aplicação continua a usar `sgf_dev_app` sem administração ou criação de tabelas.
Para Vite, `sgf.ps1 frontend` (porta 5173, estrita). A aplicação continua a ser aberta na porta 8000. As ferramentas usam caminhos explícitos em `C:\laragon\tools\sgf-tempo`; o cluster fica em `C:\laragon\data\sgf-tempo\postgres-17`, porta 55432. Não alterar as versões ou o ambiente do InvesteMoz.
[Relatório do incremento e provas](docs/IDENTITY_DELIVERY.md) · [Registo histórico da preparação inicial](docs/LOCAL_ENVIRONMENT.md)
O primeiro núcleo de cálculo de serviço e a política operacional de truncagem estão documentados em [cálculo de serviço: utilização, provas e limites](docs/SERVICE_CALCULATION_DELIVERY.md). A aplicação normal conserva pendências de aplicabilidade; cálculos de ensaio são exclusivos da instância isolada de testes. Não há activação de perfil fiscal real, emissão, recebimento ou contabilização.
Integração sintética mais recente de armazém: [devolução de excedente, escritor comum e observação SGF](docs/NATIVE_WAREHOUSE_RETURN_DELIVERY.md), com 36 testes distintos/544 asserções. Implementação local desactivada fora da QA; revisão visual e implantação permanecem separadas.
Continuação Oficina → Stock: [retirada e recusa de propostas sem efeito físico](docs/WORKSHOP_STOCK_PROPOSAL_CLOSURE.md), com concorrência e auditoria atómicas. Provas dirigidas: 33 testes distintos/1.181 asserções; sem instalação operacional ou direitos novos.
Continuação Compras → Financeiro: [recibo histórico no adaptador SGF](docs/SGF_PAYABLE_HISTORY_RECEIPT_DELIVERY.md), com 10 cenários/56 asserções e 17 verificações HTTP. Apenas ensaio por fotografia reconciliada; sem fonte viva, cutover operacional, decisão de pendentes ou activação real.
Consulta financeira SGF: [paginação, leitura conjunta, testes e medições antes/depois](docs/SGF_PAYABLE_PAGED_READ_DELIVERY.md). Em 10.000 documentos sintéticos, 250.028 consultas integrais passaram a 67 por página de 25/100, com posições equivalentes. Sem índices no destino ou validação de capacidade de implantação.
O menu **Classificação contabilística**, disponível após actualizar a sessão com os acessos especificamente concedidos, permite preparar e submeter versões PGC-NIRF, validar/recusar sem editar e consultar classificação por data. Categoria e excepções são empresariais; operações e respectivos históricos continuam limitados às unidades autorizadas. As tabelas reais começam vazias, sem contas de movimento ou regras aprovadas por omissão. Consultar [utilização, provas e limites da classificação](docs/CATALOGUE_ACCOUNTING_DELIVERY.md).
## Ensaio isolado de custo directo
Correcção/cancelamento sintético de rascunhos ligados à oficina: [percurso, provas e limites](docs/WORKSHOP_BILLING_CORRECTION_DELIVERY.md). `130000` e cinco concessões apenas propostas; operações reais permanecem bloqueadas.
Ligação sintética oficina → prestação/rascunho rastreável: [âmbito implementado, provas e limites](docs/WORKSHOP_BILLING_DELIVERY.md). Migração `120000` e seis concessões instaladas tecnicamente por autorização específica de 28/10/2026; conversão real continua bloqueada. `110000` e sete direitos do orçamento foram instalados por autorização posterior separada, igualmente sem activação real.
Página inicial e menus agrupados: [alterações, verificações e limites visuais](docs/HOME_NAVIGATION_DELIVERY.md). Os atalhos dependem dos acessos existentes; não apresentam contagens de pendências ou indicadores financeiros simulados.
O ensaio de orçamento versus realizado está descrito em [INDUSTRIAL_BUDGET_DELIVERY.md](docs/INDUSTRIAL_BUDGET_DELIVERY.md), com percurso, estado das provas e propostas separadas. Continua limitado a `sgf_tempo_test`; a instalação normal e os acessos novos não são aplicados por arrasto.
O percurso `WORKSHOP-DIRECT-COST-SIM-v1` e as instruções de prova estão em [WORKSHOP_DIRECT_COST_DELIVERY.md](docs/WORKSHOP_DIRECT_COST_DELIVERY.md). Reutiliza apontamentos verificados sem duplicar consumos; não activa custeio real. Migração `090000` e quatro concessões continuam propostas, não aplicadas.
Continuação financeira nativa: [consulta paginada SGC com origem viva em QA](docs/NATIVE_PAYABLE_PAGED_READ_DELIVERY.md). Leitura conjunta reutiliza o núcleo comum, preserva factura/contexto e mantém comandos actuais. Pacote instalado e activação permanecem separados; revisão visual e capacidade de implantação pendentes.
Continuação financeira: [origem, obrigação e selecção para pagamentos ligadas](docs/SGF_PAYABLE_EVIDENCE_FOCUS_DELIVERY.md). Conferência directa da origem, evidência exacta do reconhecimento e navegação das obrigações além da primeira página. Testes dirigidos e fingerprint anterior preservado; sem pagamentos, concessões ou activação operacional.
Histórico financeiro SGF: [pagamentos, afectações e eventos paginados](docs/SGF_SETTLEMENT_PAGED_READ_DELIVERY.md). Quatro janelas independentes, leitura conjunta e montantes por afectar calculados sobre o histórico integral. Em 1.000 pagamentos sintéticos: 3.038 consultas integrais passaram a 35 na leitura do livro com janelas de 25/100; sem índices novos ou capacidade de implantação presumida.
Consulta financeira SGF: [leitura coerente sem bloqueios de escrita da empresa](docs/SGF_SETTLEMENT_READ_ISOLATION_DELIVERY.md). O leitor paginado terminou durante o bloqueio do escritor; a confirmação continuou a aguardar e a revalidar, sem duplicação. Provas e dados anteriores preservados; sem activação operacional ou validação de implantação.
[Relatório reconciliado de obrigações SGF](docs/SGF_PAYABLE_REPORT_DELIVERY.md): posição completa do filtro, saldos indeterminados separados e evidência por conteúdo. Em 10.000 posições, a leitura específica reduziu 6.607 para 2.313 consultas; o tempo de 12,6 s continua uma limitação, sem capacidade de implantação declarada. [Primeiro lançamento contabilístico sintético proposto](docs/GENERAL_LEDGER_FIRST_SYNTHETIC_SCOPE.md), apenas especificação para autorização.
[Primeiro lançamento contabilístico sintético](docs/GENERAL_LEDGER_DELIVERY.md): obrigação reconhecida de 60 MZN → proposta → revisão distinta → lançamento único em duas contas artificiais. Código, interface, extracto, 74 asserções e 23 verificações HTTP; duas aplicações concorrentes recuperam o mesmo lançamento. Configuração real continua desligada, sem publicação ou checkpoint. Revisão visual e implantação separadas.
Demonstração contabilística isolada para a equipa: http://127.0.0.1:8048/qa/ledger-demo — outra fixture, ainda sem proposta/lançamento, com três funções e cookie próprios. A regressão conserva separadamente o único lançamento comprovado. Ver docs/GENERAL_LEDGER_DELIVERY.md; não equivale a aceitação ou revisão visual.