Compare commits

...

2 Commits

Author SHA1 Message Date
Cauê Faleiros
0cae89277f Simplify pending issue labels
All checks were successful
Build and Deploy / build-and-deploy (push) Successful in 2m12s
2026-07-17 09:27:08 -03:00
Cauê Faleiros
e332374b2d Polish supply planning copy 2026-07-17 09:21:58 -03:00
2 changed files with 11 additions and 11 deletions

View File

@@ -27,11 +27,11 @@ type PlanningIssueRow = ProductAnalyticsItem & {
};
const issueLabels: Record<IssueKey, string> = {
review_type: 'Revisar tipo',
missing_cut_family: 'Sem família',
missing_color: 'Sem cor',
missing_size: 'Sem tamanho',
missing_yield: 'Sem rendimento'
review_type: 'Tipo',
missing_cut_family: 'Família',
missing_color: 'Cor',
missing_size: 'Tamanho',
missing_yield: 'Rendimento'
};
const issueHelp: Record<IssueKey, string> = {

View File

@@ -136,10 +136,10 @@ const demandQueueLabels: Record<DemandQueue, string> = {
};
const demandQueueDescriptions: Record<DemandQueue, string> = {
apparel: 'Produtos acabados com venda e cobertura baixa. Ainda é sugestão por unidade, não kg de malha.',
inputs: 'Embalagens, matérias-primas e insumos DTF com cobertura baixa pelo próprio estoque.',
review: 'SKUs vendidos que precisam de correção de tipo, cor, tamanho ou família antes de planejar melhor.',
dead: 'Itens com estoque e pouca ou nenhuma venda no período.',
apparel: 'Produtos acabados com demanda ativa e cobertura abaixo da meta.',
inputs: 'Insumos, embalagens e matérias-primas com necessidade de reposição.',
review: 'SKUs com informações pendentes para qualificar o planejamento.',
dead: 'Itens com saldo disponível e baixa movimentação no período.',
};
const directPurchaseTypes = new Set<ProductTypeKey>(['packaging', 'dtf_input', 'raw_material', 'machine_part', 'finished_accessory']);
@@ -192,7 +192,7 @@ const SuppliesHub = () => (
<div className={pageClassName}>
<Header title="Suprimentos" subtitle="Corte, estoque, malha e compras em um fluxo operacional." />
<div className="grid grid-cols-1 gap-4 lg:grid-cols-2">
<ModuleCard title="Planejamento por Dados Atuais" description="Filas de reposição, compra, revisão e estoque parado usando vendas, estoque e cobertura do Tiny." icon={PackageSearch} to="/supplies/current-planning" />
<ModuleCard title="Planejamento Operacional" description="Prioridades de reposição, compra e revisão calculadas por demanda, estoque e cobertura." icon={PackageSearch} to="/supplies/current-planning" />
<ModuleCard title="Planejamento de Corte" description="Ruptura por cor e tamanho, montagem do corte e prioridade por cobertura." icon={Scissors} to="/cutting" />
<ModuleCard title="Controle de Estoque" description="Saldo, lotes, recebimentos, inventário e movimentações." icon={Package} to="/supplies/inventory" />
<ModuleCard title="Ordens de Produção" description="Ordens geradas pelo corte e acompanhamento de produção." icon={ClipboardList} to="/production-orders" />
@@ -354,7 +354,7 @@ const DemandPlanningScreen = () => {
return (
<div className={pageClassName}>
<div className="grid grid-cols-1 gap-4 2xl:grid-cols-[minmax(520px,1fr)_auto] 2xl:items-start">
<Header title="Planejamento por Dados Atuais" subtitle="Filas operacionais usando vendas, estoque e cobertura já disponíveis no Tiny/prod graphs." backTo="/supplies" />
<Header title="Planejamento Operacional" subtitle="Prioridades de reposição, compra e revisão calculadas por demanda, estoque e cobertura." backTo="/supplies" />
<DateRangePicker
dateRange={dateRange}
onChange={(range) => {