بومیسازی اودو یعنی چه؟
بومیسازی اودو را سه لایه ببینید. هر لایه که ناقص بماند، کاربران دوباره به اکسل برمیگردند:
- نمایش و زبان: رابط فارسی، چیدمان راستبهچپ، تاریخ شمسی در فرمها و لیستها، اعداد و چاپ فارسی. این لایه را کاربر در روز اول میبیند.
- دادهی پایه: کدینگ حسابها، واحد پول (ریال یا تومان)، جدول مالیات، شناسهی ملی و کد اقتصادی طرفحسابها، استانها، بانکها و تعطیلات رسمی. این لایه پیش از ثبت اولین سند باید درست باشد، چون اصلاحش بعداً گران است.
- قانون و فرایند: سال مالی شمسی، صورتحساب رسمی، چک، حقوق و بیمه، و مسیر ارسال صورتحساب به سامانهی مودیان. این لایه هر سال با قانون بودجه و بخشنامهها تغییر میکند، پس باید قابلنگهداری ساخته شود.
پروژهای که فقط لایهی اول را انجام میدهد، در دموی فروش خوب به نظر میرسد اما در اولین بستن ماه یا اولین لیست بیمه کم میآورد.
اودوی خام برای ایران چه دارد و چه ندارد؟
اودو برای بسیاری از کشورها بستهی بومیسازی رسمی (ماژولهای l10n_*) دارد که سرفصل حساب، مالیات و گزارشهای قانونی آن کشور را میآورد. برای ایران چنین بستهای در خود اودو نیست. وضعیت هر بخش در اودوی بدون بومیسازی:
| بخش | در اودوی خام | کار لازم |
|---|---|---|
| زبان فارسی | ترجمهی فارسی دارد، اما اصطلاحات حسابداری و انبار یکدست و دقیق نیست | بازبینی ترجمه با اصطلاحات رایج حسابداری ایران |
| راستچین | رابط وب برای زبانهای راستبهچپ پشتیبانی دارد | اصلاح گزارشها و قالبهای چاپی و ماژولهای جانبی |
| ریال | ارز ریال ایران تعریف شده است | تصمیم ریال یا تومان و گرد کردن مبالغ |
| تقویم شمسی | ندارد | ماژول تقویم جلالی برای نمایش، ورود، فیلتر و گزارش |
| سرفصل حسابها | سرفصل عمومی | کدینگ ایرانی (گروه، کل، معین، تفصیلی) |
| مالیات | موتور مالیات عمومی دارد، بدون جدول ایران | تعریف مالیات بر ارزش افزوده و عوارض و گزارش آن |
| چک | گردش چک به سبک ایران را ندارد | ماژول چک دریافتنی و پرداختنی |
| حقوق و بیمه | بستهی حقوق ایران ندارد | قواعد حقوق، بیمه، مالیات حقوق و خروجیهای قانونی |
| سامانهی مودیان | ماژول رسمی ندارد | تعیین مسیر ارسال صورتحساب در دامنهی پروژه |
در ۹۰ دقیقه گفتوگوی رایگان، ماژولهای لازم و لایههای بومیسازی همان ماژولها را با هم مشخص میکنیم؛ اگر اودو جواب شما نبود، همین را میگوییم.
جدول پوشش بومیسازی به تفکیک ماژول
«اودو بومیشده» عبارت مبهمی است. از هر مجری بخواهید پوشش را به تفکیک ماژول بگوید. این جدول فهرست حداقلی است که برای هر ماژول باید پرسید:
| ماژول | چه چیزی باید بومی شود |
|---|---|
| حسابداری | کدینگ چهارسطحی، سال مالی و دورههای شمسی، مالیات بر ارزش افزوده، چک، صورتحساب بانک ایرانی، گزارشهای مالی با تاریخ شمسی |
| فروش و فاکتور | قالب صورتحساب رسمی، کد اقتصادی و شناسهی ملی خریدار، مبلغ به حروف فارسی، مسیر صورتحساب مودیان |
| خرید | تاریخ شمسی در درخواست و سفارش، مالیات خرید، شناسهی تأمینکننده |
| انبار | تاریخ شمسی در رسید و حواله، گزارش موجودی و کاردکس با تاریخ شمسی، واحدهای اندازهگیری رایج |
| منابع انسانی و حقوق | تعطیلات رسمی، هفتهی کاری از شنبه، مرخصی طبق قانون کار، قواعد حقوق و بیمه، فایل لیست بیمه و پرداخت گروهی بانک |
| گزارشها و چاپ | فونت فارسی روی سرور، راستچین در PDF، تاریخ شمسی و اعداد فارسی در همهی قالبها |
| وبسایت و فروشگاه | درگاه پرداخت شاپرکی، روشهای ارسال داخلی، آدرس با استان و شهر |
دربارهی نسخه: تقویم شمسی و بخش بزرگی از بومیسازی به رابط وب اودو گره خورده است، و این رابط در نسخههای اصلی پشتسرهم بازنویسی شده است. ماژولی که برای نسخهی ۱۶ نوشته شده، روی ۱۸ یا ۱۹ خودبهخود کار نمیکند. پس پوشش را برای همان نسخهای بپرسید که میخواهید مستقر کنید، نه «برای اودو» بهطور کلی.
تقویم شمسی در اودو؛ فراتر از تاریخنما
بیشتر ماژولهای تقویم فقط تاریخنما (date picker) را شمسی میکنند. یک تقویم شمسی کامل در اودو این موارد را هم پوشش میدهد:
- ذخیره میلادی، نمایش شمسی: روش امن این است که پایگاه داده همچنان تاریخ میلادی نگه دارد و فقط نمایش و ورود شمسی باشد. اینطوری گزارشها، اتصالها و ارتقای نسخه به هم نمیریزد.
- گروهبندی و فیلتر: وقتی لیست فاکتورها را «بر اساس ماه» گروه میکنید، ماهها باید فروردین و اردیبهشت باشند، نه ژانویه و فوریه. فیلترهای «این ماه» و «سهماههی قبل» هم باید با ماه شمسی حساب شوند. این همان جایی است که بسیاری از ماژولهای ساده کم میآورند.
- سال مالی: پایان اسفند در تقویم میلادی ثابت نیست و بسته به سال کبیسه یک روز جابهجا میشود. پس سال مالی شمسی را نمیشود با یک «روز و ماه ثابت میلادی» تعریف کرد؛ سالها و دورهها باید با تاریخ شروع و پایان دقیق ساخته شوند.
- تعطیلات رسمی: تعطیلات مذهبی بر پایهی تقویم قمریاند و هر سال در تاریخ شمسی دیگری میافتند. فهرست تعطیلات باید هر سال بهروز شود تا مرخصی، حضور و غیاب و مهلتها درست حساب شوند.
- شروع هفته از شنبه: تقویمها، برنامهی شیفت و گزارشهای هفتگی باید هفته را از شنبه شروع کنند.
- چاپ: تاریخ همهی قالبهای PDF (فاکتور، رسید، حواله، فیش حقوقی) شمسی باشد؛ نه فقط صفحههای وب.
حسابداری و مالیات در اودوی بومیشده
حسابداری بیشترین کار بومیسازی را میخواهد، چون هم با عادت حسابدارها سروکار دارد و هم با قانون.
- کدینگ چهارسطحی: حسابداری ایرانی با گروه، کل، معین و تفصیلی کار میکند. در اودو حسابها یک سطحاند؛ پس باید تصمیم گرفت سطح تفصیلی با طرفحساب، حساب تحلیلی یا ترکیب این دو پیاده شود، و گزارشهای تراز چهارستونی و دفتر معین بر همین پایه ساخته شوند.
- ریال یا تومان: پیش از اولین سند تصمیم بگیرید سیستم با ریال کار کند یا تومان، و گرد کردن مبالغ چطور باشد. تغییر این تصمیم بعد از ثبت اسناد کار سادهای نیست.
- مالیات بر ارزش افزوده: نرخ مالیات و عوارض با قانون بودجه تغییر میکند. نرخ را بهصورت رکورد مالیات در تنظیمات تعریف کنید، نه داخل کد، تا تغییر سالانه فقط یک ویرایش باشد. گزارش مالیات خرید و فروش هم باید با دورههای شمسی گرفته شود.
- شناسههای طرفحساب: کد ملی برای اشخاص حقیقی، شناسهی ملی و کد اقتصادی برای اشخاص حقوقی، و کد پستی. این فیلدها هم در صورتحساب رسمی لازماند و هم در صورتحساب الکترونیکی.
- چک: گردش چک در ایران (دریافت، واگذاری به بانک، وصول، برگشت، خرج کردن چک مشتری) در اودوی خام نیست و معمولاً یکی از اولین ماژولهای اختصاصی پروژه است.
- بانک: صورتحساب بانکهای ایرانی معمولاً اکسل است و باید قالب ورود آن برای هر بانک تعریف شود. شمارهی شبا ساختار IBAN دارد و در اودو قابل ثبت است.
حقوق و دستمزد و بیمه در اودو
ماژول حقوق اودو اینترپرایز برای هر کشور بستهی جداگانهای دارد و ایران در میان آنها نیست. در کامیونیتی هم ماژول حقوق در خود اودو نیست و باید از ماژولهای جامعه (مثل ماژول Payroll پروژهی OCA که هنوز در مرحلهی بتاست) یا ماژول اختصاصی استفاده کرد. در هر دو حالت، قواعد ایران باید ساخته شود:
- حکم کارگزینی: اجزای حقوق و مزایا برای هر نفر، با تاریخ اعتبار.
- بیمهی تأمین اجتماعی: سهم کارگر و کارفرما، سقف بیمه، و خروجی لیست بیمه با قالبی که سازمان تأمین اجتماعی میپذیرد.
- مالیات حقوق: جدول پلکانی که هر سال با قانون بودجه عوض میشود؛ مثل نرخ مالیات، باید در تنظیمات باشد نه در کد.
- عیدی، سنوات، اضافهکار و مأموریت: قواعد قانون کار و آییننامههای داخلی سازمان.
- پرداخت: فایل پرداخت گروهی برای بانک و سند حسابداری حقوق.
اگر حقوق را بیرون از اودو حساب میکنید، باید معلوم باشد دادهی حضور و غیاب و مرخصی از کدام سیستم میآید و سند حقوق چطور به حسابداری اودو برمیگردد؛ این را جزو دامنهی پروژه بنویسید.
چاپ فارسی و صورتحساب رسمی
قالبهای چاپی اودو (فاکتور، رسید، حواله، فیش حقوقی) روی سرور به PDF تبدیل میشوند، و همینجا مشکلهای فارسی پیدا میشود که در صفحهی وب دیده نمیشوند:
- فونت فارسی روی سرور: اگر فونت فارسی روی سرور نصب و در قالبها معرفی نشده باشد، حروف در PDF جدا یا مربع نمایش داده میشوند.
- راستچین و جدولها: ترتیب ستونها، جای مبلغ و جمع، و شکستن جدول بین صفحهها باید در قالب راستبهچپ بازبینی شود.
- مبلغ به حروف: جمع فاکتور به حروف فارسی، با ریال یا تومانی که انتخاب کردهاید.
- صورتحساب رسمی: مشخصات فروشنده و خریدار (کد اقتصادی، شناسهی ملی، نشانی و کد پستی)، شرح کالا و خدمات، تخفیف، مالیات و عوارض در قالبی که حسابدار و ممیز مالیاتی انتظار دارند.
بومیسازی اودو و سامانهی مودیان
از دی ۱۴۰۴ صدور صورتحساب الکترونیکی از طریق سامانهی مودیان الزامی شده است. ارسال صورتحساب یا مستقیم از نرمافزار انجام میشود یا از طریق شرکت معتمد ارائهدهندهی خدمات مالیاتی. اودو ماژول رسمی برای سامانهی مودیان ندارد، پس این بخش در هر پروژهی اودو جداگانه باید تصمیمگیری شود.
صورتحسابها از کدام مسیر به سامانه میرسد؛ کدام دادهها (شناسهی کالا و خدمت، شناسههای خریدار، مالیات و عوارض) باید در اودو ثبت شود؛ صورتحساب ابطالی، اصلاحی و برگشت از فروش چطور ارسال میشود؛ و پاسخ سامانه کجا ثبت و پیگیری میشود. از مجری بخواهید مسیر را روی یک صورتحساب آزمایشی نشان دهد. جزئیات مشمولان و دو مسیر اتصال در راهنمای سامانهی مودیان آمده است.
ماژولهای آمادهی بومیسازی اودو و معیار انتخاب
برای بخشی از کار ماژول آماده هست. چند نمونه که در مخزنهای عمومی دیده میشود:
- Iran - Base از OCA (l10n_ir_base): برچسب تاریخها را شمسی و فیلد شناسهی ملی اضافه میکند؛ نسخهی منتشرشدهاش ۱۴ است و در مرحلهی بتاست.
- ماژولهای تاریخنمای جلالی در فروشگاه اودو برای نسخههای مختلف، از جمله یک تاریخنمای شمسی برای نسخهی ۱۹؛ بیشترشان پولیاند.
- سال مالی شمسی (l10n_ir_fiscalyear): ساخت خودکار سال و دورههای مالی شمسی، برای نسخههای ۱۶ تا ۱۸.
- تعطیلات رسمی ایران (ir_public_holidays): برای نسخههای ۱۸ و ۱۹.
پیش از نصب هر ماژول بومیسازی، این پنج سؤال را بپرسید:
- نسخه: برای همان نسخهی اودوی شما منتشر شده یا فقط «سازگار» اعلام شده است؟
- مجوز و سورس: مجوز آزاد (LGPL/AGPL) است یا اختصاصی (OPL)؟ سورسکد کامل را تحویل میگیرید؟
- تغییر هسته: ماژول کد هستهی اودو را تغییر میدهد یا فقط آن را گسترش میدهد؟ تغییر هسته ارتقای بعدی را سخت میکند.
- پوشش: فقط تاریخنما یا گروهبندی، فیلتر، گزارش و چاپ هم؟
- نگهداری: چه کسی آن را برای نسخهی بعدی بهروز میکند، و آخرین بهروزرسانی کی بوده است؟
بومیسازی و ارتقای نسخهی اودو
اودو هر سال یک نسخهی اصلی منتشر میکند و فقط چند نسخهی آخر را پشتیبانی میکند. هر ماژول بومیسازی و هر ماژول اختصاصی باید برای نسخهی جدید منتقل و آزمایش شود. پیچیدهترین مشکل پروژههای اودو در ایران همین است: سیستمی که با تغییر مستقیم هسته بومی شده، دیگر ارتقا پیدا نمیکند.
- بومیسازی را در ماژولهای جدا نگه دارید و هستهی اودو را دست نزنید.
- نرخها و جدولهای قانونی (مالیات، بیمه، تعطیلات) را داده ببینید نه کد.
- برای محاسبههای حساس (مالیات، حقوق، تاریخ شمسی) آزمون خودکار داشته باشید تا بعد از ارتقا معلوم شود چیزی نشکسته است.
- مالکیت سورسکد همهی ماژولها با خود سازمان باشد تا ارتقا به یک مجری خاص گره نخورد.
مراحل بومیسازی اودو در یک پروژهی واقعی
- نیازسنجی: کدام ماژولها لازم است و کدام لایههای بومیسازی برای همان ماژولها.
- تصمیمهای پایه: نسخه، کامیونیتی یا اینترپرایز، ریال یا تومان، کدینگ حسابها، و مسیر سامانهی مودیان.
- دادهی پایه: سرفصل حساب، مالیاتها، طرفحسابها با شناسهها، کالاها، سال مالی شمسی و تعطیلات.
- ماژولها و قالبها: تقویم شمسی، چک، قالبهای چاپی، و ماژولهای اختصاصیای که نیازسنجی نشان داده است.
- آزمون با دادهی واقعی: یک ماه کامل از اسناد سازمان را آزمایشی ثبت کنید و گزارشها را با سیستم قبلی مقایسه کنید.
- آموزش و اجرا: کنار تیم و روی کار روزانهی خودشان.
در وستا فاز اول هر استقرار اودو معمولاً کمتر از یک ماه طول میکشد. نصب اودو و ماژولهای پایهی نسخهی بومیشده رایگان است و استقرار و ماژولهای اختصاصی بر اساس نفر-ساعت حساب میشود؛ جزئیات در صفحهی تعرفهها و صفحهی اودو فارسی وستا آمده است.
پرسشهای رایج دربارهی بومیسازی اودو
بومیسازی اودو شامل چه چیزهایی است؟
سه لایه: نمایش (فارسی، راستچین، تقویم شمسی، چاپ فارسی)، دادهی پایه (کدینگ حسابها، ریال یا تومان، مالیات، شناسههای طرفحساب، تعطیلات) و قانون و فرایند (سال مالی شمسی، صورتحساب رسمی، چک، حقوق و بیمه، مسیر سامانهی مودیان).
آیا اودو بستهی بومیسازی رسمی برای ایران دارد؟
خیر. اودو برای بسیاری از کشورها بستهی بومیسازی رسمی دارد، اما برای ایران ندارد. تقویم شمسی، کدینگ ایرانی، مالیات، چک و حقوق با ماژولهای جانبی یا اختصاصی اضافه میشوند.
آیا تقویم شمسی همهی اودو را شمسی میکند؟
بستگی به ماژول دارد. بسیاری فقط تاریخنما را شمسی میکنند. تقویم کامل باید گروهبندی بر اساس ماه، فیلترها، سال مالی، گزارشها و قالبهای چاپی را هم شمسی کند.
ماژول تقویم شمسی نسخهی ۱۶ روی اودو ۱۸ یا ۱۹ کار میکند؟
معمولاً نه. تقویم شمسی به رابط وب اودو وابسته است و این رابط بین نسخههای اصلی تغییر کرده است. ماژول باید برای همان نسخه منتشر یا منتقل شده باشد.
حقوق و دستمزد ایران در اودو چطور انجام میشود؟
اودو بستهی حقوق ایران ندارد. قواعد حکم کارگزینی، بیمهی تأمین اجتماعی، مالیات پلکانی، عیدی و سنوات و فایلهای لیست بیمه و پرداخت بانک باید ساخته یا از ماژول جانبی گرفته شود؛ نرخها باید در تنظیمات باشند تا هر سال بدون برنامهنویسی عوض شوند.
بومیسازی ارتقای نسخهی اودو را سخت میکند؟
اگر با تغییر هستهی اودو انجام شده باشد، بله. اگر در ماژولهای جدا و با آزمون خودکار ساخته شده باشد، ارتقا یعنی انتقال و آزمایش همان ماژولها برای نسخهی جدید.
منابع
- Iran - Base (l10n_ir_base)، انجمن جامعهی اودو (OCA)
- ماژول سال مالی شمسی l10n_ir_fiscalyear، فروشگاه اودو
- ماژول تعطیلات رسمی ایران ir_public_holidays، فروشگاه اودو
- تاریخنمای شمسی برای اودو ۱۹ (persian_calendar_knk)، فروشگاه اودو
- ماژول Payroll پروژهی OCA برای اودو ۱۸، فروشگاه اودو
- پرسش تقویم جلالی در اودو ۱۸، انجمن رسمی اودو
- راهنمای سامانهی مودیان و صورتحساب الکترونیکی، وستا
در ۹۰ دقیقه گفتوگوی رایگان، ماژولهای لازم و لایههای بومیسازی همان ماژولها را با هم مشخص میکنیم؛ اگر اودو جواب شما نبود، همین را میگوییم.