BSS HostKhaneh

تنظیمات مالیات و فاکتور

← بازگشت به راهنما

تنظیمات مالیات و فاکتور



> version: 1.8 | last_updated: 2026-09-26 | audience: admin

تنظیمات Tenant



**پنل شرکت → تنظیمات اصلی → تنظیمات مالی** (`/panel/main-settings/tenant-billing-settings`)

| فیلد | توضیح |
|------|--------|
| نرخ مالیات پیش‌فرض | مثلاً ۹٪ — روی محصولات جدید پیشنهاد می‌شود |
| کد اقتصادی | روی فاکتور چاپی |
| شناسه ملی شرکت | روی فاکتور چاپی |
| پاورقی فاکتور | متن پایین فاکتور |
| **قیمت‌گذاری دلاری** | روشن/خاموش |
| منبع نرخ | TGJU (دلار آزاد) یا دستی |
| بازهٔ به‌روزرسانی | ساعتی / روزانه / ماهانه — کرون `billing:refresh-usd-rates` هر ساعت چک می‌کند |
| **رند نرخ** | بدون رند / رند به بالا / رند به پایین |
| **پلهٔ رند** | ۱۰۰ تا ۱٬۰۰۰٬۰۰۰ ریال — مثال: بالا روی ۱٬۰۰۰ از ۱۱۲۳۴۵۶ → ۱۱۲۴۰۰۰ |
| نرخ فعلی | همان نرخ **رندشده** که برای تبدیل دلار→ریال استفاده می‌شود؛ تاریخ آخرین دریافت شمسی؛ در صورت تفاوت، نرخ خام هم نشان داده می‌شود |
| **همگام‌سازی قیمت اشتراک‌های فروخته‌شده** | اگر روشن باشد، با هر به‌روزرسانی نرخ دلار، `unit_price` اشتراک‌های **فعال** و **معلق** که محصولشان دلاری است با نسبت نرخ جدید مقیاس می‌شود؛ لاگ در **گزارش فعالیت مشتری** (`subscription.unit_price_usd_sync`) |

نرخ رندشده در `settings.usd_rate_irr` ذخیره می‌شود؛ خام API در `usd_rate_irr_raw`. نمایش و سفارش محصولات دلاری همیشه از `usd_rate_irr` می‌آید. `ensureUsableRate()` اگر نرخ ذخیره‌شده نسبت به خام خراب باشد (مثلاً کمتر از نصف) از خام ترمیم می‌کند؛ هنگام ذخیره پسوند/محصول دلاری در صورت نیاز از TGJU هم تازه می‌شود. اگر «نرخ فعلی» با «نرخ خام» فاصلهٔ غیرمنطقی داشت، دوباره **ذخیره و دریافت نرخ** بزنید.

همگام‌سازی قیمت (جزئیات)



  • فقط محصول با `currency=USD`

  • وضعیت اشتراک: `active` / `suspended`

  • مبلغ جدید ≈ `unit_price_قدیم × (نرخ_جدید / نرخ_قدیم)` تا گزینه‌ها/قیمت سفارشی حفظ شود

  • نمایش «هزینه تمدید» در پورتال از `unit_price` والد + افزونه‌ها می‌آید؛ همگام‌سازی همان عددها را با نرخ جدید هم‌تراز نگه می‌دارد

  • فاکتور تمدید **خودکار** در زمان صدور از کاتالوگ لحظه‌ای (محصول+گزینه+افزونه با نرخ روز) محاسبه می‌شود؛ این همگام‌سازی بین دو تمدید نمایش را درست نگه می‌دارد

  • اگر نرخ عوض نشود، همگام‌سازی اجرا نمی‌شود


  • محصولات



    در **کاتالوگ → محصولات** فیلد **مالیات (%)** و **واحد قیمت‌گذاری** (ریال / دلار) قابل تنظیم است. اگر دلار باشد، قیمت ذخیره‌شده دلاری است و در فروشگاه/جزئیات/چک‌اوت فقط معادل ریالی با آخرین نرخ تنانت نشان داده می‌شود (`formattedPrice` — بدون پرانتز «۱۰ دلار»). تبدیل در cycle pricing هنگام سفارش هم به ریال است.

    چاپ فاکتور



    `/portal/invoices/{id}/print` — نمایش جمع جزء، مالیات، تخفیف (همیشه ریال)

    مودیان



    فیلدهای کد اقتصادی و شناسه ملی برای سامانه مودیان؛ جزئیات: [moadian.md](./moadian.md)