Files
CRM_Montzar/docs/superpowers/specs/2026-09-11-cheque-out-and-reminders-design.md
T

55 lines
3.4 KiB
Markdown

# چک خروجی و یادآوری سررسید
تاریخ: ۱۴۰۵/۶/۲۰
وضعیت: تأییدشده برای پیاده‌سازی
## هدف
دفتر چک هم دریافتی و هم پرداختی باشد. سه روز قبل از سررسید، یک‌بار به افراد توافق‌شده اطلاع داده شود.
## صفحه
مسیر همان `/cheques` است؛ لینک سایدبار عوض نمی‌شود.
دو تب: **دریافتی** و **پرداختی**. دو دکمه: **دریافت چک** و **پرداخت چک**. هر کدام مودال جدا با فیلدهای شخص، مبلغ، ارز (اگر بیش از یکی فعال باشد)، شماره، بانک، سررسید، وضعیت، یادداشت. در پرداختی شخص یعنی گیرنده.
ستون‌های جدول مثل الان. وضعیت:
- دریافتی: در جریان / وصول شد / برگشت
- پرداختی: در جریان / پرداخت شد / برگشت
چک وصل به فاکتور فقط در تب دریافتی دیده می‌شود. پرداختی به فاکتور وصل نمی‌شود.
## داده
همان مدل `Cheque` با:
- `direction`: `in` | `out` (چک فاکتور همیشه `in`)
- `reminderNotifiedAt`: تا هر چک فقط یک‌بار یادآوری شود
`POST /cheques` جهت را می‌گیرد. `GET /cheques?direction=in|out` فیلتر می‌کند. `PATCH` وضعیت مثل قبل.
## یادآوری
زمان‌بند روزانه حدود ساعت ۸ به وقت تهران. فقط چک‌های `pending` که روز سررسیدشان دقیقاً ۳ روز بعد است (تقویم تهران).
گیرندگان داخلی: همهٔ کاربران `owner`/`admin` سازمان + ثبت‌کنندهٔ چک (`ownerId`). اگر یک نفر دو نقش دارد، یک‌بار.
کانال:
- همهٔ گیرندگان داخلی: اعلان داخل برنامه (عنوان «سررسید چک»، لینک `/cheques`) + پیامک اگر موبایل داشته باشند
- دریافتی: پیامک به موبایل شخص طرف‌حساب
- پرداختی: به شخص پیامک نمی‌رود
بعد از تلاش برای آن چک، `reminderNotifiedAt` ست می‌شود. خطای یک چک بقیه را متوقف نمی‌کند. اگر پیامک پیکربندی نباشد یا موبایل خالی باشد، همان کانال رد می‌شود؛ اعلان داخل برنامه برای کاربران CRM می‌ماند.
متن‌ها با پیشوند `یادآوری منتکت:` و حداکثر حدود ۱۶۰ نویسه:
- شخص (فقط دریافتی): `یادآوری منتکت: چک شماره {شماره} به مبلغ {مبلغ} سه روز دیگر ({سررسید شمسی}) سررسید می‌شود.`
- داخلی دریافتی: `یادآوری منتکت: چک دریافتی {شماره} از {نام شخص}، مبلغ {مبلغ}، سررسید {تاریخ} (۳ روز دیگر).`
- داخلی پرداختی: `یادآوری منتکت: چک پرداختی {شماره} به {نام شخص}، مبلغ {مبلغ}، سررسید {تاریخ} (۳ روز دیگر).`
## خارج از این نسخه
سند حسابداری برای چک خروجی، وصل پرداختی به فاکتور، یادآوری روز سررسید یا برگشت، تنظیم فاصلهٔ روز از داخل تنظیمات.