گزارش‌های سفارشی

اودو با یک چارچوب گزارش‌گیری قدرتمند و آسان برای استفاده ارائه می‌شود. این موتور به شما امکان می‌دهد گزارش‌های جدیدی مانند گزارش‌های مالیاتی، ترازنامه‌ها و صورت‌های سود و زیان با گروه‌بندی‌ها و طرح‌بندی‌های خاص ایجاد کنید.

مهم

حالت توسعه‌دهنده را فعال کنید تا به تنظیمات گزارش حسابداری دسترسی پیدا کنید.

برای ایجاد یک گزارش جدید، به مسیر حسابداری ‣ پیکربندی ‣ گزارش‌های حسابداری بروید. از اینجا می‌توانید یک گزارش اصلی یا یک نسخه ایجاد کنید.

نکته

  • ذخیره گزارش‌های تغییر یافته به عنوان نسخه‌های گزارش را در نظر بگیرید تا گزارش‌های اصلی دست‌نخورده باقی بمانند.

  • برای دسترسی به رابط مدیریت گزارش موجود از خود گزارش، روی آیکون (چرخ‌دنده‌ها) کلیک کنید.

گزارش‌های اصلی

گزارش‌های ریشه‌ای می‌توانند به عنوان گزارش‌های حسابداری عمومی و بی‌طرف در نظر گرفته شوند. این گزارش‌ها به عنوان الگوهایی عمل می‌کنند که نسخه‌های حسابداری محلی بر اساس آن‌ها ساخته می‌شوند. اگر گزارشی گزارش ریشه‌ای نداشته باشد، خود به عنوان یک گزارش ریشه‌ای در نظر گرفته می‌شود.

Example

یک گزارش مالیاتی برای بلژیک و ایالات متحده هر دو از یک نسخه عمومی به عنوان پایه استفاده می‌کنند و آن را برای مقررات داخلی خود تطبیق می‌دهند.

ایجاد یک آیتم منو برای دسترسی به گزارش اصلی جدید ضروری است. برای انجام این کار، تنظیمات گزارش را باز کنید، روی اقدام، ایجاد آیتم منو کلیک کنید و صفحه را تازه‌سازی کنید. اکنون گزارش تحت حسابداری ‣ گزارش‌دهی در دسترس است.

توجه

مواردی که نیاز به ایجاد یک گزارش اصلی جدید دارند نادر هستند، مانند زمانی که مقامات مالیاتی یک کشور به یک نوع گزارش جدید و خاص نیاز دارند.

گونه‌ها

گونه‌ها نسخه‌های خاص کشور از گزارش‌های اصلی هستند و بنابراین همیشه به یک گزارش اصلی ارجاع می‌دهند. برای ایجاد یک گونه، هنگام ایجاد یک گزارش جدید، یک گزارش عمومی (اصلی) را در فیلد گزارش اصلی انتخاب کنید.

هنگامی که یک گزارش اصلی از منوی گزارش‌دهی در برنامه حسابداری باز می‌شود، تمامی انواع آن در انتخاب‌گر نوع گزارش در گوشه بالا سمت راست نما نمایش داده می‌شوند.

Example

گزارش مالیات بر ارزش افزوده (BE) یک نوع از گزارش مالیات عمومی اصلی است.

انتخاب نوع گزارش

خطوط

پس از ایجاد یک گزارش (چه اصلی و چه متغیر)، مرحله بعدی پر کردن آن با خطوط است. برای ایجاد یک خط جدید، روی افزودن خط کلیک کنید. برای ویرایش یک خط موجود، روی خود خط کلیک کرده و پنجره بازشده را ویرایش کنید. تمام خطوط به نام نیاز دارند و می‌توانند یک کد اختیاری داشته باشند که امکان استفاده از مقدار خط در فرمول‌ها را فراهم می‌کند.

گزینه‌های خطوط موتور.

عبارات

هر خط می‌تواند شامل یک یا چند عبارت باشد. عبارات به عنوان زیرمتغیرهایی در نظر گرفته می‌شوند که برای یک خط گزارش مورد نیاز هستند. برای ایجاد یک عبارت، روی افزودن یک خط درون پنجره بازشوی یک خط کلیک کنید.

