import React,{useEffect,useState,lazy,Suspense} from 'react';
import {stockSections,visibleStockSections,stockOperations,availableStockReports} from './stock-menu.js';
import StockReadWorkspace from './StockReadWorkspace.jsx';
import StockPeriodReportWorkspace from './StockPeriodReportWorkspace.jsx';
const StockInactiveReportWorkspace=lazy(()=>import('./StockInactiveReportWorkspace.jsx'));
export default function StockMenuWorkspace({section,context,can,navigate,api,openReceiptOrigin}) {
const [reportId,setReportId]=useState('balances');
useEffect(()=>{setReportId('balances');},[context.token]);
if(!can('company.view'))return Seleccione uma empresa autorizada.Stock
STOCK
{context.company.name}{context.unit?` / ${context.unit.name}`:''}
As operações disponíveis dependem do perfil e do percurso indicado abaixo. A consulta não altera os saldos de Compras.
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.
Consultar artigos existentes ou preparar um novo código, designação e unidade para revisão distinta. Aprovar disponibiliza o artigo sem saldo inicial; não cria movimentos ou custos.
Abrir cadastro de artigosConsulte o mesmo livro físico de Compras, os movimentos por período e as operações autorizadas pelo seu perfil.
{context.stock?.final===true&&Abrir trânsito, lotes e inventário}>:Seleccione um perfil com acesso à fonte física para consultar as existências.
}Definir mínimos com revisão distinta e preparar a devolução física pela recepção exacta. Aprovação, saída e valorização são passos individuais; não há compra ou crédito financeiro automático.
Abrir políticas e devoluções ao fornecedorFalta 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.
Se uma dessas parcelas não estiver sustentada, o disponível fica indeterminado; não se usa zero como substituto.
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.
Conferir o saldo actual, preparar o impacto e confirmar uma saída ou transferência pelos controlos originais de armazém. A transferência é imediata e atómica entre os dois armazéns; não representa mercadoria em trânsito.
Abrir operações de StockExpedição e recepção distintas, identificação, retenção, libertação, contagem e ajuste conferido. Cada decisão exige autoridade própria e nova conferência do estado.
Abrir o percurso de StockA ordem e a recepção aceite alimentam este mesmo livro físico. A factura não cria outra entrada.
{can('purchasing_receipts.view',context.unit.id)?:Escolher uma função de recepção de Compras}A declaração mantém a entrega de origem, a quantidade elegível e o comprovativo. Outra função recebe fisicamente a devolução no mesmo armazém, sem apagar a saída ou repetir o consumo.
{can('workshop_stock.view',context.unit.id)?:Escolher a função autorizada de Oficina}Devoluções comerciais de clientes ou a fornecedores exigem os seus documentos próprios; não são inferidas deste retorno de material.
{operation.purpose}
Operação indisponível no SGF. Não há confirmação ou gravação neste ecrã.
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.
{operation.existing}
{operation.missing}
Prevenção de duplicações: {operation.control}
Base temporal: {report.basis}.
Informação prevista: {report.fields}
{context.stock?.final===true&&['transit','expiry','inventory'].includes(reportId)?<>Consulta actual no percurso integrado, com trânsito por receber e quantidades por lote. Os movimentos por período têm filtro próprio.
Consultar trânsito, lotes e inventário>:context.stock?.completion===true&&can('stock.planning.view',context.unit?.id)&&['minimum','returns'].includes(reportId)?<>Consulta dos mínimos revistos, saldo físico e devoluções da origem QA autorizada. A falta de política nos restantes artigos continua indeterminada.
Consultar políticas, mínimos e devoluções>:canRead&&reportId==='balances'?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.
>}Valorização exige custos, método configurado e permissão própria. Dados de custos não são carregados por este menu. As consultas disponíveis estão no selector acima e nos percursos de trânsito, lotes, inventário e políticas autorizados. As restantes definições não substituem uma fonte implementada.
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.
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.