🎯 این بخش چه کاری می‌کند؟

این بخش، مدیریت دسته‌بندی محصولات انبار آموزشگاه است. دسته‌بندی‌ها گروه‌هایی هستند که محصولات را برای جستجو و مدیریت آسان‌تر سازماندهی می‌کنند (مثلاً «کتاب‌های درسی»، «لوازم‌التحریر»، «تجهیزات ورزشی»).

با این پنل می‌توانید:

  • دسته‌بندی جدید بسازید (با نام، کد و توضیحات)
  • دسته‌بندی‌ها را به‌صورت درختی سازماندهی کنید (دسته والد و زیردسته)
  • وضعیت دسته را مدیریت کنید (فعال یا غیرفعال)
  • دسته‌های موجود را ویرایش کنید
  • دسته‌های بدون وابستگی را حذف کنید
  • عملیات گروهی (فعال‌سازی، غیرفعال‌سازی، حذف دسته‌جمعی) انجام دهید
  • گزارش کامل دسته‌بندی‌ها را در قالب Excel (CSV) دانلود کنید
  • بر اساس وضعیت و بازه تاریخ فیلتر کنید
  • تعداد محصولات و زیردسته‌های هر دسته را ببینید
  • بین نمایش جدولی و نمایش کارتی جابه‌جا شوید
✅ مزیت اصلی سیستم به‌طور خودکار ساختار درختی دسته‌ها را مدیریت می‌کند، از ایجاد حلقه (دسته‌ای که والد خودش یا زیردسته خودش باشد) جلوگیری می‌کند و دسته‌هایی که دارای محصول یا زیردسته هستند را قابل حذف نمی‌داند تا یکپارچگی داده‌های انبار حفظ شود.

👤 چه کسی می‌تواند از این بخش استفاده کند؟

  • مدیر آموزشگاه — دسترسی کامل: مشاهده، افزودن، ویرایش، حذف، عملیات گروهی، خروجی
  • مدیر شعبه — دسترسی کامل (فقط شعبه خودش)
  • منشی ارشد — مشاهده، افزودن، ویرایش، خروجی (بدون حذف)
  • منشی — مشاهده، افزودن، ویرایش، خروجی (بدون حذف)
  • سایر نقش‌ها — بدون دسترسی
⚠️ توجه: این صفحه برای سطح ۲ (مدیران، منشی ارشد، منشی) در دسترس است. اگر کارتی را نمی‌بینید، یعنی سطح دسترسی نقش شما کمتر از حد لازم است.

📋 پیش‌نیازها

برای استفاده از این بخش، ابتدا باید:
  • ✅ وارد حساب کاربری خود شده باشید
  • ✅ به یک آموزشگاه (یا شعبه) دسترسی داشته باشید
  • ✅ اشتراک آموزشگاه فعال باشد
  • ✅ نقش شما سطح ۲ (مدیر، منشی ارشد یا منشی) باشد
📌 نکات مهم پیش‌نیاز:
  • نام دسته الزامی است و باید بین ۲ تا ۱۰۰ کاراکتر باشد.
  • کد دسته (در صورت ورود) باید یکتا باشد.
  • دسته نمی‌تواند والد خودش باشد.
  • دسته نمی‌تواند زیردسته خودش (حلقه) باشد.
  • دسته دارای محصول قابل حذف نیست.
  • دسته دارای زیردسته قابل حذف نیست.

🚀 چگونه از آن استفاده کنم؟

مرحله ۱ — افزودن دسته جدید:

  1. روی دکمه «➕ افزودن دسته جدید» کلیک کنید
  2. نام دسته را وارد کنید (مثلاً «کتاب‌های درسی»)
  3. کد دسته (اختیاری) را وارد کنید (مثلاً CAT-001)
  4. دسته والد (اختیاری) را انتخاب کنید — برای ساخت ساختار درختی
  5. وضعیت را انتخاب کنید: ✅ فعال یا ⏸️ غیرفعال
  6. توضیحات (اختیاری) را وارد کنید
  7. روی «💾 ذخیره دسته» کلیک کنید

مرحله ۲ — ویرایش دسته:

  1. روی دکمه ✏️ (ویرایش) کلیک کنید
  2. اطلاعات را تغییر دهید
  3. روی «💾 ذخیره دسته» کلیک کنید

