درونریزی صورتحسابهای بانکی در Odoo فقط نخستین گام است. فایدهی واقعی زمانی پدید میآید که بتوان یک تراکنش بانکی را بهطور قابلاعتماد به فاکتور فروش، فاکتور تأمینکننده، یادداشت بستانکار یا پرداخت درست تخصیص داد.
دقیقاً در همین نقطه Odoo 19 Community یک امکان راحت در رابط کاربری ندارد. ردیفهای بانکی درونریزیشده در نتیجه ابتدا روی حساب واسط بانک میمانند و برای پردازش بعدی باید به یک آیتم باز حسابداری تخصیص داده شوند.
از این رو برای نصب Odoo 19 Community خودمان Bank Statement Matcher را توسعه دادیم. چون این مشکل فقط مربوط به ما نیست، این ماژول را تحت مجوز آزاد AGPL-3 رایگان در GitHub در اختیار میگذاریم.
به پروژه در GitHub:
Odoo 19 Bank Statement Matcher
از درونریزی صورتحساب بانکی تا فاکتور درست
با پروژهی منتشرشدهی قبلی ما، Odoo 19 Bank Statement Import، میتوان قالبهای مختلف صورتحساب بانکی را در Odoo 19 Community خواند. از جمله CAMT.053، CAMT.054، OFX و SWIFT MT940.
Bank Statement Matcher جدید این درونریزی را با گام کاری تعیینکنندهی بعدی تکمیل میکند:
کدام تراکنش بانکی درونریزیشده به کدام آیتم باز تعلق دارد؟
این ماژول مطالبات و بدهیهای باز را جستوجو میکند، تطبیقهای ممکن را ارزیابی میکند و به کاربران نشان میدهد که چرا یک تخصیص مشخص پیشنهاد شده است. پیشنهاد را میتوان بررسی، تأیید، اصلاح یا با انتخاب دستی جایگزین کرد.
به این ترتیب یک جریان کاری یکپارچه برای Odoo 19 Community پدید میآید:
درونریزی صورتحساب بانکی
تعیین تخصیصهای ممکن
بررسی گروهی پیشنهادها
پذیرش تطبیقهای بیابهام
پردازش دستی موارد نامشخص
Odoo 19 Bank Statement Matcher چه کارهایی میکند
این ماژول برای استفادهی عملی در حسابداری توسعه یافته است. از جمله از قابلیتهای زیر پشتیبانی میکند:
جستوجوی فاکتورها، فاکتورهای تأمینکننده، یادداشتهای بستانکار و پرداختهای مناسب
تعیین خودکار پیشنهادهای تخصیص هنگام ایجاد یک ردیف بانکی
نمایش قابلفهم قاعدهی تخصیص بهکاررفته و میزان اطمینان آن
جستوجوی دوباره در زمانی دیگر
تخصیص تکی یا پردازش همزمان چند ردیف بانکی
انتخاب دستی یک آیتم باز، وقتی هیچ پیشنهادی مناسب نیست
بازگرداندن تخصیصی که قبلاً انجام شده است
تشخیص چند تطبیق همارزش بدون تصمیمگیری دلخواه
اشاره به پیشنهادها یا سفارشهایی که هنوز آیتم باز حسابداری برایشان وجود ندارد
انتقال مستقیم اختیاری از درونریزی صورتحساب بانکی OCA به نمای تخصیص
ترجمهی آلمانی برای کد منبع انگلیسی
نمای کلی مرکزی در Odoo در حسابداری ← حسابداری ← تخصیص ردیفهای بانکی قابل دسترسی است. در آنجا میتوان ردیفهای بانکی هنوز باز را بهطور همزمان جستوجو و پردازش کرد.
تخصیص قابلپیگیری بهجای جعبهی سیاه
در دادههای مالی کافی نیست که صرفاً یک تطبیق دلخواه پیشنهاد شود. کاربران باید بتوانند تشخیص دهند که چرا یک تراکنش بانکی باید با یک سند مشخص مطابقت داشته باشد.
Bank Statement Matcher از این رو با قواعد کاملاً تعریفشده و سطوح مختلف اطمینان کار میکند:
| اطمینان | قاعده | معنا |
|---|---|---|
| 100 | ارجاع | شمارهی سند، ارجاع پرداخت یا ارجاع منشأ در متن ثبت یافت شد. |
| 80 | شریک تجاری و مبلغ | شریک تجاری و مبلغ باز مطابقت دارند. |
| 60 | مبلغ منحصربهفرد | مبلغ دقیقاً فقط با یک آیتم باز مطابقت دارد. |
| 30 | شریک تجاری | شریک تجاری درست است اما مبلغ نه؛ این فقط یک اشاره است. |
برای هر دفتر روزنامه (Journal) میتوان تعیین کرد که از چه سطح اطمینانی به بالا، یک پیشنهاد بیابهام اجازه دارد از طریق عملیات گروهی پذیرفته شود. تطبیقهای ضعیفتر قابل مشاهده میمانند، اما باید یکییکی بررسی و تأیید شوند.
نکتهی مهم در اینجا: ماژول بدون نظارت در پسزمینه ثبت حسابداری نمیکند. فقط پیشنهاد میسازد. تخصیص تنها با یک اقدام آگاهانهی کاربر انجام میشود – بهصورت تکی یا از طریق پردازش گروهی کنترلشده.
ارجاعهای بانکی دشوار نیز در نظر گرفته میشوند
بانکها ارجاعهای پرداخت را همیشه به شکلی یکنواخت منتقل نمیکنند. شمارهی فاکتور ممکن است با نامها، ارقام یا اطلاعات دیگر درآمیخته باشد. جداکنندهها ممکن است نباشند یا به شکلی متفاوت از سند اصلی نمایش داده شوند.
Matcher از این رو مقادیر مقایسه را نرمالسازی میکند و گذارهای میان حروف و ارقام را نیز در نظر میگیرد. به این ترتیب ارجاعها را مثلاً حتی وقتی در متن بانکی مستقیماً به محتوای دیگر چسبیدهاند نیز میتوان تشخیص داد.
جستوجو عمداً از سند Odoo به سمت متن بانکی انجام میشود. به این ترتیب جلوگیری میشود که رشتههای رقمی کوتاه و عمومی در متن ثبت به شمار زیادی تطبیق نامناسب منجر شوند.
این قواعد نه به یک بانک مشخص، نه به یک کشور مشخص و نه به یک طرح شمارهگذاری ثابت محدود نیستند. این موضوع ماژول را برای نصبهای دیگر Odoo 19 Community نیز جالب میکند.
چرا جستوجوی دوباره مهم است
هر پرداخت بانکی را نمیتوان همان هنگام درونریزی تخصیص داد. در عمل ممکن است پرداختی برسد پیش از آنکه فاکتور مربوطه در Odoo ایجاد یا ثبت شده باشد. فاکتور تأمینکننده یا یادداشت بستانکار نیز ممکن است بعداً ثبت شود.
از این رو میتوان ردیفهای بانکی را با «جستوجوی دوباره» در زمانی دیگر دوباره بررسی کرد. بهمحض آنکه آیتم باز مناسب موجود باشد، از یک تراکنش بانکی که پیشتر قابل تخصیص نبود، ممکن است یک تطبیق بیابهام پدید آید.
اگر متن بانکی مثلاً به پیشنهادی یا سفارشی اشاره کند که هنوز فاکتوری و در نتیجه آیتم بازی برایش وجود ندارد، ماژول یک راهنمایی مفید ارائه میدهد. بهجای آنکه صرفاً «بدون تطبیق» نشان دهد، توجه میدهد که شاید ابتدا باید فاکتور ایجاد شود.
ایمنی در اولویت است
یک تخصیص خودکار نادرست در حسابداری میتواند کار بیشتری از یک ردیف بانکی باز ایجاد کند. Bank Statement Matcher از این رو عمداً محتاطانه طراحی شده است:
تطبیقهای با امتیاز برابر بهطور دلخواه حل نمیشوند.
پیشنهادهای ضعیف نمایش داده میشوند، اما از طریق عملیات گروهی پذیرفته نمیشوند.
پیش از تخصیص، دوباره بررسی میشود که آیا آیتم باز هنوز در دسترس است.
آیتمی که در این فاصله توسط کاربر دیگری تسویه شده است، دوباره پردازش نمیشود.
هر ردیف بانکی در یک نقطهی ذخیرهی (Savepoint) پایگاه دادهی مستقل پردازش میشود.
خطا در یک ردیف بانکی مانع پردازش همهی ردیفهای دیگر نمیشود.
دادههای قدیمی ناقص بدون تاریخ ثبت معتبر برای اطمینان کنار گذاشته میشوند.
به این ترتیب ماژول از خودکارسازی در جایی که زمان صرفهجویی میکند پشتیبانی میکند و در جایی که وضعیت دادهها بهاندازهی کافی روشن نیست، تصمیم دستی میطلبد.
همکاری با Bank Statement Import ما
مخزن از دو ماژول تشکیل شده است:
| ماژول | وظیفه |
|---|---|
| account_statement_matcher | جستوجو، ارزیابی، بررسی و تخصیص اصلی را فراهم میکند. فقط به ماژول account در Odoo نیاز دارد. |
| account_statement_matcher_import_oca | پل اختیاری به درونریزی صورتحساب بانکی OCA. پس از یک درونریزی، نمای تخصیص با ردیفهای تازه درونریزیشده مستقیماً باز میشود. |
این پل اختیاری وقتی هم Matcher و هم ماژول OCA به نام account_statement_import_file موجود باشند، بهطور خودکار نصب میشود. درونریزی صورتحساب بانکی و تخصیص بعدی به این ترتیب مستقیماً در هم میگیرند.
اطلاعات بیشتر دربارهی درونریزی قالبهای بانکی پشتیبانیشده را در مطلب ما بخوانید:
Odoo 19 Bank Statement Import – افزونههای ما برای Odoo Community
نصب در Odoo 19 Community
نصب مانند هر ماژول افزودنی معمول Odoo انجام میشود:
پوشههای ماژول را در یک مسیر پیکربندیشدهی Addons در Odoo کپی کنید.
فهرست برنامهها را در Odoo بهروزرسانی کنید.
ماژول Bank Statement Matcher را نصب کنید.
برای هر دفتر بانکی تعیین کنید که آیا هنگام درونریزی باید پیشنهادها جستوجو شوند.
حداقل مقدار دلخواه را برای تخصیص گروهی کنترلشده انتخاب کنید.
این ماژول برای Odoo 19.0 Community توسعه یافته و آزمایش شده است. پیش از استفاده با نسخههای دیگر Odoo باید بهویژه تغییرات توابع داخلی حسابداری و تطبیق (Reconciliation) بررسی شود.
مانند هر افزونهی حوزهی حسابداری، توصیه میکنیم نصب را ابتدا در یک محیط آزمایشی با نسخهای از پایگاه دادهی خودتان و صورتحسابهای بانکی معمول بررسی کنید.
رایگان و متنباز برای جامعهی Odoo
ما در Biricon IT Services GmbH راهحلها را ابتدا برای نیازهای مشخص کسبوکار خودمان توسعه میدهیم. اگر از آن ماژولی با کاربرد عمومی پدید آید، نمیخواهیم آن را در یک نصب منفرد پنهان کنیم.
از این رو Odoo 19 Bank Statement Matcher بهصورت پروژهی متنباز رایگان در دسترس است. کد منبع را میتوان دید، بررسی کرد، تغییر داد و در چارچوب مجوز AGPL-3 توسعه داد.
هدف ما این نیست که تا حد امکان تصمیمهای ثبت حسابداری بیشتری را کورکورانه خودکار کنیم. میخواهیم کار تکراری را کاهش دهیم و همزمان مطمئن شویم که تخصیصهای مالی قابلپیگیری و قابلکنترل میمانند.
ما توسعهی متنباز معنادار را اینگونه میفهمیم: حل یک مشکل واقعی، مستندسازی شفاف راهحل و سپس در اختیار قراردادن آن برای جامعه.
پروژه، کد منبع و مشارکت
کد منبع کامل، راهنمای نصب و مستندات فنی در GitHub در دسترس است:
باز کردن Odoo 19 Bank Statement Matcher در GitHub
از تجربههای عملی، گزارش خطا، پیشنهادهای بهبود و مشارکتهای جامعهی Odoo خوشحال میشویم.
رایگان. قابلپیگیری. متنباز. برای Odoo 19 Community.