import React from 'react'; export default function WorkspaceHome({context,can,groups,navigate}) { const unit=context.unit?.id??null; const available=groups.flatMap(g=>g.items); const links=(rules)=>rules.filter(([,permission,scope])=>can(permission,scope)).map(([id,,,label])=>({id,label:label??available.find(i=>i.id===id)?.label})).filter(i=>available.some(a=>a.id===i.id)); const prepare=links([ ['purchasing_budget','purchasing_budget.create',unit],['purchasing_budget','purchasing_budget.record',unit], ['workshop_corrections','workshop_corrections.request',unit], ['workshop_billing','workshop_billing.prepare',unit], ['clients','clients.create',null],['services','services.create',null],['service_drafts','service_drafts.create',unit],['billing_drafts','billing_drafts.create',unit], ['documents','issuer_documents.edit',null],['documents','client_documents.edit',null],['documents','draft_documents.edit',unit], ['catalogue_accounting','catalogue_accounting.propose',null],['service_fiscal','service_fiscal.propose',null], ['workshop','workshop.open',unit],['direct_costs','direct_costs.prepare',unit],['industrial_costs','industrial_costs.prepare',unit],['industrial_budgets','industrial_budgets.prepare',unit], ]); const validate=links([ ['purchasing_budget','purchasing_budget.approve',unit], ['workshop_corrections','workshop_corrections.review',unit], ['workshop_billing','workshop_billing.review',unit], ['catalogue_accounting','catalogue_accounting.approve',null],['service_fiscal','service_fiscal.approve',null],['service_invoices','invoice_series.approve',null], ['service_receivables','service_receivables.confirm',unit],['service_receivables','service_receivables.correction_approve',unit],['workshop','workshop.verify',unit],['direct_costs','direct_costs.validate',unit],['industrial_costs','industrial_costs.validate',unit],['industrial_budgets','industrial_budgets.validate',unit], ]); function actions(items){return
O SEU ESPAÇO DE TRABALHO
Escolha o percurso no contexto seleccionado. Cada acção mantém a sua autorização própria.
Seleccione uma unidade para consultar os percursos de trabalho dessa unidade.
}Abra o percurso para preparar propostas e acompanhar o estado das versões.
{actions(prepare)}Consulte as versões no respectivo percurso antes de tomar uma decisão. Não é permitida a auto-validação.
{actions(validate)}Esta página não agrega nem conta tarefas pendentes. Abra cada percurso para consultar os estados actuais.