هنگام ایجاد یک عبارت، باید یک برچسب وارد کنید که برای ارجاع به آن عبارت استفاده می‌شود. برچسب باید در میان عبارات هر خط گزارش منحصربه‌فرد باشد. هر دو فیلد موتور محاسباتی و فرمول نیز باید تکمیل شوند. موتور محاسباتی تعیین می‌کند که فرمول(ها) و زیرفرمول(ها) چگونه تفسیر شوند. در صورت نیاز، امکان ترکیب عبارات با استفاده از موتورهای محاسباتی مختلف در یک خط وجود دارد.

توجه

بسته به موتور، زیرفرمول‌ها نیز ممکن است مورد نیاز باشند.

موتور محاسبه دامنه اودو

هنگام استفاده از موتور محاسباتی دامنه اودو، یک فرمول به عنوان یک دامنه اودو که اشیاء account.move.line را هدف قرار می‌دهد، تفسیر می‌شود.

زیر فرمول به شما امکان می‌دهد تعیین کنید که خطوط حرکت مطابق با دامنه چگونه برای محاسبه مقدار عبارت استفاده می‌شوند:

جمع

نتیجه جمع تمام مانده‌های خطوط حرکت تطبیق داده شده است.

جمع_اگر_مثبت

نتیجه جمع تمام مانده‌های خطوط حرکت تطبیق داده شده است، اگر این مقدار مثبت باشد. در غیر این صورت، مقدار 0 است.

جمع اگر منفی

نتیجه مجموع تمام مانده‌های خطوط حرکت تطبیق داده شده است، اگر این مقدار منفی باشد. در غیر این صورت، مقدار 0 خواهد بود.

تعداد_ردیف‌ها

نتیجه تعداد زیرخط‌های این عبارت است. اگر خط اصلی دارای مقدار گروه‌بندی باشد، این مقدار با تعداد کلیدهای گروه‌بندی متمایز در خطوط حرکت تطبیق داده شده مطابقت خواهد داشت. در غیر این صورت، این مقدار برابر با تعداد خطوط حرکت تطبیق داده شده خواهد بود.

نکته

برای معکوس کردن علامت نتیجه، یک علامت - را در ابتدای زیرفرمول قرار دهید.

عبارت خط در گزارش خطی

موتور محاسبه برچسب‌های مالیاتی

هنگام استفاده از موتور محاسباتی برچسب‌های مالیاتی، محتوای فیلد فرمول با برچسب‌های مالیاتی مطابقت داده می‌شود. اگر چنین برچسب‌هایی هنگام ایجاد عبارت وجود نداشته باشند، ایجاد خواهند شد.

هنگام ارزیابی عبارت، محاسبه عبارت به طور تقریبی می‌تواند به این صورت بیان شود: (مقدار خطوط حرکت با برچسب +) - (مقدار خطوط حرکت با برچسب -)**.

Example

اگر فرمول به tag_name تنظیم شده باشد، موتور برچسب‌های مالیاتی +tag_name و -tag_name را مطابقت می‌دهد و در صورت لزوم آن‌ها را ایجاد می‌کند. برای توضیح بیشتر: دو برچسب توسط فرمول مطابقت داده می‌شوند. اگر فرمول A باشد، برچسب‌های +A و -A را نیاز خواهد داشت (و در صورت نیاز ایجاد می‌کند).

موتور محاسبه فرمول‌های ترکیبی دیگر

موتور محاسباتی جمع سایر فرمول‌ها عملیات‌های ریاضی را بر روی مقادیر به‌دست‌آمده از سایر عبارات انجام می‌دهد. فرمول‌ها در اینجا شامل ارجاعات به عبارات هستند که با یکی از چهار عملگر اصلی ریاضی (جمع +، تفریق -، تقسیم / و ضرب *) جدا شده‌اند. برای ارجاع به یک عبارت، کد خط والد آن را تایپ کنید و سپس یک نقطه . و برچسب عبارت را وارد کنید (مثلاً code.label).

زیر فرمول‌ها می‌توانند یکی از موارد زیر باشند:

اگر_بیشتر(فعلی(مقدار))

