This commit is contained in:
2026-10-30 08:13:34 +02:00
parent 53ff46b0a2
commit b45c1a816e
31 changed files with 1726 additions and 32 deletions
+3 -2
View File
@@ -8,7 +8,7 @@ export function navigationGroups(can, unit) {
const item=(id,label,permission,scope=null)=>({id,label,visible:can(permission,scope)});
return [
{id:'start',label:'Início',items:[{id:'home',label:'Página inicial',visible:true}]},
{id:'purchasing',label:'Compras',items:[{id:'purchasing_home',label:'Área de Compras',visible:can('company.view')},item('purchasing_budget','Controlo orçamental sintético','purchasing_budget.view',unit),item('supplier_payables','Obrigações a fornecedores — ensaio','supplier_payables.view',unit)]},
{id:'purchasing',label:'Compras',items:[{id:'purchasing_home',label:'Área de Compras',visible:can('company.view')},item('purchasing_budget','Controlo orçamental sintético','purchasing_budget.view',unit),item('supplier_payables','Obrigações a fornecedores — ensaio','supplier_payables.view',unit),item('supplier_payments','Pagamentos e afectações — ensaio','supplier_payables.view',unit)]},
{id:'stock',label:'Stock',status:'Em preparação',items:visibleStockSections(can).map(s=>({id:s.id,label:s.label,informational:true,visible:true}))},
{id:'services',label:'Clientes e serviços',items:[item('clients','Clientes','clients.view'),item('services','Catálogo de serviços','services.view'),item('service_drafts','Prestações em rascunho','service_drafts.view',unit)]},
{id:'billing',label:'Facturação',items:visibleBillingSections(can,unit).map(s=>({id:s.id,label:s.label,visible:true}))},
@@ -28,7 +28,8 @@ export function navigationTopics(groups) {
{id:'purchasing',label:'Compras',groups:['purchasing']},
{id:'stock',label:'Stock',groups:['stock']},
{id:'workshop',label:'Oficinas',groups:['workshop']},
{id:'finance',label:'Financeiro',groups:['receivables','accounting','costs']},
{id:'finance',label:'Financeiro',groups:['receivables','costs']},
{id:'accounting',label:'Contabilidade',groups:['accounting']},
{id:'settings',label:'Configuração',groups:['billing_support','admin']},
];
const known=new Set(layout.flatMap(t=>t.groups));