تعلیق در تاریخ اتمام و جمع‌آوری بعد از آن

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

تعلیق در تاریخ اتمام و جمع‌آوری بعد از آن



> version: 1.6 | last_updated: 2026-09-27 | audience: admin

عملکرد



تعلیق دیگر به سررسید فاکتور وصل نیست. دستور `billing:process-dunning` هر شب ساعت ۲۳:۵۹:

  • اشتراک اصلیِ فعال را که `ends_at` (وگرنه `next_billing_at`) رسیده باشد معلق می‌کند. مهلت همان تاریخ اتمام به وقت برنامه (`APP_TIMEZONE`، اینجا تهران) ساعت ۲۳:۵۹ است

  • برای Hetzner یعنی خاموش شدن سرور، نه حذف. افزونه‌های همان سرویس هم همراه والد معلق می‌شوند

  • چند روز بعد از تعلیق از دستهٔ محصول خوانده می‌شود. برای هر فیلد، بالاترین دسته‌ای که مقدار صریح دارد برنده است. اگر هیچ دسته‌ای عدد نگذارد، پیش‌فرض ۱۱ روز است

  • روش **خودکار** = حذف/لغو در ارائه‌دهنده. روش **تیکت** = سفارش جمع‌آوری در کارتابل، بدون حذف

  • سرویس‌هایی که قبلاً فقط با دنینگ فاکتور معلق شده‌اند (`dunning_suspended`) از این مسیر جمع نمی‌شوند

  • علامت‌زدن فاکتور معوق برای یادآوری جداست و در `billing:send-invoice-reminders` می‌ماند

  • سرویس **ساعتی** از این تعلیق ۲۳:۵۹ خارج است. روشنش به ردیف پوشش مشتری (`hourly_customer_coverages`) بند است و کران فقط وقتی آن پوشش تمام شود سراغش می‌رود. تعلیق کیف پول ستون `hourly_wallet_hold` است و علامت `expiry_suspended` نمی‌گذارد تا جمع‌آوری خودکار سرور را حذف نکند


  • اگر مشتری فاکتور تمدید را بپردازد، سرویس از تعلیق خارج و در ارائه‌دهنده روشن می‌شود. اگر تاریخ اتمام هنوز نرسیده باشد، دورهٔ جدید از همان تاریخ اتمام جلو می‌رود. اگر روشن‌کردن در ارائه‌دهنده شکست بخورد، وضعیت معلق می‌ماند، تاریخ اتمام جلو می‌رود، و همان شب دوباره جمع‌آوری نمی‌شود.

    تنظیمات دسته (تب مالیات و پرداخت)



    | فیلد | معنی |
    |------|------|
    | جمع‌آوری بعد از تعلیق | چند روز بعد از تعلیق. خالی = دستهٔ بالاتر. ۰ = همان شب |
    | فاکتور تمدید خودکار — چند روز قبل از اتمام | فقط وقتی نحوه تمدید در تب اطلاعات دسته «تمدید خودکار» باشد قابل پر کردن است |
    | روش جمع‌آوری | فقط خودکار یا تیکت جمع‌آوری. پیش‌فرض خودکار |

    Cron



    زمان‌بندی داخل `bootstrap/app.php` است: `dailyAt('23:59')`. crontab فقط `schedule:run` را هر دقیقه اجرا می‌کند.

    تست



    ```bash
    php artisan billing:process-dunning
    ```