مقدار عبارت حسابی تنها در صورتی بازگردانده می‌شود که از حد تعیین‌شده بیشتر باشد. در غیر این صورت، نتیجه 0 خواهد بود.

اگر_کمتر(فعلی(مقدار))

مقدار عبارت حسابی تنها در صورتی بازگردانده می‌شود که کمتر از حد تعیین‌شده باشد. در غیر این صورت، نتیجه 0 خواهد بود.

اگر_بین(ارز1(مقدار1)، ارز2(مقدار2))

مقدار عبارت ریاضی تنها در صورتی بازگردانده می‌شود که به طور دقیق بین حدود مشخص شده باشد. در غیر این صورت، به نزدیک‌ترین حد بازگردانده می‌شود.

اگر_عبارت_دیگر_بالاتر(کد_خط.برچسب_عبارت، فعلی(مقدار))

مقدار عبارت حسابی تنها در صورتی بازگردانده می‌شود که مقدار عبارت مشخص‌شده توسط کد خط و برچسب عبارت ارائه‌شده بیشتر از حد تعیین‌شده باشد. در غیر این صورت، نتیجه 0 خواهد بود.

اگر_عبارت_دیگر_کمتر(کد_خط.برچسب_عبارت، مقدار_فعلی(مقدار))

مقدار عبارت حسابی تنها در صورتی بازگردانده می‌شود که مقدار عبارت مشخص‌شده توسط کد خط و برچسب عبارت ارائه‌شده کمتر از حد تعیین‌شده باشد. در غیر این صورت، نتیجه 0 خواهد بود.

CUR کد ارز به صورت حروف بزرگ است و amount مقدار تعهدی است که به آن ارز بیان شده است.

شما همچنین می‌توانید از زیرفرمول cross_report برای تطبیق یک عبارت موجود در گزارش دیگر استفاده کنید.

موتور محاسبه پیشوند کدهای حساب

موتور محاسباتی پیشوند کدهای حساب برای مطابقت دادن مبالغ انجام شده در حساب‌ها با استفاده از پیشوندهای کدهای این حساب‌ها به عنوان متغیر در یک عبارت ریاضی استفاده می‌شود.

Example

۲۱
عبارت‌های حسابی می‌توانند یک پیشوند واحد نیز باشند، مانند اینجا.

Example

۲۱ + ۱۰ - ۵
این فرمول مانده‌های خطوط حرکتی را که در حساب‌هایی با کدهایی که با 21 و 10 شروع می‌شوند، جمع می‌کند و مانده حساب‌هایی با پیشوند 5 را کسر می‌کند.

همچنین امکان نادیده گرفتن انتخابی از زیر پیشوندها وجود دارد.

Example

۲۱ + ۱۰\(۱۰۱، ۱۰۲) - ۵\(۵۷)
این فرمول به همان شیوه مثال قبلی عمل می‌کند اما پیشوندهای 101، 102 و 57 را نادیده می‌گیرد.

شما می‌توانید از «زیر فیلترگذاری» بر روی اعتبارات و بدهی‌ها با استفاده از پسوندهای C و D استفاده کنید. در این حالت، یک حساب فقط در نظر گرفته می‌شود اگر پیشوند آن مطابقت داشته باشد و اگر مجموع مانده خطوط حرکت انجام شده در این حساب اعتبار/بدهی باشد.

Example

حساب 210001 دارای مانده -42 و حساب 210002 دارای مانده 25 است. فرمول 21D فقط با حساب 210002 مطابقت دارد و بنابراین مقدار 25 را برمی‌گرداند. حساب 210001 مطابقت ندارد، زیرا مانده آن بدهکار است.

پیشوندهای استثنا می‌توانند با پسوندهای C و D ترکیب شوند.

Example

۲۱D + ۱۰\(۱۰۱, ۱۰۲)C - ۵\(۵۷)
این فرمول مانده‌های خطوط حرکتی را که در حساب‌هایی با کد شروع‌شونده با 21 ثبت شده‌اند در صورتی که بدهکار (D) باشند و کد 10 در صورتی که بستانکار (C) باشند، جمع می‌کند، اما پیشوندهای 101، 102 را نادیده می‌گیرد و مانده حساب‌هایی با پیشوند 5 را کم می‌کند، در حالی که پیشوند 57 را نادیده می‌گیرد.