مرحله ۳ — تغییر وضعیت:

  1. روی دکمه 🔄 (تغییر وضعیت) کلیک کنید
  2. پیام تأیید ظاهر می‌شود — تأیید کنید
  3. وضعیت بین «فعال» و «غیرفعال» جابه‌جا می‌شود

مرحله ۴ — فیلتر و جستجو:

  1. در نوار فیلتر، وضعیت را انتخاب کنید
  2. می‌توانید بازه تاریخ ایجاد را وارد کنید
  3. می‌توانید در فیلد جستجو، نام یا کد دسته را بنویسید
  4. روی «🔍 اعمال» کلیک کنید

📑 بخش‌های اصلی پنل

📊
کارت‌های آماری

چهار کارت: کل دسته‌ها، فعال، غیرفعال، دارای محصول.

📅 زمان استفاده: مشاهده سریع وضعیت
🔍
فیلتر و جستجو

می‌توانید بر اساس وضعیت و بازه تاریخ ایجاد فیلتر کنید.

📅 زمان استفاده: پیدا کردن سریع دسته
🌳
ساختار درختی

دسته‌ها می‌توانند والد و زیردسته داشته باشند (سلسله‌مراتبی).

📅 زمان استفاده: سازماندهی محصولات
📦
شمارنده محصولات

تعداد محصولات هر دسته نمایش داده می‌شود.

📅 زمان استفاده: بررسی پرمحصول بودن
📁
شمارنده زیردسته‌ها

تعداد زیردسته‌های هر دسته نمایش داده می‌شود.

📅 زمان استفاده: بررسی عمق ساختار
📋
نمایش جدولی

همه دسته‌ها با ستون‌های نام، کد، والد، محصولات، زیردسته‌ها، وضعیت و عملیات.

📅 زمان استفاده: مقایسه و بررسی دقیق
▦
نمایش کارتی

هر دسته به‌صورت کارت با نمایش بصری اطلاعات کامل.

📅 زمان استفاده: مرور کلی یا موبایل
☑️
عملیات گروهی

با تیک زدن چند دسته، می‌توانید همه را با هم فعال/غیرفعال/حذف کنید.

📅 زمان استفاده: مدیریت دسته‌جمعی
📥
خروجی CSV

یک فایل اکسل‌پسند از کل دسته‌ها با تمام جزئیات بگیرید.

📅 زمان استفاده: گزارش‌گیری و بایگانی

🔄 چرخه وضعیت دسته

وضعیت معنی قابل تغییر به
✅ فعال دسته در انتخاب محصولات قابل مشاهده است ⏸️ غیرفعال
⏸️ غیرفعال دسته قابل انتخاب نیست اما سوابق حفظ می‌شود ✅ فعال
ℹ️ نکته: تغییر وضعیت باعث حذف داده‌ها نمی‌شود. فقط از لیست انتخاب در بخش «مدیریت محصولات» حذف می‌شود. محصولات موجود در این دسته حفظ می‌شوند.

⚠️ وابستگی‌ها و محدودیت‌ها

وابستگی جلوگیری از توضیح
📦 محصولات حذف اگر دسته دارای محصول باشد، قابل حذف نیست
📁 زیردسته‌ها حذف اگر دسته دارای زیردسته باشد، قابل حذف نیست
🔁 حلقه در ساختار ذخیره دسته نمی‌تواند والد خودش یا زیردسته خودش باشد
🔁 کد تکراری ذخیره کد دسته (در صورت ورود) باید یکتا باشد
⚠️ نکته: اگر دسته دارای محصول یا زیردسته است، می‌توانید آن را «غیرفعال» کنید (به‌جای حذف). به این ترتیب از انتخاب خارج می‌شود اما سوابق حفظ می‌شوند.

💼 مثال‌های کاربردی

❓ می‌خواهم یک دسته اصلی بسازم
  1. روی «➕ افزودن دسته جدید» کلیک کنید
  2. نام: «کتاب‌های درسی»
  3. کد: BOOKS
  4. دسته والد: — دسته اصلی —
  5. وضعیت: ✅ فعال
  6. روی «💾 ذخیره دسته» کلیک کنید
