روشهای پرداخت و دریافت (Payment Methods)
۱. مقدمه: روش پرداخت چیست؟
در سیستم ERP تابان، وقتی میخواهید پولی را دریافت یا پرداخت کنید، اولین سوال سیستم این است: «چگونه؟» آیا پول نقد است؟ چک است؟ کارت میکشید؟ یا حواله اینترنتی میزنید؟
موجودیت «روش پرداخت» (Payment Method)، پیکربندی هوشمندی است که رفتار فرمهای عملیاتی را کنترل میکند.
- اگر روش را «چک» انتخاب کنید -> سیستم فیلدهای "شماره چک" و "تاریخ سررسید" را نشان میدهد.
- اگر روش را «کارتخوان» انتخاب کنید -> سیستم فیلد "شماره مرجع تراکنش" را میخواهد.
هدف: جلوگیری از شلوغی فرمها و اجباری کردن فیلدهای مرتبط با هر روش.
۲. انواع روشهای پرداخت (The Core Logic)
قبل از تعریف روشها، باید بدانید که زیرساخت فنی سیستم (Backend) چه رفتارهایی را پشتیبانی میکند. فیلد MethodType تعیینکننده منطق برنامه است:
| نوع روش (فارسی) | نام فنی (System Enum) | رفتار هوشمند فرم (UI Behavior) |
|---|---|---|
| ۱. نقد / اسکناس | Cash |
سادهترین حالت. فقط مبلغ را میگیرد. متصل به «صندوقهای نقدی». |
| ۲. چک (صیادی/عادی) | Check |
پیچیدهترین حالت. فیلدهای شماره سریال، صیاد، سررسید و بانک را فعال میکند. متصل به «دسته چک» یا «صندوق اسناد». |
| ۳. حواله بانکی (فیش/اینترنتی) | WireTransfer / EFT |
فیلدهای شماره پیگیری (Trace No) و تاریخ واریز را اجباری میکند. متصل به «حساب بانکی». |
| ۴. کارتخوان (POS) | POS |
فیلد شماره مرجع و ترمینال را فعال میکند. کارمزد بانکی را محاسبه میکند (اگر تنظیم شده باشد). |
| ۵. سفته | PromissoryNote |
شبیه چک است اما منطق صیاد و دسته چک بانکی را ندارد. |
| ۶. خرج چک (واگذاری) | Endorsement |
لیستی از چکهای موجود در صندوق را باز میکند تا یکی را انتخاب کنید (نه اینکه چک جدید بنویسید). |
۳. راهنمای تکمیل فرم تعریف روش پرداخت
مسیر دسترسی: خزانهداری > تعاریف پایه > روشهای پرداخت
این فرم توسط مدیر سیستم تنظیم میشود تا گزینههای در دسترس کاربران را کنترل کند.
| عنوان فیلد | نام فنی (Technical) | نوع داده | راهنمای تکمیل و منطق سیستم |
|---|---|---|---|
| کد روش | Code |
String | کد کوتاه (مثلاً CHK برای چک، CSH برای نقد). |
| عنوان روش | Name |
String | نامی که کاربر در لیست کشویی میبیند. مثال: صدور چک روز یا کارتخوان فروشگاه |
| نوع رفتار | MethodType |
Enum | (حیاتی) مشخص میکند که این روش از چه منطقی پیروی میکند (طبق جدول بالا). |
| جهت تراکنش | Direction |
Enum | این روش کجا نمایش داده شود؟ Inbound: فقط در دریافتها (مثل کارتخوان). Outbound: فقط در پرداختها (مثل صدور چک). Both: در هر دو (مثل نقد یا حواله). |
| نیاز به شماره پیگیری | RequireRefNo |
Boolean | اگر تیک بزنید، کاربر نمیتواند بدون وارد کردن "شماره فیش/ارجاع" سند را ذخیره کند. |
| نیاز به بانک طرف مقابل | RequireDestBank |
Boolean | (مخصوص حواله) آیا لازم است بدانیم پول به کدام بانکِ مشتری واریز شده؟ |
| وضعیت | IsActive |
Boolean | فعال/غیرفعال. |
۴. سناریوهای عملیاتی: تأثیر تنظیمات بر فرم سند
بیایید ببینیم این تنظیمات چطور ظاهر فرم «سند دریافت/پرداخت» را تغییر میدهند.
سناریو ۱: پرداخت با چک (Check Issuance)
تنظیمات: روشی به نام «صدور چک» با نوع رفتار Check و جهت Outbound تعریف شده است.
- کاربر: وارد فرم سند پرداخت میشود.
- انتخاب: در لیست روشها، «صدور چک» را انتخاب میکند.
- تغییر فرم:
- فیلد "صندوق مبدأ" مخفی میشود.
- فیلد "حساب بانکی" ظاهر میشود.
- فیلد "دسته چک" ظاهر میشود.
- سیستم شماره سریال چک بعدی را پیشنهاد میدهد.
- فیلد "شناسه صیادی" نمایش داده میشود.
سناریو ۲: دریافت با کارتخوان (POS Receipt)
تنظیمات: روشی به نام «کارتخوان ملت» با نوع رفتار POS و جهت Inbound تعریف شده است.
- کاربر: وارد فرم سند دریافت میشود.
- انتخاب: در لیست روشها، «کارتخوان ملت» را انتخاب میکند.
- تغییر فرم:
- فیلد "حساب بانکی" به صورت خودکار روی "حساب متصل به پوز ملت" قفل میشود.
- فیلد "شماره پیگیری" (RRN) اجباری میشود (چون در تنظیمات تیک
RequireRefNoرا زدهاید). - کاربر باید ۴ رقم آخر کارت مشتری را وارد کند (اختیاری).
سناریو ۳: واریز نقدی (Cash Deposit)
تنظیمات: روشی به نام «نقد» با نوع رفتار Cash تعریف شده است.
- کاربر: روش «نقد» را انتخاب میکند.
- تغییر فرم:
- تمام فیلدهای بانکی و چک مخفی میشوند.
- فقط فیلد "انتخاب صندوق" (مثلاً صندوق فروشگاه ۱) نمایش داده میشود.
- کاربر فقط مبلغ را وارد میکند.
۵. کنترلهای هوشمند سیستم (System Validations)
این قوانین تضمین میکنند که کاربر روش غلطی را انتخاب نکند:
- محدودیت نوع حساب:
- اگر روش پرداخت
Checkباشد، کاربر فقط میتواند حسابهای بانکی نوع «جاری» (Current) را انتخاب کند. (نمیتوان از حساب پسانداز چک کشید).
- اگر روش پرداخت
- اجبار ارجاع:
- اگر روش پرداخت
WireTransfer(حواله) باشد، سیستم اجازه ثبت بدون "شماره پیگیری" را نمیدهد.
- اگر روش پرداخت
- موجودی چک:
- در روش
Endorsement(خرج چک)، سیستم فقط چکهایی را لیست میکند که وضعیت آنها «نزد صندوق» است. چکهای واگذار شده یا برگشتی نمایش داده نمیشوند.
- در روش
۶. پرسشهای متداول (FAQ)
س: آیا میتوانم روشی تعریف کنم که همزمان نقد و چک باشد؟
پ: خیر. در هدر سند نمیتوانید. اما در «جزئیات سند» (Payment Lines) میتوانید چند ردیف ایجاد کنید.
- ردیف ۱: ۱۰ میلیون تومان -> روش: نقد
- ردیف ۲: ۲۰ میلیون تومان -> روش: چک
- سیستم جمع اینها را به عنوان مبلغ کل سند در نظر میگیرد.
س: روش «تهاتر» (Clearing) چگونه تعریف میشود؟
پ: تهاتر معمولاً جریان نقدینگی ندارد. اما اگر میخواهید در این فرم باشد، میتوانید روشی با نوع Journal / Adjustment تعریف کنید که به جای بانک/صندوق، یک حساب واسط را درگیر کند. (هرچند توصیه میشود تهاتر در فرم "تسویه حساب" انجام شود نه اینجا).
س: اگر کارتخوان من به دو حساب وصل باشد چه؟
پ: باید دو روش پرداخت تعریف کنید:
- کارتخوان (حساب ملت)
- کارتخوان (حساب سامان) این کار باعث میشود کاربر در لحظه کشیدن کارت، دقیقاً مشخص کند پول به کدام حساب رفته تا مغایرت بانکی پیش نیاید.
۷. گزارشهای کلیدی
- گزارش تفکیکی روشها: چه مقدار از فروش امروز "نقد"، چه مقدار "کارتخوان" و چه مقدار "چک" بوده است؟
- کنترل کارتخوان: گزارشی که تراکنشهای ثبت شده در سیستم با روش
POSرا لیست میکند تا با "ستلمنت" (Settlement) دستگاه پوز مقایسه کنید. - چکهای صادر شده: فیلتر کردن تمام پرداختها بر اساس روش
Check.