بانکها (Banks)
۱. مقدمه: چرا باید نام بانکها را تعریف کنیم؟
در سیستم ERP تابان، موجودیت «بانک» (Bank) سنگ بنای تمام عملیات مالی است. این فرم، لیست مرجع (Reference List) تمام موسسات مالی و اعتباری مجاز در شبکه بانکی کشور را نگهداری میکند.
دقت کنید که در این مرحله، شما شماره حساب یا شعبه تعریف نمیکنید؛ بلکه فقط هویت اصلی بانک (برند بانک) را ثبت میکنید.
چرا نمیتوانیم نام بانک را دستی تایپ کنیم؟ اگر این لیست مرجع وجود نداشته باشد، کاربران نام بانک را به سلیقه خود وارد میکنند (یکی مینویسد "ملت"، دیگری "بانک ملت"، سومی "Mellat"). این عدم یکپارچگی باعث فاجعه در سیستم میشود:
- گزارشگیری غلط: سیستم نمیتواند بفهمد که "ملت" و "بانک ملت" یکی هستند.
- عدم اعتبارسنجی: سیستم نمیتواند شماره شبا (IBAN) یا شناسه صیادی چک را کنترل کند (چون الگوریتم هر بانک متفاوت است).
- مغایرت بانکی: فایل اکسل بانک با سیستم تطبیق پیدا نمیکند.
۲. راهنمای تکمیل فرم
مسیر دسترسی: خزانهداری > تعاریف پایه > بانکها
این فرم معمولاً یکبار در زمان استقرار سیستم توسط مدیر سیستم پر میشود (یا به صورت آماده بارگذاری میشود).
| عنوان فیلد (در نرمافزار) | نام فنی (Technical) | نوع داده | راهنمای تکمیل و منطق سیستم |
|---|---|---|---|
| شناسه سیستمی | ID |
Integer (PK) | (فنی) کلید اصلی جدول (تولید خودکار). |
| کد سیستم | Code |
String (Unique) | یک کد کوتاه لاتین برای استفاده در سیستم. مثال: MEL برای ملت، BMI برای ملی. |
| نام بانک | Name |
String | نام کامل و رسمی بانک طبق مجوز بانک مرکزی. مثال: بانک پاسارگاد |
| کد بانک مرکزی | CentralBankCode |
String (digits) | (حیاتی برای چک صیادی) کد ۲ یا ۳ رقمی که بانک مرکزی به هر بانک اختصاص داده است. مثال: 057 برای پاسارگاد، 012 برای ملت. منطق سیستم: سیستم هنگام ثبت چک صیادی، با استفاده از این کد بررسی میکند که آیا شناسه ۱۶ رقمی چک معتبر است یا خیر. |
| کد سوئیفت | SwiftCode |
String | کد شناسایی بینالمللی بانک (برای شرکتهایی که تراکنش ارزی/صرافی دارند). |
| نام لاتین | EnName |
String | نام انگلیسی بانک (اختیاری). |
| لینک اینترنت بانک | WebsiteURL |
URL | لینک صفحه لاگین بانکداری شرکتی. ارزش افزوده: حسابدار میتواند در داشبورد خود روی لوگوی بانک کلیک کرده و مستقیم وارد سایت بانک شود. |
| لوگو/آیکون | LogoBlob |
Image/Binary | فایل تصویر لوگوی بانک. کاربرد: نمایش در لیست کارتخوانها (POS) و گزارش موجودی نقدینگی برای تشخیص بصری سریع. |
| رنگ سازمانی | ColorHex |
String (Hex) | (اختیاری) کد رنگ برند بانک (مثلاً #FFD700 برای پاسارگاد). جهت زیباسازی نمودارها. |
| وضعیت | IsActive |
Boolean | اگر بانکی منحل شد (مثل ادغام بانکهای نظامی در سپه)، تیک فعال را بردارید. هرگز بانک را حذف نکنید تا تاریخچه چکهای قدیمی خراب نشود. |
۳. معماری درختی: بانک، شعبه یا حساب؟
بسیاری از کاربران در تفکیک این سه مفهوم دچار اشتباه میشوند. ساختار درختی سیستم تابان به شکل زیر است:
-
سطح اول (ریشه): بانک (Bank)
- ماهیت: برند موسسه مالی.
- مثال: بانک ملی ایران.
- محل تعریف: همین فرم جاری.
-
سطح دوم (فرزند): شعبه (Bank Branch)
- ماهیت: ساختمان فیزیکی بانک در یک شهر/منطقه خاص.
- مثال: شعبه بازار، کد ۱۲۳.
- محل تعریف: فرم «مدیریت شعب» (وابسته به سطح ۱).
-
سطح سوم (فرزندِ فرزند): حساب بانکی (Bank Account)
- ماهیت: شماره حساب مالی شرکت شما در آن شعبه.
- مثال: جاری ۰۱۰۵۵۵۵۵۵۰۰۰۱.
- محل تعریف: فرم «حسابهای بانکی» (وابسته به سطح ۱ و ۲).
۴. نکات پیادهسازی (ویژه تیم فنی و استقرار)
الف) دادههای اولیه
تجربه کاربری (UX) حرفهای حکم میکند که کاربر نهایی مجبور نباشد نام ۳۰ بانک کشور را دستی وارد کند.
پیشنهاد: تیم فنی باید اسکریپتی (Migration Script) آماده کند که لیست تمام بانکهای فعال ایران را همراه با Code، CentralBankCode و Logo به صورت پیشفرض در دیتابیس درج کند.
- بانک ملی: Code=
BMI, CB=017 - بانک ملت: Code=
MEL, CB=012 - بانک صادرات: Code=
BSI, CB=019 - ...
ب) اعتبارسنجیها (Validations)
- یکتایی نام: سیستم نباید اجازه دهد دو بانک با نام
Nameیکسان ثبت شوند. - یکتایی کد بانک مرکزی: این فیلد بسیار حساس است و نباید تکراری باشد.
- حذف ممنوع (Soft Delete): اگر رکوردی در جدول
ChequesیاBankAccountsوجود دارد که بهBankID=5ارجاع میدهد، حذف فیزیکی بانک شماره ۵ باید مسدود شود.
۵. پرسشهای متداول (FAQ)
س: آیا اگر با بانک «آینده» کار نمیکنیم، باز هم باید آن را تعریف کنیم؟
پ: بله! شاید خودتان در آنجا حساب نداشته باشید، اما ممکن است مشتری شما چکی از بانک آینده به شما بدهد. برای ثبت آن چک، نام بانک آینده باید در سیستم باشد. به همین دلیل توصیه میکنیم لیست تمام بانکهای کشور را فعال نگه دارید.
س: اگر دو بانک ادغام شدند (مثل بانک انصار در سپه) چه کنیم؟
پ: بانک قدیمی (انصار) را غیرفعال (IsActive = False) کنید و بانک جدید (سپه) را فعال نگه دارید. سوابق چکهای قدیمی انصار با همان نام "انصار" باقی میمانند، اما برای چکهای جدید باید "سپه" انتخاب شود.
س: کد بانک مرکزی را از کجا پیدا کنیم؟
پ: این کد معمولاً همان ۳ رقم یا ۲ رقم اول شماره حسابهای متمرکز یا بخشی از شماره شبا است. همچنین در لیستهای رسمی سایت بانک مرکزی (شاپرک) موجود است. (اگر از دادههای پیشفرض سیستم استفاده کنید، نیازی به جستجو ندارید).