import React,{useEffect,useState} from 'react'; import {stockSections,visibleStockSections,stockOperations,availableStockReports} from './stock-menu.js'; import StockReadWorkspace from './StockReadWorkspace.jsx'; export default function StockMenuWorkspace({section,context,can,navigate,api}) { const [reportId,setReportId]=useState('balances'); useEffect(()=>{setReportId('balances');},[context.token]); if(!can('company.view'))return

Stock

Seleccione uma empresa autorizada.

; const active=stockSections.find(s=>s.id===section); if(!active)return null; const operation=stockOperations[section]; const canRead=Boolean(api&&context.unit&&can('stock.view',context.unit.id)); // This SGF composition has no stock source, feature configuration or cost permission yet. // Do not substitute workshop rights, company rights or purchasing roles for stock rights. const reports=availableStockReports({},false),report=reports.find(r=>r.id===reportId)??reports[0]; const tabs=; return

STOCK

{active.label}

{context.company.name}{context.unit?` / ${context.unit.name}`:''}

{tabs} {canRead?
Consulta condicionada à fonte sintética autorizada.

Entradas, saídas, transferências e custos continuam indisponíveis. A consulta não altera os saldos de Compras.

:
Menu em preparação — fonte de stock ainda não ligada ao SGF.

Os saldos e movimentos de Compras permanecem na sua aplicação. Aqui não são apresentados como zero, importados ou alterados. Os apontamentos da oficina não são existências de armazém.

} {section==='stock_panel'&&<>

Situação actual

Não há indicadores de stock disponíveis nesta composição. Não é possível determinar produtos abaixo do mínimo, entradas/saídas, valor do stock ou mercadoria em trânsito.

O painel sinalizará situações actuais; os relatórios permitirão investigar os movimentos e o período. Nenhum indicador é calculado a partir de exemplos ilustrativos.

Escolher percurso

{stockSections.filter(s=>s.id!=='stock_panel').map(s=>)}
} {section==='stock_balances'&&canRead&&} {section==='stock_balances'&&!canRead&&<>

Consulta de existências indisponível

Falta a fonte autorizada de produtos, armazéns e saldos desta empresa. Não há uma lista vazia de existências nem um saldo editável.

Físico
Quantidade efectivamente registada no armazém, incluindo reservado e bloqueado.
Reservado
Quantidade comprometida com documentos próprios, quando o controlo estiver activo.
Bloqueado
Quantidade indisponível por condição ou qualidade, sem sobreposição com reservas.
Disponível
Físico menos reservado e bloqueado. Mercadoria em trânsito não está disponível no destino.

Se uma dessas parcelas não estiver sustentada, o disponível fica indeterminado; não se usa zero como substituto.

Pesquisa e rastreabilidade previstas

Produto por código, designação ou código de barras; armazém, categoria e situação de stock. Localização, lote, série e validade só serão apresentados se configurados.

A ficha dará acesso ao movimento e ao documento original. Diferenças físicas serão tratadas por contagem e ajuste autorizado em Inventário, nunca por edição directa do saldo.

} {operation&&<>

{operation.title}

{operation.purpose}

Operação indisponível no SGF. Não há confirmação ou gravação neste ecrã.

Campos do percurso previsto

    {operation.fields.map(f=>
  • {f}
  • )}

Localizações, lotes, séries, validade e câmbio só entram quando o produto e a configuração os exigirem. Não são assumidos por omissão.

Etapas previstas

    {operation.flow.map(step=>
  1. {step}
  2. )}

O que já existe e o que falta

{operation.existing}

{operation.missing}

Prevenção de duplicações: {operation.control}

} {section==='stock_reports'&&<>

Relatórios essenciais

{report.label}

Base temporal: {report.basis}.

Informação prevista: {report.fields}

Consulta indisponível. {report.missing}

Não é possível gerar, imprimir ou exportar um relatório sem a sua fonte. A falta de informação não é apresentada como ausência de movimentos.

Disponibilidade dos restantes relatórios

Valorização exige custos, método configurado e permissão própria. Dados de custos não são carregados por este menu. Relatórios de trânsito, devoluções, lotes, inactividade e diferenças de inventário serão apresentados quando os respectivos percursos estiverem activos.

A consulta e a exportação terão de preservar os mesmos filtros, autorizações, abertura e fecho. Reservas e bloqueios históricos não serão substituídos por valores actuais.

}

Regras comuns do percurso

Um rascunho não altera stock. A confirmação revalida permissões e quantidades, tem um único efeito e conserva actor, data, motivo e origem. Movimentos confirmados não são editados ou apagados; correcções exigem operação própria ligada ao original.

Acesso a este mapa não concede consulta de armazéns, custos ou movimentos. A integração operacional terá autorizações específicas e contexto explícito, preservando as diferenças entre empresa, unidade e armazém.

; }