برای مطابقت با حرف C یا D در یک پیشوند و استفاده نکردن از آن به عنوان پسوند، از یک استثنای خالی () استفاده کنید.

Example

۲۱D\()
این فرمول حساب‌هایی را که کد آن‌ها با 21D شروع می‌شود، بدون توجه به علامت مانده آن‌ها مطابقت می‌دهد.

علاوه بر استفاده از پیشوندهای کد برای شامل کردن حساب‌ها، می‌توانید آن‌ها را با برچسب‌های حساب نیز مطابقت دهید. این امر به‌ویژه زمانی مفید است که کشور شما فاقد یک جدول حساب استاندارد باشد، جایی که ممکن است از یک پیشوند برای اهداف مختلف در شرکت‌های مختلف استفاده شود.

Example

برچسب(25)
این فرمول حساب‌هایی را مطابقت می‌دهد که برچسب‌های مرتبط با آن‌ها شامل برچسبی با شناسه 25 باشد.

اگر برچسبی که به آن اشاره می‌کنید در یک فایل داده تعریف شده باشد، می‌توان به جای شناسه از XMLID استفاده کرد.

Example

برچسب(my_module.my_tag)
این فرمول با حساب‌هایی مطابقت دارد که برچسب‌های مرتبط آن‌ها شامل برچسب مشخص‌شده با my_module.my_tag باشد.

شما همچنین می‌توانید از عبارات ریاضی با برچسب‌ها استفاده کنید و احتمالاً آن‌ها را با انتخاب‌های پیشوند ترکیب کنید.

Example

برچسب(my_module.my_tag) + برچسب(42) + 10
مانده حساب‌هایی که با برچسب my_module.my_tag مشخص شده‌اند، با مانده حساب‌هایی که به برچسب با شناسه 42 مرتبط هستند و حساب‌هایی که پیشوند کد آن‌ها 10 است، جمع خواهند شد.

پسوندهای C و D می‌توانند به همان روش با برچسب‌ها استفاده شوند.

Example

برچسب(my_module.my_tag)C
این فرمول حساب‌هایی با برچسب my_module.my_tag و مانده بستانکار را مطابقت می‌دهد.

حذف پیشوند همچنین با برچسب‌ها کار می‌کند.

Example

برچسب(my_module.my_tag)\(10)
این فرمول حساب‌هایی را با برچسب my_module.my_tag و کدی که با 10 شروع نمی‌شود، مطابقت می‌دهد.

موتور محاسبه ارزش خارجی

موتور محاسبه ارزش خارجی برای ارجاع به مقادیر دستی و مقادیر انتقالی استفاده می‌شود. این مقادیر با استفاده از account.move.line ذخیره نمی‌شوند، بلکه با account.report.external.value ذخیره می‌شوند. هر یک از این اشیاء مستقیماً به عبارتی که تحت تأثیر قرار می‌دهد اشاره می‌کنند، بنابراین نیاز بسیار کمی به انتخاب آن‌ها در اینجا وجود دارد.

فرمول‌ها می‌توانند یکی از موارد زیر باشند:

جمع

اگر نتیجه باید مجموع تمام مقادیر خارجی در دوره باشد.

جدیدترین

اگر نتیجه باید مقدار آخرین مقدار خارجی در دوره باشد.

علاوه بر این، زیر فرمول‌ها می‌توانند به دو روش استفاده شوند:

گرد کردن=X

جایگزینی X با یک عدد دستور می‌دهد که مقدار را به X رقم اعشار گرد کنید.

قابل ویرایش

نشان می‌دهد که این عبارت می‌تواند به صورت دستی ویرایش شود و با نمایش یک آیکون در گزارش، به کاربر اجازه می‌دهد این اقدام را انجام دهد.

توجه

مقادیر دستی در تاریخ date_to که در حال حاضر در گزارش انتخاب شده است، ایجاد می‌شوند.

هر دو زیر فرمول را می‌توان با جدا کردن آن‌ها با ; ترکیب کرد.

Example

قابل ویرایش؛گرد کردن=۲
این زیر فرمول روش صحیح ترکیب هر دو رفتار را نشان می‌دهد.

