Files
compras/docs/orientacoes-continuidade.md
T
nala 413c201d97
tests / ci (push) Canceled after 0s
commit5
2026-10-29 22:03:09 +02:00

312 lines
29 KiB
Markdown
Raw 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.
# Continuidade do desenvolvimento do SGC
**Conferência posterior dos pendentes implementada, 29/10/2026:** confirmação/rejeição ligada ao núcleo comum com decisão imutável, saldo único e escrita original atómica. Provas SQLite e PostgreSQL descartável, incluindo dois pedidos simultâneos e reversão de falha, aprovadas. Ver [entrega](conferencia-pendentes-importados.md). Migração 000023 e opção de conferência preparadas, ainda não aplicadas/activadas em `compras_dev` ou 8005; importação local anterior preservada. Substitui a pendência de desenvolver esta conferência, sem novos pagamentos/transferências.
**Aplicação/activação histórica local concluída, 29/10/2026:** após «continue», 000022 aplicada em `compras_dev`, lote 23, e flag histórica activada, após backup/restauro das 72 tabelas. Registos/restrições preservados, duas tabelas novas vazias e dois triggers verificados. Activação auditada sem novas contas/concessões ou alteração de identidade; zero facturas/pagamentos/obrigações e nenhuma incorporação automática. Ver `historico-migracao-000022.json`, `historico-activacao-local.json` e [relatório](passagem-historico-pagamentos.md). Demo 8005 permanece sem esta migração/activação, confirmada em leitura; restantes demos e público preservados. Substitui apenas as indicações históricas de aplicação/activação pendentes abaixo. Novos pagamentos e decisão de pendentes depois da passagem continuam incremento próprio.
**Verificação final do histórico:** regressão geral com 517 aprovados, 2 ignorados e 4 337 asserções; últimos reforços de identidade cobertos por 11 testes específicos/64 asserções. PHPStan/Pint aprovados. PostgreSQL histórico (concorrência, falha/retoma, imutabilidade) e regressão anterior nas duas composições aprovados; bases descartáveis removidas. 000022/flag histórica permanecem por aplicar/activar na base local. Conta, três concessões anteriores e dados locais preservados. Ver [entrega do histórico](passagem-historico-pagamentos.md).
**Passagem de pagamentos históricos implementada em testes, 29/10/2026:** [âmbito, arquitectura e provas](passagem-historico-pagamentos.md), `PAYABLE-HISTORY-IMPORT-v1`. Principal bruto preservado, confirmados deduzidos uma vez, pendentes/rejeitados conservados sem abatimento; fotografia preparada e validada por pessoa distinta, conflito em alterações e responsabilidade única do saldo. Fonte comum; migração 000022 preparada, flag histórica desligada por omissão, sem aplicação às bases habituais/demos ou novas concessões. Prova PostgreSQL com concorrência, falha/retoma, imutabilidade e originais preservados aprovada (`proofs/payable-history-pg.json`). Novos pagamentos/confirmação de pendentes após passagem, reconciliação e contabilidade continuam separados.
**Ligações conferidas após o novo menu:** 94 entradas em seis perfis e 12 ligações internas do processo, filtro pessoal/estado, factura → obrigação/regresso e histórico conservado. Prova em `proofs/menu-links.json`, repetível por `scripts/menu-links-check.mjs`. Corrigido o destaque do relatório (cotações) e adjudicação (ordens); ambas as páginas já abriam correctamente. Build actualizado aprovado. Inspecção visual nova indisponível por falha da ligação de controlo do navegador; não declarar nova revisão visual. Sem alterações de negócio, migração ou concessões. Retomar depois a transição dos pagamentos históricos.
**Menus renovados a partir do benchmark, 29/10/2026:** [entrega e continuação](menus-benchmark-20261029.md). Layout autenticado real `SgcShell` com menu lateral, pesquisa, secções por tarefa e adaptação móvel; consultas públicas preservadas. Novos conjuntos de requisições pessoais, aprovações elegíveis e decisões efectivas, sem alargar direitos. 44 testes/539 asserções, build, TypeScript, lint, PHPStan e verificação visual desktop/móvel aprovados. Sem novas migrações, concessões ou operações de negócio. Próximo trabalho: retomar transição do histórico de pagamentos factura → obrigação. Formulário completo do benchmark, contratos, catálogo, moedas e relatórios continuam incrementos próprios; não os declarar entregues por aparecerem no benchmark.
**Activação local posterior, 29/10/2026:** `compras_dev` activada com identidade persistente e três direitos auditados para a conta administrativa existente #1/empresa #1, após novo backup/restauro das 72 tabelas. Sem nova conta, mudança de palavra-passe/perfil, facturas/pagamentos/obrigações ou importação automática. Ver `obrigacoes-activacao-local.json` e [relatório](integracao-factura-obrigacao.md). Menu Finanças com ligação condicional pelo servidor; build/TypeScript/PHPStan e 39 testes dirigidos/152 asserções aprovados. Arranque extra de 8015 recusado pela revisão automática; demonstração 8005 preservada e disponível. Substitui a indicação histórica de activação desligada abaixo. Pagamentos históricos e utilização real continuam fora desta activação.
**Aplicação expressamente autorizada e concluída, 29/10/2026:** pedido «aplique» executado apenas para 000021 em `compras_dev`, lote 22. Backup privado/restauro comparado antes da aplicação; preservadas as 65 tabelas anteriores, registos, restrições e `.env`. Sete tabelas novas vazias e seis triggers append-only verificados. Ver `obrigacoes-migracao-000021.json` e [relatório](integracao-factura-obrigacao.md). A activação permanece desligada; nenhuma conta/concessão, incorporação de facturas ou obrigação automática. Demos e servidor público preservados. Este registo substitui apenas a indicação histórica de 000021 por aplicar, abaixo.
**Verificação final deste incremento:** regressão completa com 503 aprovados, 2 ignorados e 4 167 asserções; prova PostgreSQL nos dois hosts aprovada e ambientes descartáveis removidos; PHPStan aprovado. Não aplicar 000021 à instalação habitual por inferência, nem importar facturas com liquidações anteriores sem transição própria. A avaliação local continua disponível e preservada.
**Esquema de aplicação preparado, 29/10/2026:** migração 000021 usa `PayablesSchema` único no pacote comum (QA e aplicação), com histórico append-only; opt-in `COMMON_PAYABLES_ENABLED` desligado por omissão e identidade persistente da instalação. Não aplicada às bases habituais ou demos persistentes; sem novas concessões reais. Facturas com pagamentos preservam percurso/saldo anterior e recusam incorporação automática. Reconhecimento único, saldo, permissões, identidade e imutabilidade: 60 testes dirigidos/215 asserções aprovados. Ver [relatório](integracao-factura-obrigacao.md). A interface continua ensaio; transporte do histórico de pagamentos continua pendente.
**Continuação durante avaliação, 29/10/2026:** [ligação por factura e conferência da integração](integracao-factura-obrigacao.md). Cada factura elegível abre a sua origem/propostas/obrigação/histórico no núcleo comum, com regresso às facturas; filtro por empresa e identidade canónica. Sem reconhecimento ou pagamentos por navegação. Build e 56 testes dirigidos/195 asserções aprovados; prova HTTP da factura existente conserva histórico. A integração na instalação habitual e a transição de facturas com pagamentos continuam delimitadas no relatório, sem aplicação real automática.
**Acesso local de avaliação, 29/10/2026:** pedido do proprietário para retomar Compras e disponibilizar acesso semelhante ao SGF. Entrada http://127.0.0.1:8005/avaliar, proprietário administrativo e seis perfis sintéticos sem palavra-passe, ligação persistente acima da aplicação e directório de 20 páginas. Implementação em `routes/evaluation.php`, apenas no host QA local e base/role verificadas; contas reais/porta 8015 preservadas. Resultado HTTP em `proofs/evaluation-access.json`. Não remove segregação dos processos nem declara aceitação visual ou demonstração completa de todos os percursos. SSH e publicação adiados. Incremento funcional mais recente continua a obrigação comum de fornecedor abaixo; não avançar automaticamente para pagamentos/cancelamento de ordens sem delimitar o respectivo âmbito.
**Implementação sintética de obrigações, 29/10/2026:** [entrega nas duas composições](../../sgf-tempo/docs/SUPPLIER_PAYABLE_DELIVERY.md). Reutiliza `InvoiceWorkflow`/origem conferida; principal comum de 11 600 MZN com vencimento/dias nulos. `outstanding()` delega para o principal canónico apenas na origem QA reconhecida e recusa história/versão incompatível; pagamentos desse cenário ficam bloqueados. Fora do ensaio mantém-se o percurso anterior. Sem migração ou concessão real, novos pagamentos, stock/orçamento adicional ou lançamentos. Preservar avaliação orçamental em paralelo; aceitação/visual/checkpoint continuam separados.
**Regras comuns de produto, 29/10/2026:** referência nas [oito regras SGF/Compras](../../sgf-tempo/docs/SUPPLIER_PAYABLE_SCOPE.md#14-orientação-comum-de-produto-da-tempo--29102026). Documento, obrigação, liquidação, confirmação, reconciliação e contabilidade são factos distintos; núcleo único preserva origem, idempotência e histórico. Vencimento desconhecido gera pendência sem inventar data/apagar principal. Afectações parciais, excessos não afectados, correcções e cobrança configurada orientam a evolução, mas o incremento actual é apenas obrigação a fornecedor. Sem implementação ou alargamento a pagamentos/cobranças nesta actualização documental.
**Especificação completada em 29/10/2026, apenas documental:** [matriz e proposta de obrigações](../../sgf-tempo/docs/SUPPLIER_PAYABLE_SCOPE.md), secções 9–13. Inclui estados/funções, vencimento desconhecido, unicidade por origem independentemente da chave de pedido, transição preservando pagamentos confirmados/pendentes e exemplo 1 160,00 MZN para confirmação. Sem implementação, migração, alteração de pagamentos ou avaliação orçamental. A dívida implícita existente não desaparece por falta de vencimento; nenhum segundo saldo será tratado como autoridade.
**Ligação seguinte, 29/10/2026 — delimitação:** [factura conferida → obrigação a pagar](../../sgf-tempo/docs/SUPPLIER_PAYABLE_SCOPE.md). Reutilizar factura/fornecedor/valores/decisão existentes e preservar o saldo implícito de `ExternalPaymentWorkflow::outstanding`, sem segunda base de dívida. Falta vencimento estruturado e referência explícita da revisão de origem; não inventar versão nativa ou interpretar condições textuais como data. Apenas conferência/desenho nesta passagem; sem novo pagamento, stock, lançamento ou alterações às bases reais. Orçamento entregue e avaliação da equipa continuam independentes.
**Aceitação técnica de 29/10/2026:** a Tempo aceitou a extracção `COMMON-BUDGET-SYNTHETIC-v1` e autorizou checkpoint exclusivamente local nos dois repositórios, sem uso real/push/publicação. Ver [aceitação](../../sgf-tempo/docs/COMMON_BUDGET_ACCEPTANCE.md). Revisão visual Compras pendente; SGF apenas adaptador QA sem interface deste percurso; dois testes MFA ignorados continuam pendentes. Esta aceitação substitui apenas a pendência de encerramento técnico abaixo. Próximo passo: percurso sintético integrado SGF, sem bloquear desenvolvimento pela automação do navegador.
**Execução posterior em 29/10/2026:** `COMMON-BUDGET-SYNTHETIC-v1` implementado, com fonte única no pacote SGF, adaptadores locais e duas bases descartáveis. Ver [relatório técnico](../../sgf-tempo/docs/COMMON_BUDGET_DELIVERY.md). Conservar as alterações e os percursos; sem aceitação presumida, checkpoint de encerramento, migração/concessões/dados reais, publicação ou push. Não avançar para obrigações/pagamentos/contabilidade por arrasto.
## Orientação de produto confirmada — 29/10/2026
Decisão expressa da Tempo: um módulo de Compras, um núcleo financeiro comum e duas composições comerciais — ERP SGF com Compras e Compras autónomo com as capacidades comuns necessárias. O cliente de Compras não precisa de adoptar a facturação de vendas SGF nem de um SGF remoto. Esta orientação substitui a proposta de duas aplicações ligadas por conector remoto; as referências históricas à independência do SGF não impedem o núcleo comum. Preservar todos os percursos, dados, contas, decisões, versões, testes e alterações posteriores; não copiar o motor para manter duas implementações.
O desenho de referência está em [Compras e núcleo financeiro comum](../../sgf-tempo/docs/PURCHASING_COMMON_CORE_PLAN.md), no projecto SGF. Inclui mapa de preservação, capacidades existentes/em falta, responsabilidade única pelos efeitos e transição. Primeiro incremento delimitado: `COMMON-BUDGET-SYNTHETIC-v1`, extracção do controlo orçamental existente e prova nos dois hosts sintéticos, sem dependência de Sales. Nesta passagem só documentação; reestruturação segue esse plano. Pessoas reais/concessões empresariais pertencem à implantação, não são dependências para construir/testar. Não executar seeds ou migrações reais por consequência desta orientação.
Para o estado funcional actual, consultar `docs/validacao-tecnica.md`, que já descreve recomendação e migração 000020; o resumo abaixo até 000017 é anterior. A orientação arquitectural não reabre aceitações nem declara novas provas realizadas.
## Orientação actual após abertura e actas — 28 de Outubro de 2026
Referência consolidada: `07e775c`; consultar primeiro
`docs/validacao-tecnica.md` e o estado actual de `docs/desenvolvimento.md`.
Já estão entregues revisão/cancelamento de adjudicações sem ordem emitida,
visão única do processo, planeamento e sessões opcionais de abertura com actas
imutáveis por versão. Não reiniciar estes módulos. Resultados mais recentes
registados: 443 aprovados, 2 ignorados e 3.431 asserções; migrações até 000017
reportadas aplicadas com recuperação verificada. Esta leitura não é uma nova
execução de testes ou confirmação ao vivo das migrações.
O cancelamento entregue exige política publicada da empresa e decisão
independente; não abrange ordens emitidas ou compromissos. A revisão cria um
novo rascunho ligado e não reutiliza decisões ou reservas. Não desbloquear
cancelamento de ordens, estornos ou devoluções sem regras aprovadas. A visão
única, o plano e as actas não constituem autorização financeira ou certificação
de execução, concurso ou assinatura.
Próximo trabalho: concluir as revisões visuais disponíveis e definir com a
empresa o próximo âmbito pendente antes de o implementar. Permanecem pendentes
cancelamento de ordens emitidas, estornos/notas de crédito/devoluções,
agregação/fraccionamento e funcionalidades de concurso ainda não suportadas.
Não presumir políticas universais a partir dos exemplos locais. Preservar
conta, dados, configuração, porta 8015 e alterações locais; sem seeds reais.
**Todas as orientações abaixo são históricas.** Ordens antigas de iniciar
revisão/cancelamento, planeamento ou abertura ficam ultrapassadas pelo estado
acima. Orçamento, facturas e investimento já têm implementação; a validação
operacional integral e a revisão visual pública/autenticada/impressão continuam
pendentes. Não confundir ausência dessa validação com ausência dos módulos.
## Histórico: próxima etapa após regras de investimento
Regras próprias por empresa, duas aprovações administrativas e integração com
equipamento já implementadas; migração 000014 aplicada, lote 15. Não repetir
as etapas históricas abaixo. Sem valores predefinidos ou regras fictícias na
base real. Cada empresa decide os seus parâmetros e dotações de investimento.
Prosseguir com revisão/cancelamento controlado de processos afectados por
mudanças de base, com política explícita, rastreabilidade e novas aprovações.
Não reescrever ordens emitidas ou reutilizar implicitamente aprovações antigas.
Agregação por projecto/fraccionamento e circuitos acima do tecto não estão
suportados. Revisão visual e validação operacional integral continuam pendentes.
## Próxima etapa após reforços
Reforços por empresa/centro/exercício já estão implementados e migrados
(000013, lote 14). Não repetir as orientações históricas abaixo. Prosseguir
com regras de investimento configuráveis por empresa, com decisões e valores
explícitos, versionamento e aprovação independente. Não presumir um valor ou
interpretar limite ausente como autorização. Até existir regra própria aprovada,
preservar o bloqueio de adjudicação/emissão de equipamento. Revisão visual e
validação operacional integral continuam pendentes. Consultar o relatório actual.
## Próxima etapa após pagamentos externos
Registo e conferência independente de pagamentos externos já implementados,
com migração 000012 aplicada. Não repetir as etapas históricas abaixo.
Prosseguir com reforços orçamentais por empresa/centro/exercício, sem reescrever
a dotação inicial, com proposta e aprovação por pessoas distintas e auditoria.
Valores definidos por cada empresa. Não implementar transferências bancárias
ou desbloquear investimento sem regra própria aprovada. Revisão visual e
validação operacional integral continuam pendentes; consultar o relatório actual.
## Próxima etapa após dados bancários
Versões bancárias por empresa/fornecedor, cifragem e duas validações distintas
de Finanças já estão implementadas; migração 000011 aplicada. Não repetir as
orientações históricas abaixo. Prosseguir com registo de pagamentos externos
sobre facturas validadas, revalidando a versão bancária actual, os dois
validadores, elegibilidade, conflitos, empresa e saldo em transacção.
Não executar transferências bancárias. Sem valores financeiros comuns aos
clientes. Revisão visual e validação operacional integral continuam pendentes.
Consultar `docs/desenvolvimento.md` para resultados e limitações actuais.
## Próximo incremento após facturas
Orçamento e facturas já foram implementados e migrados, incluindo conferência
com recepções e consumo. Não repetir as instruções históricas abaixo.
Prosseguir com dados bancários de fornecedores com dupla validação antes de
pagamentos; reforços e regras de investimento ficam em etapas próprias.
Preservar isolamento por empresa e valores configurados por cada cliente.
Não inventar limites de investimento ou tratar os valores fictícios da
demonstração como configuração. Revisão visual pública, autenticada e de
impressão continua pendente por indisponibilidade do navegador. Consultar
`docs/desenvolvimento.md` para resultados e limitações actuais.
## Estado actual após equipamentos e peças
Recepção, stock, saídas, transferências, contagens, ajustes, equipamentos,
peças e validação técnica já estão implementados. As instruções anteriores
abaixo são históricas e não devem originar implementação duplicada.
O relatório actual está em `docs/desenvolvimento.md`. A revisão visual pública,
autenticada e de impressão continua pendente por indisponibilidade do controlo
do navegador. Antes de avançar para orçamento e facturas, definir as regras
empresariais correspondentes. Preservar as contas e os dados existentes.
## Próximo incremento após adjudicação e ordens
O utilizador já recebeu o relatório de adjudicação e ordens (165 testes
reportados como aprovados). Não repetir essa implementação. As secções
anteriores de adjudicação abaixo ficam como histórico.
Continuar com recepção e stock segundo procurement.docx: recepções parciais e
totais, conferência de qualidade, divergências, quantidades pendentes e movimentos
auditados. Aplicar segregação do emitente, permissões e isolamento por empresa;
impedir duplicação e quantidades superiores às autorizadas. Não inventar
políticas comerciais, tolerâncias ou autorizações de excepção.
Validar concorrência PostgreSQL em ambiente de teste separado, sem recriar a
base real. Actualizar a consulta livre com exemplos fictícios dos novos ecrãs.
Preservar conta, dados, configuração e módulos concluídos. Manter explícita a
ausência de validação orçamental e a restrição a documentos de desenvolvimento.
Actualizar o relatório e o mapa de compatibilidade, que ainda apresenta ordens
como ausentes. Se este incremento já estiver iniciado, continuar sem duplicação.
## Entrada livre para revisão visual
A pedido do utilizador, `/` abre agora `/consulta`, com exemplos fictícios sem
login. Consultar `docs/consulta-livre.md`. Preservar esta entrada e a ligação no
login; manter as rotas e os dados reais protegidos. Esta demonstração é uma
ferramenta de revisão visual e não substitui os módulos operacionais abaixo.
## Próximo incremento após RF-AF-01
O relatório RF-AF-01 está actualizado e a migração 000004 foi confirmada aplicada.
As orientações antigas sobre implementar conflitos ficam como histórico; não
refazer o módulo. Avançar para adjudicação e ordens de compra no mesmo Laravel.
Reutilizar ConflictGuard, auditoria, perfis, isolamento por empresa e cálculos
em centavos. A operação deve revalidar dentro da transacção todos os
intervenientes, conflitos, fornecedor activo/revisão válida, validade das
propostas, três fornecedores distintos e pelo menos dois avaliadores elegíveis
por proposta. Não confiar no indicador de prontidão mostrado anteriormente.
Escolher a proposta de maior pontuação com justificação escrita. Empates devem
permitir escolha fundamentada entre as propostas empatadas. Não inventar
autorização para dispensar cotações ou escolher fora da maior pontuação:
enquanto a política de escalão superior/excepções estiver indefinida, bloquear
esses caminhos e explicar o motivo ao utilizador.
Conferir os escalões com o valor adjudicado e a base com/sem IVA guardada no
processo. Se exigir aprovações adicionais, impedir a emissão até essas etapas
serem decididas por pessoas elegíveis e distintas. Preservar decisões históricas;
não reutilizar implicitamente uma aprovação de um escalão inferior. Respeitar os
requisitos adicionais de equipamento previstos no documento; se ainda não
suportados, bloquear a emissão para esse tipo em vez de autorizar por omissão.
Criar ordem numerada com linhas, quantidades, preços, IVA, fornecedor, moeda,
condições de pagamento, data/local de entrega, justificação e matriz de avaliação
congelados no momento da emissão. Alterar depois a ficha do fornecedor ou a
proposta não pode reescrever a ordem emitida. Impedir emissão duplicada, inclusive
por repetição do pedido; usar restrição de unicidade e transacção. Não permitir
modificar directamente montantes/estado da ordem pelo navegador.
Entregar listagem, detalhe e impressão/PDF com acesso autenticado e por empresa,
incluindo emitente e histórico. Não enviar a ordem por email nem autorizar
compras reais. Se o orçamento ainda não estiver implementado, assinalar essa
limitação; não apresentar uma validação orçamental inexistente.
Testar permissões, isolamento, valores e IVA, fronteiras de escalões, empate,
excepções bloqueadas, conflitos ou suspensão depois da avaliação, validade,
duas avaliações, duplicação/idempotência, snapshot e rollback de auditoria.
Manter revisão visual autenticada e concorrência PostgreSQL como pendentes até
verificação efectiva. Actualizar docs/desenvolvimento.md com resultados,
migração aditiva, preservação de dados e limitações. Começar a implementação,
sem se limitar a confirmar a leitura das orientações.
## Próximo incremento após fornecedores e anexos
A entrega de edição/renovação e documentos privados foi reportada como concluída.
O acompanhamento confirmou o relatório actualizado e a aplicação da migração
000003 no PostgreSQL. A revisão visual autenticada e testes de concorrência real
continuam pendentes e não devem ser apresentados como aprovados.
Avançar agora com declarações de conflito de interesses (RF-AF-01), antes da
adjudicação. Reutilizar utilizadores, fornecedores, empresas e auditoria existentes.
Implementar declaração pessoal por fornecedor e por processo; guardar autor,
âmbito, datas, fundamento e histórico. Não permitir declarar ou retirar conflitos
em nome de outro utilizador sem uma política e autorização explícitas. Alterações
devem manter o histórico, sem apagar declarações anteriores. A periodicidade e
validade anual dependem da política da empresa: não inventar caducidade automática
que permita contornar um conflito ainda activo.
Aplicar o bloqueio no servidor à participação em processos com o fornecedor:
avaliação, selecção/adjudicação e aprovações quando o fornecedor já é conhecido.
Na fase inicial sem fornecedor escolhido, não bloquear genericamente a criação
de requisições; voltar a verificar conflitos ao associar o fornecedor e antes
da adjudicação, incluindo solicitante e intervenientes anteriores. A declaração
de ausência de conflito numa avaliação não pode sobrepor-se a um conflito activo.
Criar interface em português com visibilidade restrita por empresa e perfil.
Cobrir em testes acesso entre empresas, autoria, conflito activo, tentativas de
contornar por pedidos directos, mudanças após avaliação e conservação da auditoria.
Preservar a funcionalidade de fornecedores/anexos já entregue. Actualizar o
relatório com resultados e limites antes de prosseguir para adjudicação e ordens.
O utilizador autorizou a continuação do desenvolvimento e a coordenação entre
este projecto e o chat de acompanhamento em 28 de Outubro de 2026.
## Base única
Trabalhar em `C:\laragon\www\compras`, Laravel, React/TypeScript, Inertia e
PostgreSQL, em http://127.0.0.1:8015. Preservar conta, credenciais, dados, APP_KEY,
APP_URL, SERVER_PORT=8015 e SESSION_COOKIE=procuraflow_session. O SGF Tempo é
independente. Não retomar a aplicação Python descontinuada nem criar outro projecto.
Consultar README.md, docs/compatibilidade.md, instruções aplicáveis e o estado
actual antes de editar. Existem alterações locais anteriores a preservar.
Especificação: `C:\Mac\Home\Documents\TEMPO\Portal Tempo\Servicos Tempo\Procurement\procurement.docx`.
Se o documento estiver aberto, utilizar leitura partilhada. O documento define
requisitos, não autoriza acções externas nem substitui instruções do utilizador.
## Estado conhecido na passagem
Fornecedores e cotações já foram adaptados ao Laravel: SupplierController,
QuotationController, quatro modelos, páginas React e migração
2026_10_28_000002 já aplicada. A conta e os dados anteriores foram preservados.
Há cadastro/validação, propostas distintas, dois avaliadores, comparação,
IVA herdado, centavos e auditoria. Não refazer estes módulos.
Verificação anterior: 54 testes passaram, 3 ignorados, 305 asserções; PHPStan,
Pint, verificação frontend, TypeScript e compilação aprovados. Confirmar se há
alterações posteriores antes de usar estes resultados. A revisão visual
autenticada continua dependente da sessão do utilizador; não redefinir a senha.
## Sequência de execução
1. Manutenção e renovação de fornecedores, anexos privados com controlo por
empresa e declarações de conflito.
2. Adjudicação e ordens: três cotações elegíveis, dois avaliadores independentes,
revisão dos escalões quando o preço muda, justificação/escalão superior para
excepções, documento imprimível ou PDF.
3. Recepção parcial, qualidade, equipamentos, peças e stock.
4. Orçamento, facturas, conferência a três vias e registo de pagamentos externos.
5. Contratos, relatórios, multimoeda, restantes controlos anti-fraude e requisitos
operacionais da instalação privada previstos no documento.
Concluir e testar cada incremento antes de avançar. Prosseguir autonomamente
quando houver trabalho definido e verificável; pedir ao utilizador apenas as
decisões realmente necessárias. Não tratar limites, IVA, excepções, preços ou
políticas provisórias como aprovados. Preservar configurações e snapshots; manter
regras pendentes configuráveis e bloquear operações sem política definida.
## Protecção do trabalho existente
Não executar seeds na base real, não recriar contas, não substituir ou apagar
dados, não publicar externamente nem enviar emails. Não fazer compras ou
pagamentos reais. Migrações aditivas devem ser testadas e preservar os registos.
Migrações destrutivas exigem autorização específica do utilizador.
Manter docs/desenvolvimento.md com incremento actual, requisitos cobertos,
ficheiros alterados, testes e resultados, limitações, decisões pendentes e próximo
passo. O acompanhamento consultará esse relatório, sem editar código em paralelo.
Verificar permissões, isolamento, segregação, cálculos e auditoria, além de
PHPStan, Pint, tipos e compilação. Não anunciar como concluído o que não foi
implementado ou verificado.
## Coordenação
Chat executor: “Criar sistema de compras”, identificador
`01a18181-1611-7a33-9d79-abd981f42bfe`, host local.
Na primeira tentativa de passagem, o envio falhou porque o chat já tinha uma
sessão de escrita activa. Este ficheiro não prova que o executor o tenha lido.
O acompanhamento deve tentar entregar a orientação quando o chat estiver
disponível e registar o resultado, sem interromper nem duplicar o executor.