commit5
tests / ci (push) Canceled after 0s

This commit is contained in:
2026-10-30 10:55:18 +02:00
parent 0235c7609e
commit 48347e2d3a
161 changed files with 11814 additions and 265 deletions
+8 -3
View File
@@ -1,5 +1,5 @@
{
"checked_at": "2026-10-29T18:55:02.410Z",
"checked_at": "2026-10-30T08:46:24.426Z",
"base": "http://127.0.0.1:8005",
"owner_modules": [
"/dashboard",
@@ -21,7 +21,10 @@
"/conflitos",
"/revisao-compras",
"/politica-admissao",
"/politica-recomendacao"
"/politica-recomendacao",
"/relatorios",
"/relatorios/medidas-fornecedores",
"/administracao/parametrizacao"
],
"roles": [
"requester",
@@ -38,5 +41,7 @@
"business_commands": 0,
"real_accounts_changed": false,
"operational_entry_status": "not running",
"visual_review": false
"visual_review": false,
"guest_report_redirect": true,
"intended_report_and_filters_preserved": true
}
+974
View File
@@ -0,0 +1,974 @@
{
"checked_at": "2026-10-30T08:46:13.504Z",
"result": "passed",
"entries": 107,
"roles": 6,
"configurable_permissions_and_multiple_profiles": true,
"source": "procurementNavigation compared with actual Laravel GET routes",
"scope": "Menu routing, active entry and visibility contract; not a substitute for functional or visual workflow acceptance",
"rows": [
{
"role": "admin",
"group": "Requisições",
"id": "new_request",
"label": "Nova requisição",
"path": "/requisicoes/criar",
"action": "App\\Http\\Controllers\\RequisitionController@create",
"full_page": false
},
{
"role": "admin",
"group": "Requisições",
"id": "my_requests",
"label": "Minhas requisições",
"path": "/requisicoes?view=mine",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "admin",
"group": "Requisições",
"id": "my_drafts",
"label": "Os meus rascunhos",
"path": "/requisicoes?view=mine&status=draft",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "admin",
"group": "Requisições",
"id": "all_requests",
"label": "Todas as autorizadas",
"path": "/requisicoes?view=all",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "admin",
"group": "Requisições",
"id": "planning",
"label": "Planeamento",
"path": "/planeamento",
"action": "App\\Http\\Controllers\\PurchasePlanningController@index",
"full_page": false
},
{
"role": "admin",
"group": "Aprovações",
"id": "pending_approvals",
"label": "Pendentes para mim",
"path": "/requisicoes?view=approvals",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "admin",
"group": "Aprovações",
"id": "decisions",
"label": "Minhas decisões",
"path": "/requisicoes?view=decided",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "admin",
"group": "Consultas e adjudicações",
"id": "quotations",
"label": "Cotações e comparação",
"path": "/cotacoes",
"action": "App\\Http\\Controllers\\QuotationController@index",
"full_page": false
},
{
"role": "admin",
"group": "Consultas e adjudicações",
"id": "orders",
"label": "Adjudicações e ordens",
"path": "/ordens",
"action": "App\\Http\\Controllers\\PurchaseController@index",
"full_page": false
},
{
"role": "admin",
"group": "Consultas e adjudicações",
"id": "purchase_review",
"label": "Revisão e cancelamento",
"path": "/revisao-compras",
"action": "App\\Http\\Controllers\\PurchaseControlController@index",
"full_page": false
},
{
"role": "admin",
"group": "Fornecedores",
"id": "suppliers",
"label": "Cadastro e documentos",
"path": "/fornecedores",
"action": "App\\Http\\Controllers\\SupplierController@index",
"full_page": false
},
{
"role": "admin",
"group": "Fornecedores",
"id": "supplier_evaluations",
"label": "Avaliação de fornecedores",
"path": "/fornecedores/avaliacoes",
"action": "App\\Http\\Controllers\\SupplierEvaluationController@index",
"full_page": false
},
{
"role": "admin",
"group": "Recepções e armazém",
"id": "receipts",
"label": "Recepções e divergências",
"path": "/recepcoes",
"action": "App\\Http\\Controllers\\GoodsReceiptController@index",
"full_page": false
},
{
"role": "admin",
"group": "Recepções e armazém",
"id": "stock",
"label": "Artigos e stock",
"path": "/stock",
"action": "App\\Http\\Controllers\\StockController@index",
"full_page": false
},
{
"role": "admin",
"group": "Recepções e armazém",
"id": "stock_operations",
"label": "Saídas e inventários",
"path": "/stock/operacoes",
"action": "App\\Http\\Controllers\\StockOperationController@index",
"full_page": false
},
{
"role": "admin",
"group": "Recepções e armazém",
"id": "equipment",
"label": "Equipamentos e peças",
"path": "/equipamentos",
"action": "App\\Http\\Controllers\\EquipmentController@index",
"full_page": false
},
{
"role": "admin",
"group": "Finanças",
"id": "invoices",
"label": "Facturas e conferência",
"path": "/facturas",
"action": "App\\Http\\Controllers\\InvoiceController@index",
"full_page": false
},
{
"role": "admin",
"group": "Finanças",
"id": "payments",
"label": "Pagamentos externos",
"path": "/pagamentos",
"action": "App\\Http\\Controllers\\ExternalPaymentController@index",
"full_page": false
},
{
"role": "admin",
"group": "Finanças",
"id": "budgets",
"label": "Orçamentos e reforços",
"path": "/orcamentos",
"action": "App\\Http\\Controllers\\BudgetController@index",
"full_page": false
},
{
"role": "admin",
"group": "Finanças",
"id": "investment",
"label": "Regras de investimento",
"path": "/regras-investimento",
"action": "App\\Http\\Controllers\\InvestmentPolicyController@index",
"full_page": false
},
{
"role": "admin",
"group": "Administração e controlo",
"id": "company",
"label": "Empresa, equipa e centros",
"path": "/empresa",
"action": "App\\Http\\Controllers\\CompanyController@index",
"full_page": false
},
{
"role": "admin",
"group": "Administração e controlo",
"id": "organization_parameters",
"label": "Parametrização da aplicação",
"path": "/administracao/parametrizacao",
"action": "App\\Http\\Controllers\\OrganizationConfigurationController@index",
"full_page": false
},
{
"role": "admin",
"group": "Administração e controlo",
"id": "admission_policy",
"label": "Política de admissão",
"path": "/politica-admissao",
"action": "App\\Http\\Controllers\\FormalAdmissionController@policy",
"full_page": false
},
{
"role": "admin",
"group": "Administração e controlo",
"id": "recommendation_policy",
"label": "Política de recomendação",
"path": "/politica-recomendacao",
"action": "App\\Http\\Controllers\\FormalRecommendationController@policy",
"full_page": false
},
{
"role": "admin",
"group": "Administração e controlo",
"id": "conflicts",
"label": "Conflitos de interesses",
"path": "/conflitos",
"action": "App\\Http\\Controllers\\ConflictDeclarationController@index",
"full_page": false
},
{
"role": "admin",
"group": "Relatórios",
"id": "procurement_reports",
"label": "Relatórios de compras",
"path": "/relatorios",
"action": "App\\Http\\Controllers\\ProcurementReportController@index",
"full_page": false
},
{
"role": "admin",
"group": "Relatórios",
"id": "supplier_improvement_reports",
"label": "Medidas de melhoria",
"path": "/relatorios/medidas-fornecedores",
"action": "App\\Http\\Controllers\\SupplierImprovementReportController@index",
"full_page": false
},
{
"role": "admin",
"group": "Finanças",
"id": "payables",
"label": "Obrigações a fornecedores",
"path": "/obrigacoes-fornecedores",
"action": "App\\Http\\Controllers\\SupplierPayablesController@page",
"full_page": true
},
{
"role": "procurement",
"group": "Requisições",
"id": "new_request",
"label": "Nova requisição",
"path": "/requisicoes/criar",
"action": "App\\Http\\Controllers\\RequisitionController@create",
"full_page": false
},
{
"role": "procurement",
"group": "Requisições",
"id": "my_requests",
"label": "Minhas requisições",
"path": "/requisicoes?view=mine",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "procurement",
"group": "Requisições",
"id": "my_drafts",
"label": "Os meus rascunhos",
"path": "/requisicoes?view=mine&status=draft",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "procurement",
"group": "Requisições",
"id": "all_requests",
"label": "Todas as autorizadas",
"path": "/requisicoes?view=all",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "procurement",
"group": "Requisições",
"id": "planning",
"label": "Planeamento",
"path": "/planeamento",
"action": "App\\Http\\Controllers\\PurchasePlanningController@index",
"full_page": false
},
{
"role": "procurement",
"group": "Aprovações",
"id": "pending_approvals",
"label": "Pendentes para mim",
"path": "/requisicoes?view=approvals",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "procurement",
"group": "Aprovações",
"id": "decisions",
"label": "Minhas decisões",
"path": "/requisicoes?view=decided",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "procurement",
"group": "Consultas e adjudicações",
"id": "quotations",
"label": "Cotações e comparação",
"path": "/cotacoes",
"action": "App\\Http\\Controllers\\QuotationController@index",
"full_page": false
},
{
"role": "procurement",
"group": "Consultas e adjudicações",
"id": "orders",
"label": "Adjudicações e ordens",
"path": "/ordens",
"action": "App\\Http\\Controllers\\PurchaseController@index",
"full_page": false
},
{
"role": "procurement",
"group": "Consultas e adjudicações",
"id": "purchase_review",
"label": "Revisão e cancelamento",
"path": "/revisao-compras",
"action": "App\\Http\\Controllers\\PurchaseControlController@index",
"full_page": false
},
{
"role": "procurement",
"group": "Fornecedores",
"id": "suppliers",
"label": "Cadastro e documentos",
"path": "/fornecedores",
"action": "App\\Http\\Controllers\\SupplierController@index",
"full_page": false
},
{
"role": "procurement",
"group": "Fornecedores",
"id": "supplier_evaluations",
"label": "Avaliação de fornecedores",
"path": "/fornecedores/avaliacoes",
"action": "App\\Http\\Controllers\\SupplierEvaluationController@index",
"full_page": false
},
{
"role": "procurement",
"group": "Recepções e armazém",
"id": "receipts",
"label": "Recepções e divergências",
"path": "/recepcoes",
"action": "App\\Http\\Controllers\\GoodsReceiptController@index",
"full_page": false
},
{
"role": "procurement",
"group": "Recepções e armazém",
"id": "stock",
"label": "Artigos e stock",
"path": "/stock",
"action": "App\\Http\\Controllers\\StockController@index",
"full_page": false
},
{
"role": "procurement",
"group": "Recepções e armazém",
"id": "stock_operations",
"label": "Saídas e inventários",
"path": "/stock/operacoes",
"action": "App\\Http\\Controllers\\StockOperationController@index",
"full_page": false
},
{
"role": "procurement",
"group": "Recepções e armazém",
"id": "equipment",
"label": "Equipamentos e peças",
"path": "/equipamentos",
"action": "App\\Http\\Controllers\\EquipmentController@index",
"full_page": false
},
{
"role": "procurement",
"group": "Finanças",
"id": "investment",
"label": "Regras de investimento",
"path": "/regras-investimento",
"action": "App\\Http\\Controllers\\InvestmentPolicyController@index",
"full_page": false
},
{
"role": "procurement",
"group": "Administração e controlo",
"id": "conflicts",
"label": "Conflitos de interesses",
"path": "/conflitos",
"action": "App\\Http\\Controllers\\ConflictDeclarationController@index",
"full_page": false
},
{
"role": "procurement",
"group": "Relatórios",
"id": "procurement_reports",
"label": "Relatórios de compras",
"path": "/relatorios",
"action": "App\\Http\\Controllers\\ProcurementReportController@index",
"full_page": false
},
{
"role": "procurement",
"group": "Relatórios",
"id": "supplier_improvement_reports",
"label": "Medidas de melhoria",
"path": "/relatorios/medidas-fornecedores",
"action": "App\\Http\\Controllers\\SupplierImprovementReportController@index",
"full_page": false
},
{
"role": "finance",
"group": "Requisições",
"id": "new_request",
"label": "Nova requisição",
"path": "/requisicoes/criar",
"action": "App\\Http\\Controllers\\RequisitionController@create",
"full_page": false
},
{
"role": "finance",
"group": "Requisições",
"id": "my_requests",
"label": "Minhas requisições",
"path": "/requisicoes?view=mine",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "finance",
"group": "Requisições",
"id": "my_drafts",
"label": "Os meus rascunhos",
"path": "/requisicoes?view=mine&status=draft",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "finance",
"group": "Requisições",
"id": "all_requests",
"label": "Todas as autorizadas",
"path": "/requisicoes?view=all",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "finance",
"group": "Requisições",
"id": "planning",
"label": "Planeamento",
"path": "/planeamento",
"action": "App\\Http\\Controllers\\PurchasePlanningController@index",
"full_page": false
},
{
"role": "finance",
"group": "Aprovações",
"id": "pending_approvals",
"label": "Pendentes para mim",
"path": "/requisicoes?view=approvals",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "finance",
"group": "Aprovações",
"id": "decisions",
"label": "Minhas decisões",
"path": "/requisicoes?view=decided",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "finance",
"group": "Consultas e adjudicações",
"id": "quotations",
"label": "Cotações e comparação",
"path": "/cotacoes",
"action": "App\\Http\\Controllers\\QuotationController@index",
"full_page": false
},
{
"role": "finance",
"group": "Consultas e adjudicações",
"id": "orders",
"label": "Adjudicações e ordens",
"path": "/ordens",
"action": "App\\Http\\Controllers\\PurchaseController@index",
"full_page": false
},
{
"role": "finance",
"group": "Consultas e adjudicações",
"id": "purchase_review",
"label": "Revisão e cancelamento",
"path": "/revisao-compras",
"action": "App\\Http\\Controllers\\PurchaseControlController@index",
"full_page": false
},
{
"role": "finance",
"group": "Fornecedores",
"id": "suppliers",
"label": "Cadastro e documentos",
"path": "/fornecedores",
"action": "App\\Http\\Controllers\\SupplierController@index",
"full_page": false
},
{
"role": "finance",
"group": "Fornecedores",
"id": "supplier_evaluations",
"label": "Avaliação de fornecedores",
"path": "/fornecedores/avaliacoes",
"action": "App\\Http\\Controllers\\SupplierEvaluationController@index",
"full_page": false
},
{
"role": "finance",
"group": "Recepções e armazém",
"id": "receipts",
"label": "Recepções e divergências",
"path": "/recepcoes",
"action": "App\\Http\\Controllers\\GoodsReceiptController@index",
"full_page": false
},
{
"role": "finance",
"group": "Recepções e armazém",
"id": "stock",
"label": "Artigos e stock",
"path": "/stock",
"action": "App\\Http\\Controllers\\StockController@index",
"full_page": false
},
{
"role": "finance",
"group": "Recepções e armazém",
"id": "stock_operations",
"label": "Saídas e inventários",
"path": "/stock/operacoes",
"action": "App\\Http\\Controllers\\StockOperationController@index",
"full_page": false
},
{
"role": "finance",
"group": "Recepções e armazém",
"id": "equipment",
"label": "Equipamentos e peças",
"path": "/equipamentos",
"action": "App\\Http\\Controllers\\EquipmentController@index",
"full_page": false
},
{
"role": "finance",
"group": "Finanças",
"id": "invoices",
"label": "Facturas e conferência",
"path": "/facturas",
"action": "App\\Http\\Controllers\\InvoiceController@index",
"full_page": false
},
{
"role": "finance",
"group": "Finanças",
"id": "payments",
"label": "Pagamentos externos",
"path": "/pagamentos",
"action": "App\\Http\\Controllers\\ExternalPaymentController@index",
"full_page": false
},
{
"role": "finance",
"group": "Finanças",
"id": "budgets",
"label": "Orçamentos e reforços",
"path": "/orcamentos",
"action": "App\\Http\\Controllers\\BudgetController@index",
"full_page": false
},
{
"role": "finance",
"group": "Finanças",
"id": "investment",
"label": "Regras de investimento",
"path": "/regras-investimento",
"action": "App\\Http\\Controllers\\InvestmentPolicyController@index",
"full_page": false
},
{
"role": "finance",
"group": "Administração e controlo",
"id": "conflicts",
"label": "Conflitos de interesses",
"path": "/conflitos",
"action": "App\\Http\\Controllers\\ConflictDeclarationController@index",
"full_page": false
},
{
"role": "finance",
"group": "Relatórios",
"id": "procurement_reports",
"label": "Relatórios de compras",
"path": "/relatorios",
"action": "App\\Http\\Controllers\\ProcurementReportController@index",
"full_page": false
},
{
"role": "finance",
"group": "Relatórios",
"id": "supplier_improvement_reports",
"label": "Medidas de melhoria",
"path": "/relatorios/medidas-fornecedores",
"action": "App\\Http\\Controllers\\SupplierImprovementReportController@index",
"full_page": false
},
{
"role": "finance",
"group": "Finanças",
"id": "payables",
"label": "Obrigações a fornecedores",
"path": "/obrigacoes-fornecedores",
"action": "App\\Http\\Controllers\\SupplierPayablesController@page",
"full_page": true
},
{
"role": "department_head",
"group": "Requisições",
"id": "new_request",
"label": "Nova requisição",
"path": "/requisicoes/criar",
"action": "App\\Http\\Controllers\\RequisitionController@create",
"full_page": false
},
{
"role": "department_head",
"group": "Requisições",
"id": "my_requests",
"label": "Minhas requisições",
"path": "/requisicoes?view=mine",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "department_head",
"group": "Requisições",
"id": "my_drafts",
"label": "Os meus rascunhos",
"path": "/requisicoes?view=mine&status=draft",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "department_head",
"group": "Requisições",
"id": "all_requests",
"label": "Todas as autorizadas",
"path": "/requisicoes?view=all",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "department_head",
"group": "Requisições",
"id": "planning",
"label": "Planeamento",
"path": "/planeamento",
"action": "App\\Http\\Controllers\\PurchasePlanningController@index",
"full_page": false
},
{
"role": "department_head",
"group": "Aprovações",
"id": "pending_approvals",
"label": "Pendentes para mim",
"path": "/requisicoes?view=approvals",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "department_head",
"group": "Aprovações",
"id": "decisions",
"label": "Minhas decisões",
"path": "/requisicoes?view=decided",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "department_head",
"group": "Consultas e adjudicações",
"id": "quotations",
"label": "Cotações e comparação",
"path": "/cotacoes",
"action": "App\\Http\\Controllers\\QuotationController@index",
"full_page": false
},
{
"role": "department_head",
"group": "Consultas e adjudicações",
"id": "orders",
"label": "Adjudicações e ordens",
"path": "/ordens",
"action": "App\\Http\\Controllers\\PurchaseController@index",
"full_page": false
},
{
"role": "department_head",
"group": "Consultas e adjudicações",
"id": "purchase_review",
"label": "Revisão e cancelamento",
"path": "/revisao-compras",
"action": "App\\Http\\Controllers\\PurchaseControlController@index",
"full_page": false
},
{
"role": "department_head",
"group": "Fornecedores",
"id": "suppliers",
"label": "Cadastro e documentos",
"path": "/fornecedores",
"action": "App\\Http\\Controllers\\SupplierController@index",
"full_page": false
},
{
"role": "department_head",
"group": "Fornecedores",
"id": "supplier_evaluations",
"label": "Avaliação de fornecedores",
"path": "/fornecedores/avaliacoes",
"action": "App\\Http\\Controllers\\SupplierEvaluationController@index",
"full_page": false
},
{
"role": "department_head",
"group": "Recepções e armazém",
"id": "receipts",
"label": "Recepções e divergências",
"path": "/recepcoes",
"action": "App\\Http\\Controllers\\GoodsReceiptController@index",
"full_page": false
},
{
"role": "department_head",
"group": "Recepções e armazém",
"id": "equipment",
"label": "Equipamentos e peças",
"path": "/equipamentos",
"action": "App\\Http\\Controllers\\EquipmentController@index",
"full_page": false
},
{
"role": "department_head",
"group": "Administração e controlo",
"id": "conflicts",
"label": "Conflitos de interesses",
"path": "/conflitos",
"action": "App\\Http\\Controllers\\ConflictDeclarationController@index",
"full_page": false
},
{
"role": "department_head",
"group": "Relatórios",
"id": "procurement_reports",
"label": "Relatórios de compras",
"path": "/relatorios",
"action": "App\\Http\\Controllers\\ProcurementReportController@index",
"full_page": false
},
{
"role": "department_head",
"group": "Relatórios",
"id": "supplier_improvement_reports",
"label": "Medidas de melhoria",
"path": "/relatorios/medidas-fornecedores",
"action": "App\\Http\\Controllers\\SupplierImprovementReportController@index",
"full_page": false
},
{
"role": "warehouse",
"group": "Requisições",
"id": "new_request",
"label": "Nova requisição",
"path": "/requisicoes/criar",
"action": "App\\Http\\Controllers\\RequisitionController@create",
"full_page": false
},
{
"role": "warehouse",
"group": "Requisições",
"id": "my_requests",
"label": "Minhas requisições",
"path": "/requisicoes?view=mine",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "warehouse",
"group": "Requisições",
"id": "my_drafts",
"label": "Os meus rascunhos",
"path": "/requisicoes?view=mine&status=draft",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "warehouse",
"group": "Requisições",
"id": "all_requests",
"label": "Todas as autorizadas",
"path": "/requisicoes?view=all",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "warehouse",
"group": "Requisições",
"id": "planning",
"label": "Planeamento",
"path": "/planeamento",
"action": "App\\Http\\Controllers\\PurchasePlanningController@index",
"full_page": false
},
{
"role": "warehouse",
"group": "Consultas e adjudicações",
"id": "purchase_review",
"label": "Revisão e cancelamento",
"path": "/revisao-compras",
"action": "App\\Http\\Controllers\\PurchaseControlController@index",
"full_page": false
},
{
"role": "warehouse",
"group": "Recepções e armazém",
"id": "receipts",
"label": "Recepções e divergências",
"path": "/recepcoes",
"action": "App\\Http\\Controllers\\GoodsReceiptController@index",
"full_page": false
},
{
"role": "warehouse",
"group": "Recepções e armazém",
"id": "stock",
"label": "Artigos e stock",
"path": "/stock",
"action": "App\\Http\\Controllers\\StockController@index",
"full_page": false
},
{
"role": "warehouse",
"group": "Recepções e armazém",
"id": "stock_operations",
"label": "Saídas e inventários",
"path": "/stock/operacoes",
"action": "App\\Http\\Controllers\\StockOperationController@index",
"full_page": false
},
{
"role": "warehouse",
"group": "Recepções e armazém",
"id": "equipment",
"label": "Equipamentos e peças",
"path": "/equipamentos",
"action": "App\\Http\\Controllers\\EquipmentController@index",
"full_page": false
},
{
"role": "warehouse",
"group": "Administração e controlo",
"id": "conflicts",
"label": "Conflitos de interesses",
"path": "/conflitos",
"action": "App\\Http\\Controllers\\ConflictDeclarationController@index",
"full_page": false
},
{
"role": "requester",
"group": "Requisições",
"id": "new_request",
"label": "Nova requisição",
"path": "/requisicoes/criar",
"action": "App\\Http\\Controllers\\RequisitionController@create",
"full_page": false
},
{
"role": "requester",
"group": "Requisições",
"id": "my_requests",
"label": "Minhas requisições",
"path": "/requisicoes?view=mine",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "requester",
"group": "Requisições",
"id": "my_drafts",
"label": "Os meus rascunhos",
"path": "/requisicoes?view=mine&status=draft",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "requester",
"group": "Requisições",
"id": "all_requests",
"label": "Todas as autorizadas",
"path": "/requisicoes?view=all",
"action": "App\\Http\\Controllers\\RequisitionController@index",
"full_page": false
},
{
"role": "requester",
"group": "Requisições",
"id": "planning",
"label": "Planeamento",
"path": "/planeamento",
"action": "App\\Http\\Controllers\\PurchasePlanningController@index",
"full_page": false
},
{
"role": "requester",
"group": "Consultas e adjudicações",
"id": "purchase_review",
"label": "Revisão e cancelamento",
"path": "/revisao-compras",
"action": "App\\Http\\Controllers\\PurchaseControlController@index",
"full_page": false
},
{
"role": "requester",
"group": "Administração e controlo",
"id": "conflicts",
"label": "Conflitos de interesses",
"path": "/conflitos",
"action": "App\\Http\\Controllers\\ConflictDeclarationController@index",
"full_page": false
}
]
}
+25
View File
@@ -0,0 +1,25 @@
{
"checked_at": "2026-10-30T08:46:09.751Z",
"base": "http://127.0.0.1:8005",
"path": "/administracao/parametrizacao",
"roles": [
"admin",
"requester",
"department_head",
"procurement",
"finance",
"warehouse"
],
"owner_access": true,
"other_legacy_profiles_refused": true,
"passwords_not_returned": true,
"configuration_state": {
"active": false,
"version": 1,
"profiles": 0
},
"business_commands": 0,
"accounts_created": 0,
"permissions_changed": false,
"visual_review": false
}
@@ -0,0 +1,63 @@
{
"checked_at": "2026-10-30T08:47:37.236992+00:00",
"full_suite": {
"total": 603,
"passed": 601,
"skipped": 2,
"assertions": 5157,
"log": "storage/logs/organization-delivery-tests.log"
},
"postgresql_configuration": {
"tests": 13,
"passed": 13,
"assertions": 96,
"disposable_database_removed": true,
"log": "storage/logs/organization-pg-tests.log"
},
"phpstan_errors": 0,
"typescript": "passed",
"lint_format_targeted": "passed",
"pint": "passed",
"build": "passed",
"build_log": "storage/logs/organization-build.log",
"runtime_files_verified": 18,
"menu_entries": 107,
"evaluation_catalog_pages": 23,
"installed_only_in_evaluation": true,
"configuration_activated_in_evaluation": false,
"accounts_or_permissions_changed_in_evaluation": false,
"maintenance": {
"named_account": true,
"normal_authentication": true,
"expiry_required": true,
"revocable": true,
"audited": true,
"read_only": true,
"universal_password": false,
"hidden_entry": false
},
"domain_installed": false,
"visual_review": false,
"remaining": [
"permission granularity by operation",
"universal workflow stage/condition editor",
"specific common financial identity and entitlement associations",
"visual and print review"
],
"sources": {
"app/Services/OrganizationAccess.php": "872f06e50d561714ab50d88dc113c0fa054dea9f170a09bb37f8d39d07b78a09",
"app/Services/OrganizationConfiguration.php": "e2d6e725a78dc4f10d931017969d0fcdacaed4dd6b37a4a08a96cb44b09fd1b5",
"app/Http/Controllers/OrganizationConfigurationController.php": "9765cee7b1770f48fde4affcefc518a36576190bbaeac8bce079655353377c72",
"app/Http/Controllers/CompanyController.php": "5a8112e0f1535f90aeb8cf9785259da8d713d1bfcd3ad908aa3eabd161dba8a3",
"app/Http/Middleware/EnsureOrganizationAccess.php": "6782164f18f982fedb91dfb4fb2365895c757d776d7bf1728a91682fa95b8b02",
"app/Models/User.php": "835c119c097e7927136e8c7775ebb5ed677f964e766a213ec3c04e0b7388e740",
"app/Enums/PurchasingRole.php": "91da2d40bf11988fd6324aba8e5068e6be7c92222be31baf83844c134affe1c4",
"database/migrations/2026_10_30_000027_create_organization_access.php": "130d92ba8a093a8f77678e1ce4c1a90125bb996e88ed81633359d224fe77a853",
"database/seeders/DatabaseSeeder.php": "2aaea71ca2eba604abd5723e95cd1a99521c61b6f00b70dfedba246f3dcfae48",
"resources/js/pages/company/parameters.tsx": "c0760c50d100c8b2dfb3d3ad3b2a05fae14eed7900e95461c766a885d07677d1",
"resources/js/pages/company/setup.tsx": "614000ad22692ea3e707a00103227953d95f32fd7d9a7fc031bdbba7a1ccdb48",
"resources/js/lib/procurement-navigation.ts": "d7a42ec76e0166e4783bb496834325ad583b903ebf8c999c2ba5a2307431d56d",
"tests/Feature/OrganizationConfigurationTest.php": "eef7e82a6efc8ebad46cea8752861c01bec53c552874d72120a6e982f0114d73",
"scripts/organization-access-check.mjs": "1ca7cd2bdafa5f62afb26fa0b074d879273cda27c8350b968de54c8f53328bb0"
}
}
+18
View File
@@ -0,0 +1,18 @@
{
"checked_at": "2026-10-30T08:28:25+00:00",
"migration": "2026_10_30_000027_create_organization_access",
"environment": "local evaluation 8005",
"backup_file": "C:\/laragon\/data\/sgf-tempo\/backups\/compras-organization-20261030-082820\/before.dump",
"backup_sha256": "5ae87fd10b3c7cde3021a8d0976f281a41db32d45e6d7f658de7e20e89e854f6",
"backup_bytes": 391786,
"restore_verified": true,
"existing_tables_preserved": 84,
"new_tables": {
"organization_access": 0,
"organization_profiles": 0,
"organization_memberships": 0
},
"accounts_or_grants_changed": false,
"other_migrations_applied": false,
"domain_installed": false
}
+9
View File
@@ -0,0 +1,9 @@
{
"checked_at": "2026-10-30T08:40:09+00:00",
"database": "disposable PostgreSQL",
"application_role_reused_without_privilege_change": true,
"result": "passed",
"test_file": "tests\/Feature\/OrganizationConfigurationTest.php",
"original_evaluation_untouched": true,
"database_removed": true
}
+50
View File
@@ -0,0 +1,50 @@
{
"date": "2026-10-30",
"base_commit": "0235c7609ed52345e91ae1a6b268e45e1eb991af",
"scope": "Menu routing inventory, central filtered procurement reports/CSV and existing individual report extended to receipt/invoice/external-payment records.",
"checks": {
"feature_passed": 14,
"assertions": 223,
"new_cases": 8,
"existing_report_regressions": 6,
"export_fixture_records": 207,
"menu_entries_across_roles": 102,
"roles": 6,
"types": "passed",
"lint": "passed",
"format": "passed",
"pint": "passed",
"phpstan": "passed after correcting the documented date cast type",
"build": "passed",
"new_module_http": 200,
"evaluation_entry_http": 200,
"runtime_manifest_files": 18
},
"source_sha256": {
"app/Http/Controllers/ProcurementReportController.php": "5161063f8f9684595c83300f22e6516e03700917e3b578651dee7254ee5f6a55",
"app/Services/ProcurementReviewReport.php": "1d5a41b59c471ad1db5e7f39eb15ac4b080239968341ccdf9a78ce17a301144c",
"app/Models/GoodsReceipt.php": "ec9b86ca625a8d4d8972ba1d91636bf37475f680f2212faa1e31c44709660a5a",
"routes/web.php": "1014ea42f0544428df49304c16cc55fb0632188ac0ad1940ba6a637b9f228be0",
"resources/js/lib/procurement-navigation.ts": "f250199564cd56e73ff5d5851a19dcbbe41df6da7b5c2cb9024c0965b8e087dc",
"resources/js/pages/reports/procurement.tsx": "a4ec4c51a8b7b8012852f1ad1d36ac931fec25c41a383c10a9449fddc3bd23d5",
"resources/js/pages/purchases/review-report.tsx": "8a5a02d99b5dd5d6f50a41e6e76711b15e578fd09dc039e2b6defc64d20abe04",
"tests/Feature/ProcurementReportsTest.php": "fc88ceef66d419ef72e9231e8273da20f2e1f400ad9610ad5ff85cadeb2259b2",
"scripts/menu-code-check.mjs": "8480ec5b1f3fd26aa7ff7cbc52c304a632b11e0eaa5a4cacadab0e119ceac236"
},
"menu_proof": "docs/proofs/menu-code-contract.json",
"build_log_local": "storage/logs/development-reports-build.log",
"build_log_sha256": "2709a9c383c3110469d6aa08a1efc8b821e24c3b7b8f9a5d3552e403ea9f5ad6",
"preservation": {
"migrations": 0,
"active_business_writes": 0,
"new_accounts_or_grants": 0,
"balance_or_tax_recalculation": false,
"remote_deployment": false
},
"limits": [
"Visual and manual printing not executed.",
"PostgreSQL snapshot clause implemented using the existing report pattern; new tests used isolated SQLite, not a PostgreSQL concurrency proof.",
"Supplier evaluations remain an interface proposal pending its operational implementation.",
"Not a consolidated debt/bank/accounting report; common settlements keep their own history."
]
}
@@ -0,0 +1,15 @@
{
"checked_at": "2026-10-30T07:33:29.638Z",
"base": "http://127.0.0.1:8005",
"report_path": "/fornecedores/avaliacoes/1/relatorio",
"revision_path": "/fornecedores/avaliacoes/2",
"create_submit_return_correct_approve": true,
"self_approval_refused": true,
"stale_write_refused": true,
"approved_edit_refused": true,
"prior_approved_revision_preserved": true,
"history_events": 6,
"synthetic_example_only": true,
"financial_commands": 0,
"visual_review": false
}
@@ -0,0 +1,16 @@
{
"checked_at": "2026-10-30T07:31:39+00:00",
"migration": "2026_10_30_000024_create_supplier_evaluations",
"environment": "local evaluation 8005",
"backup_file": "C:\/laragon\/data\/sgf-tempo\/backups\/compras-evaluations-20261030-073134\/before.dump",
"backup_sha256": "a919349718964be17fafbe4ec407dc7ec5b096c9c1f961db42cb34dfe3ba1123",
"backup_bytes": 364285,
"restore_verified": true,
"existing_tables_preserved": 81,
"new_tables": {
"supplier_evaluations": 0
},
"accounts_or_grants_changed": false,
"other_migrations_applied": false,
"domain_installed": false
}
+8
View File
@@ -0,0 +1,8 @@
{
"checked_at": "2026-10-30T07:34:52+00:00",
"environment": "local evaluation 8005",
"approved_update": "refused by PostgreSQL trigger",
"approved_delete": "refused by PostgreSQL trigger",
"approved_row_unchanged": true,
"probe_transactions_rolled_back": true
}
@@ -0,0 +1,24 @@
{
"checked_at": "2026-10-30T07:51:21.312Z",
"base": "http://127.0.0.1:8005",
"path": "/relatorios/medidas-fornecedores",
"readers": [
"admin",
"procurement",
"finance",
"department_head"
],
"denied": [
"requester",
"warehouse"
],
"total": 1,
"filtered_total": 1,
"filters_and_csv_match": true,
"csv_ignores_page": true,
"closed_not_overdue": true,
"invalid_range_refused": true,
"linked_evaluation_and_report": true,
"business_commands": 0,
"visual_review": false
}
@@ -0,0 +1,29 @@
{
"checked_at": "2026-10-30T07:52:09.806123+00:00",
"targeted_tests": 36,
"assertions": 542,
"new_report_test_cases": 6,
"csv_batch_test_rows": 207,
"phpstan_errors": 0,
"typescript": "passed",
"lint_and_format_targeted": "passed",
"pint_targeted": "passed",
"build": "passed",
"build_log": "storage/logs/supplier-improvement-report-build.log",
"menu_entries": 106,
"roles": 6,
"evaluation_catalog_pages": 22,
"schema_changes": false,
"business_commands": 0,
"domain_installed": false,
"visual_review": false,
"sources": {
"app/Http/Controllers/SupplierImprovementReportController.php": "fdaf0d5484e91481cdd5d676eb6951f8575bcc328961e993acf3290f5d8343cc",
"app/Models/SupplierImprovement.php": "762af10d9c14d70dd03e51ef6d9a80efe36171a9a0121a985ae0c17f06f03d4e",
"resources/js/pages/reports/supplier-improvements.tsx": "070d4c5eaf0a75439751504b21262df1c2f0e60d59e93538ff5d9c5959fe6398",
"resources/js/components/supplier-improvements.tsx": "7add7f51d907943682d3f132dc135f0e41b726dd67ddf2478852cf30ba5a21dd",
"resources/js/lib/procurement-navigation.ts": "a2a26bbd50c288e7cde589c7d8c2aaa3929f5ae20fc8b01c502db031d95085d4",
"tests/Feature/SupplierImprovementReportTest.php": "daf90f8da729a489bdc5116b318514c82a91b89ffbfb2c082b11457661544985",
"scripts/supplier-improvement-report-check.mjs": "60c57d36ebc83928198734573b5072240291504b57f2b88be3167f8f7c40c906"
}
}
@@ -0,0 +1,19 @@
{
"checked_at": "2026-10-30T07:41:16.109Z",
"base": "http://127.0.0.1:8005",
"evaluation_path": "/fornecedores/avaliacoes/1",
"measure_id": 1,
"create_retry_idempotent": true,
"missing_evidence_refused": true,
"self_closure_refused": true,
"planner_closure_refused": true,
"return_replan_correct_submit_close": true,
"stale_plan_refused": true,
"closed_edit_refused": true,
"parent_evaluation_unchanged": true,
"history_events": 7,
"report_includes_closed_measure": true,
"synthetic_example_only": true,
"financial_commands": 0,
"visual_review": false
}
@@ -0,0 +1,16 @@
{
"checked_at": "2026-10-30T07:40:33+00:00",
"migration": "2026_10_30_000025_create_supplier_improvements",
"environment": "local evaluation 8005",
"backup_file": "C:\/laragon\/data\/sgf-tempo\/backups\/compras-improvements-20261030-074028\/before.dump",
"backup_sha256": "57ae564afea50f15700003de3aeb7a8f2a9ecd72c76d545f9687cbe91d051811",
"backup_bytes": 375123,
"restore_verified": true,
"existing_tables_preserved": 82,
"new_tables": {
"supplier_improvements": 0
},
"accounts_or_grants_changed": false,
"other_migrations_applied": false,
"domain_installed": false
}
@@ -0,0 +1,8 @@
{
"checked_at": "2026-10-30T07:41:48+00:00",
"environment": "local evaluation 8005",
"closed_update": "refused by PostgreSQL trigger",
"closed_delete": "refused by PostgreSQL trigger",
"closed_row_unchanged": true,
"probe_transactions_rolled_back": true
}
+20
View File
@@ -0,0 +1,20 @@
{
"checked_at": "2026-10-30T07:57:43.108Z",
"base": "http://127.0.0.1:8005",
"evaluation_path": "/fornecedores/avaliacoes/1",
"response_id": 1,
"idempotent_creation": true,
"incomplete_submit_refused": true,
"stale_save_refused": true,
"self_decision_refused": true,
"return_correction_independent_conclusion": true,
"accepted_follow_up_required": true,
"concluded_edit_refused": true,
"parent_evaluation_unchanged": true,
"history_events": 7,
"individual_report": true,
"synthetic_example_only": true,
"external_messages_sent": 0,
"financial_commands": 0,
"visual_review": false
}
@@ -0,0 +1,16 @@
{
"checked_at": "2026-10-30T07:56:47+00:00",
"migration": "2026_10_30_000026_create_supplier_responses",
"environment": "local evaluation 8005",
"backup_file": "C:\/laragon\/data\/sgf-tempo\/backups\/compras-responses-20261030-075643\/before.dump",
"backup_sha256": "278b88b2f46d9b80df3de878c3964a7f7ab62022bd082ce6a26fdd0e2ccccb54",
"backup_bytes": 383864,
"restore_verified": true,
"existing_tables_preserved": 83,
"new_tables": {
"supplier_responses": 0
},
"accounts_or_grants_changed": false,
"other_migrations_applied": false,
"domain_installed": false
}
+8
View File
@@ -0,0 +1,8 @@
{
"checked_at": "2026-10-30T07:58:09+00:00",
"environment": "local evaluation 8005",
"decided_update": "refused by PostgreSQL trigger",
"decided_delete": "refused by PostgreSQL trigger",
"decided_row_unchanged": true,
"probe_transactions_rolled_back": true
}
+28
View File
@@ -0,0 +1,28 @@
{
"checked_at": "2026-10-30T07:59:03.931961+00:00",
"targeted_tests": 39,
"assertions": 505,
"new_test_cases": 11,
"phpstan_errors": 0,
"typescript": "passed",
"lint_format_pint_targeted": "passed",
"build": "passed",
"build_log": "storage/logs/supplier-responses-build.log",
"menu_entries": 106,
"roles": 6,
"installed_in_local_evaluation": true,
"domain_installed": false,
"external_messages_sent": 0,
"visual_review": false,
"source_hashes": {
"app/Models/SupplierResponse.php": "fc3877f2e787483cb56f31ca877eb2dc4f2d266c2eefa47dab1b1ae3ecf163fc",
"app/Services/SupplierResponseWorkflow.php": "772af0878f55cd9818cddec62aca3850ae4868c13acf86fe7dd003bac1fbb0b5",
"app/Http/Controllers/SupplierResponseController.php": "6960500484974f6ba2be1c63bb1156abde976c9e42837f6d3101a1f8a73092d3",
"app/Http/Controllers/SupplierEvaluationController.php": "2523eb6a858fdb62c494d74a8ce7988e7f29d4e0c51c53d3f0899de02987f17d",
"database/migrations/2026_10_30_000026_create_supplier_responses.php": "d414f637587088e589d886f792d678674337707e8391a0ab0fcf86dc9ebfaaf4",
"resources/js/components/supplier-responses.tsx": "ec0becd110e879f5929a7179c61352e1f31478674e654a41b1f85c64ecd1adf1",
"resources/js/pages/suppliers/evaluation.tsx": "509d27438a2a3b5337572357b9c69a2703201789ea75a487b36dfc301f65c8db",
"tests/Feature/SupplierResponseTest.php": "00faa0131f7335e1d2f18d781aa16cb914bf13acb1090ab902269f737b87c3c6",
"scripts/supplier-response-check.mjs": "31c7b741bbb0becc0426d0437a1d9853616199a86730831dc09b902e66f469c2"
}
}