312 lines
29 KiB
Markdown
312 lines
29 KiB
Markdown
# 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.
|