❓ می‌خواهم زیردسته برای یک دسته بسازم
  1. روی «➕ افزودن دسته جدید» کلیک کنید
  2. نام: «کتاب‌های ریاضی»
  3. دسته والد: «کتاب‌های درسی» را انتخاب کنید
  4. وضعیت: ✅ فعال
  5. روی «💾 ذخیره دسته» کلیک کنید
  6. 💡 حالا «کتاب‌های ریاضی» زیردسته «کتاب‌های درسی» است
❓ می‌خواهم ببینم هر دسته چند محصول دارد
  1. در جدول، ستون «محصولات» را ببینید
  2. تعداد محصولات هر دسته به‌صورت بج آبی نمایش داده می‌شود
  3. 💡 در کارت‌های آماری، تعداد دسته‌های «دارای محصول» هم دیده می‌شود
❓ چرا نمی‌توانم یک دسته را حذف کنم؟
  1. این پیام یعنی دسته محصول یا زیردسته دارد
  2. سیستم برای حفظ سوابق اجازه حذف نمی‌دهد
  3. 💡 به‌جای حذف، وضعیت را به ⏸️ غیرفعال تغییر دهید
❓ چرا نمی‌توانم یک دسته را والد خودش قرار دهم؟
  1. سیستم از ایجاد حلقه در ساختار درختی جلوگیری می‌کند
  2. یک دسته نمی‌تواند والد خودش یا زیردسته خودش باشد
  3. 💡 این محدودیت برای جلوگیری از خطاهای منطقی در گزارش‌گیری است
❓ می‌خواهم چند دسته را غیرفعال کنم
  1. دسته‌ها را تیک بزنید (یا تیک بالای جدول)
  2. از منوی «عملیات گروهی»، ⏸️ غیرفعال‌سازی را انتخاب کنید
  3. دکمه «اعمال» را بزنید
  4. پیام تأیید ظاهر می‌شود — تأیید کنید

📥 خروجی گرفتن

با کلیک روی دکمه 📥 خروجی CSV یک فایل با پسوند csv دانلود می‌شود که در اکسل باز می‌شود.

این فایل شامل این ستون‌هاست: ردیف، نام، کد، والد، محصولات، زیردسته‌ها، وضعیت، توضیحات، تاریخ ایجاد.

ℹ️ نکته: خروجی شامل فیلترهای فعلی است؛ یعنی اگر الان فقط «فعال‌ها» یا یک بازه تاریخ را می‌بینید، فقط همان‌ها در فایل می‌آیند.

📚 اصطلاحات مهم

اصطلاح معنی ساده
دسته‌بندیگروهی که محصولات را برای جستجو و مدیریت آسان‌تر سازماندهی می‌کند.
کد دستهشناسه یکتای دسته در آموزشگاه (مثلاً BOOKS یا CAT-001).
دسته والددسته‌ای که این دسته زیرمجموعه آن است (برای ساخت ساختار درختی).
زیردستهدسته‌ای که والد آن، این دسته است.
ساختار درختیسازماندهی دسته‌ها به‌صورت والد-فرزند (مثلاً «کتاب درسی > کتاب ریاضی»).
حلقهوقتی دسته‌ای والد خودش یا زیردسته خودش باشد (سیستم جلوگیری می‌کند).
دارای محصولدسته‌ای که حداقل یک محصول در آن تعریف شده است.
دارای زیردستهدسته‌ای که حداقل یک دسته دیگر، والد آن است.

⚠️ نکات مهم

🔴 نکات حیاتی:
  • دسته دارای محصول یا زیردسته قابل حذف نیست
  • دسته نمی‌تواند والد خودش یا زیردسته خودش باشد
  • کد دسته (در صورت ورود) باید یکتا باشد
  • نام دسته باید بین ۲ تا ۱۰۰ کاراکتر باشد
🟡 نکات مهم:
  • تغییر وضعیت باعث حذف داده نمی‌شود
  • اگر مدیر شعبه هستید، فقط دسته‌های شعبه خودتان را می‌بینید
  • دسته‌های غیرفعال در بخش «مدیریت محصولات» قابل انتخاب نیستند
  • درصد‌بندی زیردسته‌ها بر اساس نام والد در جدول نمایش داده می‌شود
  • حذف گروهی فقط برای دسته‌های بدون وابستگی است
