diff --git a/src/features/products/products/completeness.service.js b/src/features/products/products/completeness.service.js index 65b6d6c..afe4fb6 100644 --- a/src/features/products/products/completeness.service.js +++ b/src/features/products/products/completeness.service.js @@ -121,6 +121,7 @@ export class CompletenessService { const allAttributes = Array.from(attributesMap.values()); const requiredAttributes = allAttributes.filter(attr => attr.is_required); + const evaluatedAttributes = requiredAttributes.length > 0 ? requiredAttributes : allAttributes; // Resolve required asset types dynamically across all assigned asset families const requiredAssetTypes = []; @@ -156,7 +157,7 @@ export class CompletenessService { // 1. Validate required attributes const filledAttrIds = (product.attributeValues || []).map(av => av.attribute_id); - for (const attr of requiredAttributes) { + for (const attr of evaluatedAttributes) { if (filledAttrIds.includes(attr.id)) { fulfilledCount++; } else { @@ -199,7 +200,7 @@ export class CompletenessService { } } - const totalCount = requiredAttributes.length + uniqueRequiredAssetTypes.length + requiredChannels.length + requiredGeneral.length; + const totalCount = evaluatedAttributes.length + uniqueRequiredAssetTypes.length + requiredChannels.length + requiredGeneral.length; const percentage = totalCount > 0 ? Math.round((fulfilledCount / totalCount) * 100) : 100; // Upsert generic default completeness