fix(wizard): global material suggestions + unit create-option fixes
- متریال field suggests unique BASE material names from the whole catalog (brand/spec prefixes stripped; «راجین سیم مسی» → «سیم») — brand/specs have their own columns. - Save path reuses an existing material by full name only (no category equality constraint, which never matched topic-named categories) so selecting an existing material never duplicates it. - Unit field: suggestion list no longer includes the row's own typed text, which previously suppressed the create option; typing an unknown unit now shows «+ [value] به عنوان واحد جدید» (registered immediately via POST /units and added to suggestions).
This commit is contained in:
@@ -256,12 +256,10 @@ export function WizardPage() {
|
||||
const total = it.total;
|
||||
if (!cat && !brand && qty == null && price == null) continue;
|
||||
|
||||
// جستجوی متریال: اول با نام (مثل بکاند ساخته شده) — بعد از رفرش،
|
||||
// برند/مشخصه در حافظه نیستند ولی نام کامل در دیتابیس ذخیره شده
|
||||
// جستجوی متریال: اول با نامِ کامل سراسری (دیتابیس) — بدون قید دسته/تاپیک،
|
||||
// چون دستهی ذخیرهشدهی متریالها نام تاپیک است نه نام تایپشدهی کاربر
|
||||
const wantName = [brand, cat, ...specs].filter(Boolean).join(" ") || "کالای جدید";
|
||||
let material = materials.find(
|
||||
(m) => normalize(m.category) === normalize(cat) && normalize(m.name) === normalize(wantName),
|
||||
);
|
||||
let material = materials.find((m) => normalize(m.name) === normalize(wantName));
|
||||
if (!material) {
|
||||
// جستجوی قبلی (برند و مشخصهی ساختارمند در همین نشست)
|
||||
material = materials.find(
|
||||
|
||||
Reference in New Issue
Block a user