🟢 نکات مثبت:
  • پشتیبانی از ساختار درختی (والد-فرزند)
  • جلوگیری خودکار از حلقه در ساختار
  • قفل هوشمند پس از استفاده در محصولات
  • شمارنده محصولات و زیردسته‌ها در هر دسته
  • امکان کد یکتا برای هر دسته
  • امکان جابه‌جایی بین نمایش جدولی و کارتی

❓ سوالات متداول

چرا دکمه «افزودن دسته جدید» نمایش داده نمی‌شود؟ ▾
این دکمه فقط برای نقش‌هایی نمایش داده می‌شود که اجازه افزودن دارند (مدیر، منشی ارشد، منشی). اگر نقش شما فقط «مشاهده» باشد، این دکمه نمایش داده نمی‌شود.
چرا نمی‌توانم یک دسته را حذف کنم؟ ▾
اگر دسته محصول یا زیردسته داشته باشد، سیستم اجازه حذف نمی‌دهد. راه‌حل: به‌جای حذف، وضعیت را به ⏸️ غیرفعال تغییر دهید. یا ابتدا محصولات/زیردسته‌های آن را منتقل یا حذف کنید.
تفاوت «دسته اصلی» و «زیردسته» چیست؟ ▾
دسته اصلی — دسته‌ای که والد ندارد (سطح اول). زیردسته — دسته‌ای که یک دسته دیگر به‌عنوان والد دارد. این ساختار به شما امکان می‌دهد دسته‌بندی‌های عمیق‌تر بسازید (مثلاً «کتاب‌های درسی > کتاب‌های ریاضی > کتاب ریاضی دهم»).
چرا نمی‌توانم کد یکسان برای دو دسته بگذارم؟ ▾
کد دسته باید در سطح هر آموزشگاه یکتا باشد. این برای جلوگیری از اشتباه در انبار و گزارش‌ها است. اگر کد تکراری باشد، سیستم اجازه ذخیره نمی‌دهد.
چرا نمی‌توانم یک دسته را والد خودش کنم؟ ▾
سیستم از ایجاد حلقه در ساختار درختی جلوگیری می‌کند. اگر دسته‌ای والد خودش باشد، یا زیردسته خودش باشد، گزارش‌گیری و انتخاب محصول با مشکل مواجه می‌شود.
چرا ستون «محصولات» و «زیردسته‌ها» نمایش داده می‌شود؟ ▾
این ستون‌ها برای این هستند که بتوانید در یک نگاه ببینید هر دسته چند محصول و چند زیردسته دارد. این اطلاعات برای تصمیم‌گیری (مثلاً کدام دسته را غیرفعال کنید) مفید است.
می‌توانم چند دسته را هم‌زمان غیرفعال کنم؟ ▾
بله. با تیک زدن دسته‌ها (یا تیک بالای جدول) و انتخاب عملیات ⏸️ غیرفعال‌سازی از منوی «عملیات گروهی»، می‌توانید همه را با هم غیرفعال کنید.
اگر والد یک دسته را غیرفعال کنم، زیردسته‌ها چه می‌شوند؟ ▾
زیردسته‌ها وضعیت خودشان را حفظ می‌کنند. سیستم به‌صورت خودکار زیردسته‌ها را غیرفعال نمی‌کند. اگر می‌خواهید زیردسته‌ها هم غیرفعال شوند، باید آن‌ها را جداگانه غیرفعال کنید.

🆘 اگر به مشکل خوردم؟

اگر با خطا یا رفتار غیرمنتظره مواجه شدید:

  1. گام ۱: صفحه را رفرش کنید (Ctrl+F5)
  2. گام ۲: کش مرورگر را پاک کنید
  3. گام ۳: مطمئن شوید اشتراک آموزشگاه فعال است
  4. گام ۴: مطمئن شوید دسترسی لازم (سطح ۲) را دارید
  5. گام ۵: مطمئن شوید کد دسته تکراری نیست
  6. گام ۶: مطمئن شوید دسته والد در ساختار درختی حلقه ایجاد نمی‌کند
  7. گام ۷: اگر مشکل ادامه داشت، تصویری از خطا تهیه کنید
  8. گام ۸: با پشتیبانی SCHOOL تماس بگیرید و تصویر + توضیح را ارسال کنید
🔴 هشدار: هرگز خودتان تلاش نکنید کد یا دیتابیس را دستکاری کنید — ممکن است دسته‌بندی‌ها و محصولات مرتبط آسیب ببینند.
پیمایش به بالا