601 lines
27 KiB
JSON
601 lines
27 KiB
JSON
{
|
||
"version": "SGF-SOLUTION-CLOSURE-v25",
|
||
"target": "existing8085",
|
||
"sgc_required": false,
|
||
"new_demonstrations": false,
|
||
"modules": [
|
||
{
|
||
"id": "commercial",
|
||
"label": "Comercial",
|
||
"features": [
|
||
"Clientes e serviços com associação explícita",
|
||
"Rascunho, revisão e cálculo",
|
||
"Documento emitido de teste e PDF",
|
||
"Continuação para recebível sem duplicação",
|
||
"Orçamentos Comercial/Oficina, revisão e aceitação documentadas e conversão explícita em rascunho",
|
||
"Recibo de afectação efectiva400, crédito nominal100/saldo500 e factura-recibo1000 atómica",
|
||
"PDF/SHA, histórico e anulação técnica com reversão explícita e diário único",
|
||
"Registo unificado autorizado com seis famílias, filtros/SQL25/100 e projecções limitadas à página",
|
||
"Início operacional com percurso, evidências, funções autorizadas e consulta explícita das fontes existentes"
|
||
],
|
||
"required_host_tables": [
|
||
"a_clients",
|
||
"a_services",
|
||
"a_service_drafts",
|
||
"a_billing_drafts",
|
||
"b_internal_confirmations",
|
||
"doc_records",
|
||
"document_preview_models",
|
||
"service_calculation_profiles",
|
||
"sf_proposals",
|
||
"si_invoices",
|
||
"sd_versions",
|
||
"sd_outputs",
|
||
"sd_commands",
|
||
"sd_cancellations"
|
||
],
|
||
"required_source_files": [
|
||
"app/Modules/Services/ServiceWorkflow.php",
|
||
"app/Modules/Services/ServiceInvoicing.php",
|
||
"resources/js/ServicesWorkspace.jsx",
|
||
"resources/js/ServiceInvoiceWorkspace.jsx",
|
||
"app/Modules/Services/ServiceDocuments.php",
|
||
"app/Modules/Services/DocumentPeriod.php",
|
||
"app/Modules/Services/BillingRegister.php",
|
||
"resources/js/BillingRegisterWorkspace.jsx",
|
||
"resources/js/WorkspaceHome.jsx",
|
||
"resources/js/workspace-overview.js"
|
||
],
|
||
"proofs": [
|
||
"docs/proofs/invoice-test-results.json",
|
||
"docs/proofs/sgf-six-module-functional-review-20261110.json",
|
||
"docs/SGF_SERVICE_DOCUMENTS_DELIVERY.md",
|
||
"docs/SGF_BILLING_REGISTER_DELIVERY.md",
|
||
"docs/SGF_OPERATIONAL_INFORMATION_DELIVERY.md"
|
||
],
|
||
"work_remaining": [
|
||
"Revisão visual, aceitação explícita e conformidade real; emissão fiscal real permanece bloqueada",
|
||
"Carga sustentada, armazenamento e capacidade de implantação exigem evidências próprias"
|
||
]
|
||
},
|
||
{
|
||
"id": "purchasing",
|
||
"label": "Compras",
|
||
"features": [
|
||
"Fornecedores e revisão distinta",
|
||
"Requisição até adjudicação e ordem",
|
||
"Recepção, documento e stock único",
|
||
"Factura conferida e obrigação reconhecida",
|
||
"Início operacional com percurso, evidências, funções autorizadas e consulta explícita das fontes existentes"
|
||
],
|
||
"required_host_tables": [
|
||
"users",
|
||
"companies",
|
||
"units",
|
||
"permission_grants"
|
||
],
|
||
"required_source_files": [
|
||
"app/Modules/Purchasing/ReceiptRuntime.php",
|
||
"app/Modules/Purchasing/RequestController.php",
|
||
"app/Modules/Purchasing/InvoiceController.php",
|
||
"app/Modules/Purchasing/ObligationController.php",
|
||
"resources/js/WorkspaceHome.jsx",
|
||
"resources/js/workspace-overview.js"
|
||
],
|
||
"proofs": [
|
||
"docs/proofs/purchasing-completion-final-20261104-r2.json",
|
||
"docs/proofs/sgf-six-module-functional-review-20261110.json",
|
||
"docs/SGF_OPERATIONAL_INFORMATION_DELIVERY.md"
|
||
],
|
||
"work_remaining": [
|
||
"Conferência visual restante e aceitação explícita do conjunto; ver SGF_SIX_MODULE_CLOSURE_20261110.md"
|
||
]
|
||
},
|
||
{
|
||
"id": "stock",
|
||
"label": "Stock",
|
||
"features": [
|
||
"Artigos, armazéns e saldos físicos",
|
||
"Entradas, saídas e origem autorizada",
|
||
"Transferência e conferência de destino",
|
||
"Contagens, ajustamentos e devoluções",
|
||
"Movimentos e relatórios por período",
|
||
"Política QA revista e devolução ao fornecedor por origem exacta; saldo8UN/160MZN no mesmo diário",
|
||
"Inactividade de pares com história conhecida, corte UTC explícito, filtros e SQL25/100 sem inferir ausência de actividade",
|
||
"Início operacional com percurso, evidências, funções autorizadas e consulta explícita das fontes existentes",
|
||
"Cadastro de artigos: preparação/revisão distintas, criação sem saldo, designação revista só dos novos, código/unidade imutáveis, histórico/recibos e catálogo canónico único"
|
||
],
|
||
"required_host_tables": [
|
||
"users",
|
||
"companies",
|
||
"units"
|
||
],
|
||
"required_source_files": [
|
||
"app/Modules/Inventory/StockReadController.php",
|
||
"app/Modules/Inventory/CompositionStockRead.php",
|
||
"app/Modules/Inventory/StockPeriodReport.php",
|
||
"app/Modules/Workshop/WorkshopStock.php",
|
||
"app/Modules/Inventory/StockOperationsController.php",
|
||
"resources/views/stock-operations-workspace.blade.php",
|
||
"public/stock-operations-workspace.mjs",
|
||
"app/Modules/Inventory/StockFinalController.php",
|
||
"resources/views/stock-final-workspace.blade.php",
|
||
"public/sgf-stock-final.mjs",
|
||
"app/Modules/Inventory/StockInactiveReport.php",
|
||
"resources/js/StockInactiveReportWorkspace.jsx",
|
||
"resources/js/WorkspaceHome.jsx",
|
||
"resources/js/workspace-overview.js",
|
||
"app/Modules/Inventory/StockCatalogueController.php",
|
||
"resources/views/stock-catalogue-workspace.blade.php",
|
||
"public/sgf-stock-catalogue.mjs",
|
||
"config/stock_catalogue.php",
|
||
"database/sql/stock_catalogue.sql"
|
||
],
|
||
"proofs": [
|
||
"docs/proofs/stock-period-report-20261103.json",
|
||
"docs/proofs/sgf-stock-operations-20261110.json",
|
||
"docs/proofs/sgf-six-module-functional-review-20261110.json",
|
||
"docs/SGF_STOCK_POLICIES_SUPPLIER_RETURN.md",
|
||
"docs/SGF_STOCK_INACTIVITY_DELIVERY.md",
|
||
"docs/SGF_OPERATIONAL_INFORMATION_DELIVERY.md",
|
||
"docs/SGF_STOCK_CATALOGUE_DELIVERY.md"
|
||
],
|
||
"work_remaining": [
|
||
"Revisão visual dos novos relatórios e aceitação explícita do conjunto; carga sustentada e implantação separadas"
|
||
],
|
||
"required_native_tables": [
|
||
"stock_movements",
|
||
"stock_operations",
|
||
"inventory_lot_allocations",
|
||
"supply_records",
|
||
"sgf_stock_transit_events",
|
||
"sc_catalogue_meta",
|
||
"sc_catalogue_versions",
|
||
"sc_catalogue_commands"
|
||
]
|
||
},
|
||
{
|
||
"id": "workshop",
|
||
"label": "Oficinas",
|
||
"features": [
|
||
"Ordem e autorização",
|
||
"Apontamentos e revisão distinta",
|
||
"Material consumido ligado ao movimento físico",
|
||
"Custo directo/industrial e correcção",
|
||
"Continuação comercial por documento de origem",
|
||
"Agenda sem sobreposição, reagendamento e cancelamento versionados",
|
||
"Cadastro independente e reutilização de equipamento por cliente",
|
||
"Início operacional com percurso, evidências, funções autorizadas e consulta explícita das fontes existentes",
|
||
"Ordens SQL25/100 por cliente/equipamento/responsável/estado, apontamentos actuais e minutos verificados, sem mutex de escrita na leitura",
|
||
"Relatório por período de abertura explícito/dia local, SQL25/100 antes de paginar, apontamentos actuais e CSV da página sem fecho histórico presumido",
|
||
"Equipamento escolhido → ordens exactas SQL25/100 com filtros, identificação actual, CSV da página e regresso ao catálogo"
|
||
],
|
||
"required_host_tables": [
|
||
"wo_orders",
|
||
"wo_entries",
|
||
"dc_calculations",
|
||
"ic_results",
|
||
"wb_proposals"
|
||
],
|
||
"required_source_files": [
|
||
"app/Modules/Workshop/WorkshopStock.php",
|
||
"resources/js/WorkshopWorkspace.jsx",
|
||
"resources/js/DirectCostsWorkspace.jsx",
|
||
"resources/js/IndustrialCostsWorkspace.jsx",
|
||
"resources/js/WorkshopBillingWorkspace.jsx",
|
||
"app/Modules/Workshop/ComposedWorkshopStockBook.php",
|
||
"app/Modules/Workshop/WorkshopBilling.php",
|
||
"resources/js/WorkspaceHome.jsx",
|
||
"resources/js/workspace-overview.js",
|
||
"app/Modules/Workshop/WorkshopOrderRead.php",
|
||
"app/Modules/Workshop/Http/WorkshopOrderReadController.php",
|
||
"resources/js/WorkshopOrderList.jsx",
|
||
"resources/js/workshop-report-view.js",
|
||
"app/Modules/Workshop/WorkshopEquipment.php",
|
||
"resources/js/WorkshopEquipmentWorkspace.jsx"
|
||
],
|
||
"proofs": [
|
||
"docs/proofs/workshop-stock-closure-20261102.json",
|
||
"docs/proofs/sgf-six-module-functional-review-20261110.json",
|
||
"docs/SGF_WORKSHOP_AGENDA_EQUIPMENT.md",
|
||
"docs/SGF_OPERATIONAL_INFORMATION_DELIVERY.md",
|
||
"docs/SGF_WORKSHOP_PERIOD_REPORT_DELIVERY.md",
|
||
"docs/SGF_WORKSHOP_EQUIPMENT_ORDERS_DELIVERY.md"
|
||
],
|
||
"work_remaining": [
|
||
"Conferência visual restante e aceitação explícita do conjunto; ver SGF_SIX_MODULE_CLOSURE_20261110.md"
|
||
]
|
||
},
|
||
{
|
||
"id": "finance",
|
||
"label": "Financeiro",
|
||
"features": [
|
||
"Obrigações a fornecedores",
|
||
"Recebíveis de clientes",
|
||
"Liquidação/afectação e reversão sintéticas",
|
||
"Posição financeira e comprovativos por origem",
|
||
"Caixa QA explícita0+1000-50=950, revisão distinta, contagem e fecho sem reabertura",
|
||
"Extracto paginado, recuperação de confirmação e classificação/despesa no mesmo diário",
|
||
"Extracto artificial QA e correspondências individuais com duas linhas nativas existentes, revisão distinta, conferência final e relatório",
|
||
"Critérios e indicadores QA950/100=9,5 vezes e50/1000=5%, revisão distinta, fontes conciliadas/retrato/fracção/histórico/relatório",
|
||
"Início operacional com percurso, evidências, funções autorizadas e consulta explícita das fontes existentes",
|
||
"Posições actuais de clientes por documento, pesquisa/estado/vencimento, SQL25/100, saldos reconhecidos e CSV da página; referência de vencimento distinta de saldo histórico",
|
||
"Posições de fornecedores por factura/fornecedor e estado documental, SQL25/100, saldos do motor original, CSV da página e abertura exacta do documento; vencimento desconhecido sem atraso presumido",
|
||
"Condições administrativas QA de vencimento: preparação13/revisão14, evidência/fundamento, prévia/revalidação de origem/saldo/versão/pessoa, recusa/correcção, histórico25/100, recibo e recuperação; lista/CSV separam original e condição revista, referência explícita no detalhe",
|
||
"Mapa de antiguidade de fornecedores por referência explícita e condição administrativa revista, faixas0/1–30/31–60/61–90/>90/desconhecido, valores exactos por moeda só da página/CSV, sem alterar saldo ou vencimento original"
|
||
],
|
||
"required_host_tables": [
|
||
"sr_records",
|
||
"sr_effects",
|
||
"cash_events",
|
||
"cash_commands",
|
||
"br_statements",
|
||
"br_events",
|
||
"br_commands",
|
||
"an_criteria",
|
||
"an_results",
|
||
"an_commands"
|
||
],
|
||
"required_source_files": [
|
||
"app/Modules/Services/ServiceReceivables.php",
|
||
"app/Modules/Purchasing/SupplierPayables.php",
|
||
"resources/js/ServiceReceivablesWorkspace.jsx",
|
||
"app/Modules/Purchasing/ComposedFinance.php",
|
||
"app/Modules/Purchasing/ComposedFinanceController.php",
|
||
"app/Modules/Finance/CashWorkspace.php",
|
||
"app/Modules/Finance/Http/CashController.php",
|
||
"app/Modules/Accounting/CashLedgerSource.php",
|
||
"app/Modules/Finance/BankReconciliation.php",
|
||
"app/Modules/Finance/BankLedgerSource.php",
|
||
"app/Modules/Finance/Http/BankReconciliationController.php",
|
||
"public/sgf-bank.mjs",
|
||
"app/Modules/Finance/FinancialIndicators.php",
|
||
"app/Modules/Finance/FinancialIndicatorSource.php",
|
||
"app/Modules/Finance/Http/FinancialIndicatorsController.php",
|
||
"public/sgf-indicators.mjs",
|
||
"resources/js/WorkspaceHome.jsx",
|
||
"resources/js/workspace-overview.js",
|
||
"app/Modules/Services/ReceivablePositionRead.php",
|
||
"app/Modules/Services/Http/ReceivablePositionReadController.php",
|
||
"resources/js/ReceivablePositionsWorkspace.jsx",
|
||
"resources/js/receivable-position-view.js",
|
||
"app/Modules/Purchasing/PayablePositionReadController.php",
|
||
"app/Modules/Purchasing/ComposedFinanceController.php",
|
||
"resources/js/PayablePositionsWorkspace.jsx",
|
||
"resources/js/payable-position-view.js",
|
||
"app/Modules/Purchasing/PayableDueController.php",
|
||
"resources/js/PayableDueWorkspace.jsx",
|
||
"database/sql/payable_due.sql",
|
||
"config/payable_due.php",
|
||
"app/Modules/Purchasing/PayableAge.php"
|
||
],
|
||
"proofs": [
|
||
"docs/proofs/supplier-settlements.json",
|
||
"docs/proofs/sgf-six-module-functional-review-20261110.json",
|
||
"docs/SGF_CASH_DELIVERY.md",
|
||
"docs/SGF_BANK_RECONCILIATION_DELIVERY.md",
|
||
"docs/SGF_FINANCIAL_INDICATORS_DELIVERY.md",
|
||
"docs/SGF_OPERATIONAL_INFORMATION_DELIVERY.md",
|
||
"docs/SGF_RECEIVABLE_POSITIONS_DELIVERY.md",
|
||
"docs/SGF_PAYABLE_POSITIONS_DELIVERY.md",
|
||
"docs/SGF_PAYABLE_DUE_DELIVERY.md",
|
||
"docs/SGF_PAYABLE_AGING_DELIVERY.md"
|
||
],
|
||
"work_remaining": [
|
||
"Conferência visual restante e aceitação explícita do conjunto; ver SGF_SIX_MODULE_CLOSURE_20261110.md",
|
||
"Conferência de extracto QA entregue; reconciliação bancária geral/real permanece fora do recorte"
|
||
],
|
||
"required_native_tables": [
|
||
"pa_obligations",
|
||
"pa_access",
|
||
"ps_payments",
|
||
"pd_due_meta",
|
||
"pd_due_versions",
|
||
"pd_due_commands"
|
||
]
|
||
},
|
||
{
|
||
"id": "accounting",
|
||
"label": "Contabilidade",
|
||
"features": [
|
||
"Plano e classificação",
|
||
"Diário com preparação/revisão distintas",
|
||
"Razão e balancete",
|
||
"Estorno/correcção e conferência de período",
|
||
"Fecho sintético com rastreabilidade de origens",
|
||
"Livro de saídas e mapa interno IVA QA da origem FR seleccionada, revisão distinta, histórico e CSV congelado",
|
||
"Catálogo de fontes/regras versionadas QA, revisão distinta, vigência/conflitos/retirada e cálculo explicável com história preservada",
|
||
"Cálculo QA por1–25linhas sem/com imposto incluído, representação por linha aprovada, exactos/diferenças e mapa interno recuperável",
|
||
"Início operacional com percurso, evidências, funções autorizadas e consulta explícita das fontes existentes",
|
||
"Submenus distintos e balancete/razão por datas explícitas, escolha de conta por linha, páginas25/100, detecção de mudança de livro e CSV da página",
|
||
"Controlo administrativo QA de obrigação/prazo/responsável do mapa interno revisto, preparação13/revisão14, correcção/cancelamento, entrega apenas simulada com SHA verificado, histórico/recibo/SQL25/100/CSV; sem calendário legal ou submissão",
|
||
"Correspondências explícitas revistas15/16 e balanço/resultados internos parciais QA:19contas/nove pendentes, resultado congelado19linhas/SHA, história/recibo/CSV contextual, ligação exacta ao razão; capital e resultado completo não presumidos"
|
||
],
|
||
"required_host_tables": [
|
||
"ca_proposals",
|
||
"ca_resolutions",
|
||
"fx_versions",
|
||
"fx_commands",
|
||
"fr_events",
|
||
"fr_calculations",
|
||
"fr_commands",
|
||
"fo_meta",
|
||
"fo_versions",
|
||
"fo_commands"
|
||
],
|
||
"required_source_files": [
|
||
"app/Modules/Accounting/GeneralLedger.php",
|
||
"app/Modules/Accounting/GeneralLedgerController.php",
|
||
"packages/general-ledger/src/LedgerSchema.php",
|
||
"app/Modules/Accounting/ComposedLedger.php",
|
||
"app/Modules/Accounting/ComposedLedgerController.php",
|
||
"packages/general-ledger/src/StockTransitEvidence.php",
|
||
"app/Modules/Services/FiscalCoverage.php",
|
||
"app/Modules/Services/FiscalAssessment.php",
|
||
"app/Modules/Services/Http/FiscalAssessmentController.php",
|
||
"public/sgf-iva.mjs",
|
||
"app/Modules/Services/FiscalRules.php",
|
||
"app/Modules/Services/FiscalRuleExpression.php",
|
||
"app/Modules/Services/Http/FiscalRulesController.php",
|
||
"public/sgf-fiscal-rules.mjs",
|
||
"app/Modules/Services/FiscalDocumentMath.php",
|
||
"resources/js/WorkspaceHome.jsx",
|
||
"resources/js/workspace-overview.js",
|
||
"resources/js/ComposedAccountingWorkspace.jsx",
|
||
"resources/js/LedgerReportsWorkspace.jsx",
|
||
"resources/js/ledger-report-view.js",
|
||
"app/Modules/Services/FiscalObligations.php",
|
||
"app/Modules/Services/Http/FiscalObligationsController.php",
|
||
"resources/js/FiscalObligationsWorkspace.jsx",
|
||
"resources/js/fiscal-obligations-view.js",
|
||
"database/sql/fiscal_obligations.sql",
|
||
"config/fiscal_obligations.php",
|
||
"app/Modules/Accounting/InternalStatementsController.php",
|
||
"app/Modules/Accounting/InternalStatementTotals.php",
|
||
"resources/js/InternalStatementsWorkspace.jsx",
|
||
"resources/js/internal-statements-view.js",
|
||
"resources/js/statement-download.js",
|
||
"resources/js/FiscalObligationsWorkspace.jsx",
|
||
"database/sql/internal_statements.sql",
|
||
"config/internal_statements.php"
|
||
],
|
||
"proofs": [
|
||
"docs/proofs/purchasing-completion-matrix-final-20261104.json",
|
||
"docs/proofs/sgf-six-module-functional-review-20261110.json",
|
||
"docs/SGF_FISCAL_COVERAGE_DELIVERY.md",
|
||
"docs/SGF_IVA_ASSESSMENT_DELIVERY.md",
|
||
"docs/SGF_FISCAL_RULES_COMMON_DELIVERY.md",
|
||
"docs/SGF_MULTI_LINE_INCLUDED_DELIVERY.md",
|
||
"docs/SGF_OPERATIONAL_INFORMATION_DELIVERY.md",
|
||
"docs/SGF_ACCOUNTING_REPORTS_DELIVERY.md",
|
||
"docs/SGF_FISCAL_OBLIGATIONS_DELIVERY.md",
|
||
"docs/SGF_FINANCIAL_STATEMENTS_DELIVERY.md"
|
||
],
|
||
"work_remaining": [
|
||
"Conferência visual restante e aceitação explícita do conjunto; ver SGF_SIX_MODULE_CLOSURE_20261110.md",
|
||
"Backlog fiscal/financeiro amplo pendente; tabela de cobertura não implementa motores ou modelos"
|
||
],
|
||
"required_native_tables": [
|
||
"gl_accounts",
|
||
"gl_periods",
|
||
"gl_journals",
|
||
"gl_lines",
|
||
"fs_meta",
|
||
"fs_versions",
|
||
"fs_results",
|
||
"fs_result_lines",
|
||
"fs_commands"
|
||
]
|
||
},
|
||
{
|
||
"id": "human_resources",
|
||
"label": "Recursos Humanos",
|
||
"features": [
|
||
"Módulo autónomo com perfis QA próprios separados do Financeiro",
|
||
"Cadastro pseudónimo individual preparado e revisto",
|
||
"Regras artificiais versionadas com vigência e fonte explícitas",
|
||
"Processamento exacto por trabalhador/período com escolha de fontes e revisão distinta",
|
||
"Correcção/cancelamento versionados, prévia, histórico, recibos e recuperação",
|
||
"Mapa individual revisto conservado com SHA e exportação autenticada; filtros SQL25/100"
|
||
],
|
||
"required_host_tables": [
|
||
"rm_meta",
|
||
"rm_versions",
|
||
"rm_commands",
|
||
"hr_qa_profiles"
|
||
],
|
||
"required_source_files": [
|
||
"app/Modules/HumanResources/Remunerations.php",
|
||
"app/Modules/HumanResources/Http/RemunerationsController.php",
|
||
"app/Shared/Installation/HumanResourcesProfiles.php",
|
||
"resources/js/RemunerationsWorkspace.jsx",
|
||
"resources/js/statement-download.js"
|
||
],
|
||
"proofs": [
|
||
"docs/SGF_HUMAN_RESOURCES_DELIVERY.md",
|
||
"docs/proofs/sgf-human-resources-20261111.json"
|
||
],
|
||
"work_remaining": [
|
||
"Contratos/alterações contratuais, assiduidade, turnos, férias e ausências",
|
||
"Regimes, IRPS/INSS/modelos legais e ligação salarial a dívida/pagamentos/Contabilidade",
|
||
"Revisão visual, carga sustentada e capacidade de implantação"
|
||
]
|
||
}
|
||
],
|
||
"release_gates": [
|
||
{
|
||
"id": "single_installation",
|
||
"criterion": "Os seis módulos operam no mesmo endereço e empresa/unidade, sem mudar de demonstração"
|
||
},
|
||
{
|
||
"id": "functional_modules",
|
||
"criterion": "Cada funcionalidade obrigatória tem ecrã/comando/consulta executável; menus e fontes isoladas não bastam"
|
||
},
|
||
{
|
||
"id": "cross_module_flows",
|
||
"criterion": "Os documentos atravessam as fronteiras mantendo origem, versão, autoridade e efeito único"
|
||
},
|
||
{
|
||
"id": "access_isolation",
|
||
"criterion": "Perfis explícitos e recusas de empresa/unidade/módulo/permissão verificadas"
|
||
},
|
||
{
|
||
"id": "presentation",
|
||
"criterion": "Percurso de apresentação coerente, dados fictícios identificados, linguagem e navegação revistas"
|
||
},
|
||
{
|
||
"id": "operations",
|
||
"criterion": "Arranque e recuperação da instalação entregues e ensaiados, sem depender do SGC"
|
||
},
|
||
{
|
||
"id": "commercial_honesty",
|
||
"criterion": "Documentos de teste não são emissão fiscal; capacidade de implantação exige prova própria"
|
||
},
|
||
{
|
||
"id": "preservation",
|
||
"criterion": "Seis registos, cache, dados aprovados e trabalho alheio preservados"
|
||
}
|
||
],
|
||
"acceptance_proof": "docs/proofs/sgf-single-solution-acceptance.json",
|
||
"scope_policy": "Recorte QA dos seis módulos e requisitos amplos de produto separados explicitamente; nenhum painel de cobertura equivale à implementação dos motores ou modelos pendentes.",
|
||
"revision_note": "A prova funcional anterior conserva o contrato v1 histórico; as lacunas agora discriminadas não são aceitação nem capacidade de implantação.",
|
||
"proposed_scope_extensions": [
|
||
{
|
||
"id": "cash",
|
||
"access": "docs/integration/sgf-cash-access-proposal.json",
|
||
"approval_required_for_new_qa_rights": false,
|
||
"scope": "docs/SGF_CASH_NEXT_SCOPE.md",
|
||
"implemented": true
|
||
},
|
||
{
|
||
"id": "iva_assessment_internal_form",
|
||
"scope": "docs/SGF_IVA_ASSESSMENT_NEXT_SCOPE.md",
|
||
"access": "docs/integration/sgf-iva-assessment-access-proposal.json",
|
||
"approval_required_for_new_qa_rights": false,
|
||
"implemented": true
|
||
},
|
||
{
|
||
"id": "fiscal_rules_common",
|
||
"scope": "docs/SGF_FISCAL_RULES_COMMON_SCOPE.md",
|
||
"access": "docs/integration/sgf-fiscal-rules-access-proposal.json",
|
||
"approval_required_for_new_qa_rights": false,
|
||
"implemented": true
|
||
},
|
||
{
|
||
"id": "bank_reconciliation_qa",
|
||
"scope": "docs/SGF_BANK_RECONCILIATION_SCOPE.md",
|
||
"access": "docs/integration/sgf-bank-reconciliation-access-proposal.json",
|
||
"approval_required_for_new_qa_rights": false,
|
||
"implemented": true
|
||
},
|
||
{
|
||
"id": "financial_indicators_qa",
|
||
"scope": "docs/SGF_FINANCIAL_INDICATORS_SCOPE.md",
|
||
"access": "docs/integration/sgf-financial-indicators-access-proposal.json",
|
||
"approval_required_for_new_qa_rights": false,
|
||
"implemented": true
|
||
},
|
||
{
|
||
"id": "multi_line_included_qa",
|
||
"scope": "docs/SGF_MULTI_LINE_INCLUDED_SCOPE.md",
|
||
"decision": "docs/integration/sgf-multi-line-included-proposal.json",
|
||
"approval_required_for_new_qa_rights": false,
|
||
"implemented": true
|
||
},
|
||
{
|
||
"id": "stock_catalogue",
|
||
"scope": "docs/SGF_STOCK_CATALOGUE_SCOPE.md",
|
||
"access": "docs/integration/sgf-stock-catalogue-access-proposal.json",
|
||
"approval_required_for_new_qa_rights": false,
|
||
"implemented": true
|
||
},
|
||
{
|
||
"id": "supplier_due_qa",
|
||
"scope": "docs/SGF_PAYABLE_DUE_SCOPE.md",
|
||
"access": "docs/integration/sgf-payable-due-access-proposal.json",
|
||
"approval_required_for_new_qa_rights": false,
|
||
"implemented": true
|
||
},
|
||
{
|
||
"id": "fiscal_obligations_qa",
|
||
"scope": "docs/SGF_FISCAL_OBLIGATIONS_SCOPE.md",
|
||
"access": "docs/integration/sgf-fiscal-obligations-access-proposal.json",
|
||
"approval_required_for_new_qa_rights": false,
|
||
"implemented": true
|
||
},
|
||
{
|
||
"id": "internal_statements_qa",
|
||
"scope": "docs/SGF_FINANCIAL_STATEMENTS_SCOPE.md",
|
||
"access": "docs/integration/sgf-statements-access-proposal.json",
|
||
"approval_required_for_new_qa_rights": false,
|
||
"implemented": true
|
||
}
|
||
],
|
||
"full_product_complete": false,
|
||
"product_backlog": [
|
||
{
|
||
"id": "fiscal_books",
|
||
"status": "partial",
|
||
"implemented": false,
|
||
"basis": "docs/SERVICE_INVOICE_CALCULATION_SPEC.md sections10/11",
|
||
"description": "Livro/mapa interno QA de uma origem entregue; IVA geral, dedução/regularizações e restantes tratamentos pendentes"
|
||
},
|
||
{
|
||
"id": "irps_inss",
|
||
"status": "partial",
|
||
"implemented": false,
|
||
"basis": "docs/SERVICE_INVOICE_CALCULATION_SPEC.md sections10/11",
|
||
"description": "Cadastro/regras/processamento interno artificial QA em RH autónomo entregue; operações laborais gerais, cálculo legal IRPS/INSS/modelos e ligação salarial financeira/contabilística pendentes"
|
||
},
|
||
{
|
||
"id": "irpc",
|
||
"status": "pending",
|
||
"implemented": false,
|
||
"basis": "docs/SERVICE_INVOICE_CALCULATION_SPEC.md sections10/11",
|
||
"description": "IRPC operacional: ajustamentos, retenções, apuramento"
|
||
},
|
||
{
|
||
"id": "ispc_ice",
|
||
"status": "pending",
|
||
"implemented": false,
|
||
"basis": "docs/SERVICE_INVOICE_CALCULATION_SPEC.md sections10/11",
|
||
"description": "Motores operacionais ISPC e ICE"
|
||
},
|
||
{
|
||
"id": "official_forms",
|
||
"status": "pending",
|
||
"implemented": false,
|
||
"basis": "docs/SERVICE_INVOICE_CALCULATION_SPEC.md sections10/11",
|
||
"description": "Modelos oficiais com correspondências e reconciliação de campos"
|
||
},
|
||
{
|
||
"id": "fiscal_calendar",
|
||
"status": "partial",
|
||
"implemented": false,
|
||
"basis": "docs/SERVICE_INVOICE_CALCULATION_SPEC.md sections10/11",
|
||
"description": "Controlo administrativo de prazo e entrega simulada de uma origem QA entregue; calendário legal, aplicabilidade geral, prazos por fonte/vigência e submissão continuam pendentes"
|
||
},
|
||
{
|
||
"id": "bank_reconciliation",
|
||
"status": "partial",
|
||
"implemented": false,
|
||
"basis": "docs/SERVICE_INVOICE_CALCULATION_SPEC.md sections10/11",
|
||
"description": "Conferência de duas linhas/extracto artificial QA entregue; integração e reconciliação bancária gerais/reais pendentes"
|
||
},
|
||
{
|
||
"id": "financial_analysis",
|
||
"status": "partial",
|
||
"implemented": false,
|
||
"basis": "docs/SERVICE_INVOICE_CALCULATION_SPEC.md sections10/11",
|
||
"description": "Dois critérios/indicadores QA com fontes conciliadas entregues; rácios gerais, critérios reais e tendências/séries permanecem pendentes"
|
||
}
|
||
],
|
||
"client_delivery_sources": [
|
||
"scripts/receipt-composition-http.php",
|
||
"scripts/sgf-selected-assets.php",
|
||
"resources/js/statement-download.js"
|
||
],
|
||
"client_delivery_proof": "docs/SGF_CLIENT_ASSET_DELIVERY.md",
|
||
"planned_modules": []
|
||
}
|