Clarify cutting blockers and group replenishment context

This commit is contained in:
Cauê Faleiros
2026-07-09 11:16:10 -03:00
parent 34a75e64f6
commit 423442578f
2 changed files with 135 additions and 15 deletions

View File

@@ -26,7 +26,7 @@ const familyOptions: Array<{ value: CutFamilyKey | 'all'; label: string }> = [
const filterOptions: Array<{ value: CutFilter; label: string }> = [
{ value: 'need', label: 'Com necessidade' },
{ value: 'all', label: 'Todos' },
{ value: 'issues', label: 'Pendências' },
{ value: 'issues', label: 'Dados pendentes' },
{ value: 'covered', label: 'Sem necessidade' }
];
@@ -45,7 +45,7 @@ const issueHelp: Record<CutIssue, string> = {
};
const correctionFilterOptions: Array<{ value: CorrectionIssueFilter; label: string }> = [
{ value: 'all', label: 'Todas pendências' },
{ value: 'all', label: 'Todos os dados pendentes' },
{ value: 'missing_family_rule', label: issueLabels.missing_family_rule },
{ value: 'missing_color', label: issueLabels.missing_color },
{ value: 'missing_size', label: issueLabels.missing_size }
@@ -368,7 +368,7 @@ const Cutting = () => {
'Rendimento un/rolo': row.family.unitsPerRoll || '',
'Rolos estimados': row.estimatedRolls || '',
'Cobertura': row.daysOfCover === null ? '' : row.daysOfCover.toFixed(1).replace('.', ','),
'Pendências': row.issues.map(issue => issueLabels[issue]).join(' | ')
'Dados pendentes': row.issues.map(issue => issueLabels[issue]).join(' | ')
})), `plano_corte_${new Date().toISOString().split('T')[0]}.csv`);
};
@@ -386,7 +386,7 @@ const Cutting = () => {
>
<AlertTriangle className="h-3.5 w-3.5 shrink-0" />
<span className="truncate">
{row.issues.length === 1 ? issueLabels[row.issues[0]] : `${row.issues.length} pendências`}
{row.issues.length === 1 ? issueLabels[row.issues[0]] : `${row.issues.length} dados`}
</span>
</span>
);
@@ -627,7 +627,7 @@ const Cutting = () => {
) : (
<div className="px-4 py-8 text-center">
<p className="text-sm font-bold text-dark-text">Nenhuma correção de produto pendente.</p>
<p className="mt-1 text-xs font-semibold text-dark-muted">As pendências restantes, se existirem, são de rendimento por família.</p>
<p className="mt-1 text-xs font-semibold text-dark-muted">Os dados restantes, se existirem, são de rendimento por família.</p>
</div>
)}
</div>
@@ -697,8 +697,8 @@ const Cutting = () => {
<div className="rounded-2xl border border-dark-border bg-dark-card p-4 shadow-sm">
<div className="mb-3 flex flex-col gap-3 md:flex-row md:items-center md:justify-between">
<div>
<h2 className="text-sm font-bold text-dark-text">Pendências do plano</h2>
<p className="mt-1 text-xs font-semibold text-dark-muted">Itens que ainda precisam de regra, cor, tamanho ou rendimento.</p>
<h2 className="text-sm font-bold text-dark-text">Dados pendentes do plano</h2>
<p className="mt-1 text-xs font-semibold text-dark-muted">Dados que bloqueiam o cálculo completo: família, cor, tamanho ou rendimento.</p>
</div>
<div className="flex items-center gap-2">
<span className="rounded-full border border-amber-400/30 bg-amber-400/10 px-3 py-1 text-xs font-bold text-amber-300">
@@ -875,7 +875,12 @@ const Cutting = () => {
<th className="px-4 py-4 text-[10px] font-bold uppercase tracking-wider">Estoque</th>
<th className="px-4 py-4 text-[10px] font-bold uppercase tracking-wider">Necessidade</th>
<th className="px-4 py-4 text-[10px] font-bold uppercase tracking-wider">Rolos</th>
<th className="px-4 py-4 text-[10px] font-bold uppercase tracking-wider">Pendências</th>
<th
className="px-4 py-4 text-[10px] font-bold uppercase tracking-wider"
title="Dados que ainda faltam para fechar o plano de corte do SKU."
>
Dados pendentes
</th>
<th className="px-4 py-4 text-right text-[10px] font-bold uppercase tracking-wider">Ações</th>
</tr>
</thead>