موتور محاسباتی تابع سفارشی پایتون

موتور محاسباتی Custom Python Function ابزاری برای توسعه‌دهندگان است تا محاسبات سفارشی عبارات را به صورت موردی معرفی کنند. Formula نام یک تابع پایتون برای فراخوانی است و Subformula یک کلید برای بازیابی از دیکشنری بازگشتی این تابع است. از این موتور محاسباتی تنها در صورت ایجاد یک ماژول سفارشی استفاده کنید.

ستون‌ها

گزارش‌ها می‌توانند تعداد نامحدودی از ستون‌ها برای نمایش داشته باشند. هر ستون مقادیر خود را از عبارات تعریف‌شده در خطوط دریافت می‌کند. فیلد expression_label ستون، برچسب عبارات را که مقدار آن نمایش داده می‌شود، مشخص می‌کند. اگر یک خط در آن فیلد عبارتی نداشته باشد، در این ستون چیزی برای آن نمایش داده نمی‌شود. اگر به چندین ستون نیاز باشد، باید از برچسب‌های عبارت متفاوت استفاده کنید.

ستون‌های گزارش.

هنگام استفاده از ویژگی مقایسه دوره که در زیر برگه گزینه‌ها یک گزارش حسابداری قرار دارد، تمام ستون‌ها در هر دوره تکرار می‌شوند.

گروه‌بندی خطوط

گروه‌بندی غیر استاندارد با افزودن یا استفاده از فیلدهای موجود در مدل آیتم دفتر روزنامه امکان‌پذیر است، به شرطی که فیلدها مرتبط و غیر ذخیره‌شده باشند.

توجه

گروه‌بندی خطوط نیازمند گزارش‌هایی است که خطوط گزارش صریح داشته باشند و قابل ویرایش باشند. به عنوان مثال، گزارش‌های معوق از گروه‌بندی خطوط پشتیبانی نمی‌کنند زیرا از خطوط پویا که تولید می‌شوند استفاده می‌کنند.

ایجاد یک فیلد جدید در آیتم دفتر روزنامه

برای ایجاد یک فیلد مرتبط و غیر ذخیره‌شده در مدل آیتم‌های ژورنال، ابتدا به مسیر حسابداری ‣ آیتم‌های ژورنال بروید و روی آیکون (باگ) کلیک کنید، سپس روی فیلدها کلیک کنید. روی جدید کلیک کنید تا یک فیلد جدید ایجاد شود و فیلدهای زیر را تکمیل کنید:

  • نام فیلد: یک نام فنی برای فیلد

  • برچسب فیلد: برچسبی که برای فیلد نمایش داده می‌شود

  • نوع فیلد: نوع فیلدی که این فیلد مرتبط باید به آن اشاره کند

  • ذخیره‌شده: این فیلد را بدون علامت بگذارید زیرا تنها فیلدهای غیرذخیره‌شده می‌توانند برای گروه‌بندی خطوط استفاده شوند.

  • مدل مرتبط: اگر نوع فیلد one2many، many2many یا many2one باشد، مدل فیلد اصلی را برای گروه‌بندی انتخاب کنید.

  • تعریف فیلد مرتبط: مسیر فنی به فیلدی که می‌خواهید بر اساس آن گروه‌بندی کنید

    Example

    برای گروه‌بندی بر اساس تیم فروش شریک تجاری، تعریف فیلد مرتبط را به move_id.team_id تنظیم کنید.

گروه‌بندی خطوط

برای گروه‌بندی خطوط، به زبانه خطوط گزارش مورد نظر بروید، روی خطی که می‌خواهید گروه‌بندی کنید کلیک کنید و فیلد گروه‌بندی بر اساس را ویرایش کنید. نام فنی (نام فیلد) فیلدی که می‌خواهید به عنوان کلید گروه‌بندی استفاده کنید را وارد کنید.

نکته

برای مشاهده فهرستی از تمام فیلدهای مدل و نام‌های فنی آنها، به مسیر حسابداری ‣ آیتم‌های دفتر روزنامه بروید و روی آیکون (باگ) کلیک کنید، سپس روی فیلدها کلیک کنید. نام فنی هر فیلد در ستون نام فیلد فهرست شده است.