feat: enable sorting and filtering on CPNP No. column in Cosmetic Items tab

Show all cosmetic products regardless of CPNP status. Column filter on
CPNP No. lets user isolate items with empty value.

Co-Authored-By: claude-flow <ruv@ruv.net>
This commit is contained in:
Christian Vidal Wolfandclaude-flow committed 2026-05-12 11:53:54 +02:00
1 parent 7d37d4777b
commit 19b02812bd
1 file changed
-8
-8
View File
@@ -43,8 +43,6 @@ export function CosmeticItemsView({ data, headers, onSaveRow, onCaptureState, ro
data.forEach(row => { data.forEach(row => {
const lineVal = String(row[COLUMNS.LINE] ?? '').trim().toUpperCase(); const lineVal = String(row[COLUMNS.LINE] ?? '').trim().toUpperCase();
if (!COSMETIC_LINES.some(l => lineVal === l)) return; if (!COSMETIC_LINES.some(l => lineVal === l)) return;
const cpnp = row[COLUMNS.CPNP_NO];
if (cpnp !== null && cpnp !== undefined && String(cpnp).trim() !== '') return;
columns.forEach(({ col }) => { columns.forEach(({ col }) => {
result[col].add(String(row[col] ?? '')); result[col].add(String(row[col] ?? ''));
@@ -66,12 +64,6 @@ export function CosmeticItemsView({ data, headers, onSaveRow, onCaptureState, ro
return COSMETIC_LINES.some(l => lineVal === l); return COSMETIC_LINES.some(l => lineVal === l);
}); });
// Filter: CPNP No. is empty
result = result.filter(({ row }) => {
const cpnp = row[COLUMNS.CPNP_NO];
return cpnp === null || cpnp === undefined || String(cpnp).trim() === '';
});
// Global search // Global search
if (search) { if (search) {
const terms = search.toLowerCase().split(/\s+/).filter(Boolean); const terms = search.toLowerCase().split(/\s+/).filter(Boolean);