پرش به محتویات

موتور محاسبات استهلاک (Depreciation Calculation Engine)

مسیر دسترسی: دارایی ثابت > عملیات > محاسبه استهلاک نام فنی: DepreciationRun

۱. مقدمه و فلسفه وجودی

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

موتور استهلاک تابان یک ماشین‌حساب ساده نیست؛ بلکه یک موتور پردازش دسته‌ای (Batch Processing Engine) است که می‌تواند در عرض چند دقیقه، محاسبات پیچیده هزاران دارایی را برای "دفاتر مختلف" (مالیاتی/داخلی) انجام دهد و سند حسابداری صادر کند.

اصول کلیدی موتور:

  1. دقت زمانی: پشتیبانی از محاسبات روزانه (Daily) و ماهانه (Monthly).
  2. چند دفتری: توانایی محاسبه همزمان برای دفتر مالیاتی (طبق قانون) و دفتر مدیریتی (طبق واقعیت).
  3. جلوگیری از منفی شدن: ارزش دفتری (NBV) هرگز نباید از "ارزش اسقاط" کمتر شود.

۲. روش‌های محاسباتی (Supported Methods)

ERP تابان از ۴ روش استاندارد جهانی و ایران پشتیبانی می‌کند:

الف) خط مستقیم (Straight Line - SL)

  • منطق: استهلاک در طول عمر دارایی ثابت است. رایج‌ترین روش در ایران.
  • فرمول:

    \[هزینه = \frac{(بهای تمام شده - ارزش اسقاط)}{عمر مفید}\]

ب) نزولی (Declining Balance - DB)

  • منطق: استهلاک در سال‌های اول بیشتر است. (مناسب برای ماشین‌آلات و خودروها). منطبق با اصلاحیه ماده ۱۴۹ ق.م.م.
  • فرمول:

    \[هزینه = ارزش دفتری اول دوره \times نرخ\]
  • نکته: وقتی ارزش دفتری به حدی برسد که روش خطی به صرفه‌تر باشد، سیستم می‌تواند اتوماتیک سوئیچ کند (Switch over).

ج) تعداد تولید / کارکرد (Units of Production)

  • منطق: استهلاک بر اساس "میزان کارکرد" است نه زمان.
  • سناریو: یک کامیون معدن که عمرش ۳۰۰,۰۰۰ کیلومتر است. اگر یک ماه خوابیده باشد، استهلاکش صفر است.
  • پیش‌نیاز: باید ماهانه کارکرد (کنتور) دستگاه در سیستم ثبت شود.

د) مجموع سنوات (Sum of Years' Digits)

  • منطق: روشی نزولی که کمتر استفاده می‌شود اما برخی صنایع خاص به آن نیاز دارند.

۳. چرخه عملیات پایان ماه (The Monthly Run)

حسابدار اموال در پایان هر ماه (یا سال)، فرآیند زیر را طی می‌کند:

گام ۱: ایجاد پیشنهاد (Create Proposal)

کاربر دوره مالی (مثلاً "دی ۱۴۰۲") را انتخاب می‌کند. سیستم محاسبات را انجام می‌دهد اما سند نمی‌زند.

  • خروجی این مرحله یک "لیست پیش‌نویس" است.
  • کاربر چک می‌کند: "چرا استهلاک لیفتراک صفر شده؟" -> "آهان، چون وضعیتش راکد بود."

گام ۲: بررسی و اصلاح (Review)

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

گام ۳: تایید و صدور سند (Post)

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

  1. استهلاک محاسبه شده در کارت دارایی (فیلد "استهلاک انباشته") می‌نشیند.
  2. سند حسابداری (Voucher) در دفتر کل صادر می‌شود.

۴. منطق‌های پیچیده (Advanced Logic)

۴-۱. قرارداد زمانی (Proration Convention)

اگر دارایی را در ۱۵‌م ماه بخریم، استهلاک این ماه چطور حساب می‌شود؟

  • روش دقیق (Actual Days): دقیقاً برای ۱۵ روز محاسبه می‌شود.
  • روش ماهانه (Monthly):
    • اگر خرید قبل از ۱۵م باشد -> کل ماه محاسبه می‌شود.
    • اگر خرید بعد از ۱۵م باشد -> از ماه بعد شروع می‌شود.
  • روش سالانه (Half-Year): (رایج در آمریکا، کمتر در ایران) ۶ ماه اول حساب می‌شود.

سیستم تابان قابلیت تنظیم این قانون را در سطح "دفتر استهلاک" دارد.

۴-۲. تعدیلات (Adjustments)

اگر وسط سال (مثلاً برج ۴)، ارزش دارایی تجدید ارزیابی شود یا عمر مفیدش از ۱۰ سال به ۱۲ سال تغییر کند:

  • سیستم از برج ۴ به بعد، بر اساس «ارزش دفتری جدید» و «عمر باقیمانده جدید» قسط‌ها را دوباره می‌چیند (Recalculate).

۴-۳. توقف استهلاک (Suspension)

برای دارایی‌هایی که وضعیتشان به "نگهداری برای فروش" تغییر کرده، موتور به صورت خودکار استهلاک را صفر در نظر می‌گیرد، حتی اگر کاربر اشتباهاً آن‌ها را در لیست محاسبه قرار دهد.


۵. جزئیات فرم محاسبه (Run Dialog)

عنوان فیلد الزامی؟ شرح
تاریخ سند (Posting Date) بله تاریخی که سند در حسابداری ثبت می‌شود (مثلاً ۳۰/۱۰/۱۴۰۲).
تا تاریخ (Depreciation To) بله محاسبات تا چه روزی انجام شود؟
دفتر استهلاک بله برای کدام دفتر محاسبه کنیم؟ (مالیاتی یا داخلی).
شرح سند خیر مثلاً: "هزینه استهلاک دارایی‌های ثابت - دی ماه".
خلاصه سازی؟ (Summarize) بله آیا برای هر دارایی یک سطر سند بزند (خیر) یا برای هر مرکز هزینه تجمیع کند (بله)؟ پیشنهاد: بله.
فیلترها خیر امکان اجرا برای یک "گروه خاص" یا "مرکز هزینه خاص".

۶. سناریوهای کاربردی (Use Cases)

سناریوی ۱: استفاده از "سپر مالیاتی" (بخش خصوصی)

شرکت سودده است و می‌خواهد مالیات کمتری بدهد.

  • مدیر مالی روش استهلاک ماشین‌آلات جدید را «نزولی» انتخاب می‌کند.
  • نتیجه: در سال‌های اول، هزینه استهلاک بسیار بالاست -> سود کاهش می‌یابد -> مالیات کمتر می‌شود.
  • موتور تابان این محاسبات نمایی را دقیق انجام می‌دهد.

سناریوی ۲: دارایی‌های فصلی (کارخانجات قند/رب)

کارخانه فقط ۳ ماه در سال کار می‌کند.

  • روش استهلاک: «میزان تولید».
  • در ۹ ماه بیکاری، استهلاک ماشین‌آلات صفر است (چون تولید صفر است).
  • این روش باعث می‌شود قیمت تمام شده محصول در فصل تولید واقعی‌تر باشد.

۷. تعامل با سایر بخش‌ها (Integration)

  1. با دفتر کل (GL Integration):

    • خروجی نهایی یک سند است:
      • بدهکار: هزینه استهلاک (کد معین از "طبقه دارایی" + کد تفصیلی از "مرکز هزینه").
      • بستانکار: استهلاک انباشته (کد معین از "طبقه دارایی").
  2. با بهای تمام شده (Cost Accounting):

    • هزینه استهلاک محاسبه شده، مستقیماً به عنوان «سربار ساخت» به ماژول بهای تمام شده محصول تزریق می‌شود.

۸. ملاحظات فنی برای توسعه‌دهندگان (Developer Notes)

الف) پردازش موازی (Parallel Processing)

محاسبه ۱۰,۰۰۰ دارایی برای ۱۲ ماه، یعنی ۱۲۰,۰۰۰ عملیات ریاضی.

  • نباید روی Thread اصلی UI اجرا شود.
  • باید از Task یا Background Job استفاده شود و کاربر در نوتیفیکیشن نتیجه را ببیند.

ب) خاصیت بازگشت‌پذیری (Idempotency)

اگر کاربر اشتباهاً دکمه محاسبه را ۲ بار زد، نباید استهلاک ۲ بار سند بخورد!

  • سیستم باید چک کند: "آیا برای این ماه قبلاً سند صادر شده؟"
  • اگر بله -> خطا بدهد یا پیشنهاد "حذف سند قبلی و محاسبه مجدد" بدهد.

ج) خطای گرد کردن (Rounding Errors)

در محاسبات مالی، 100 / 3 * 3 نباید بشود 99.99.

  • همیشه از نوع داده DECIMAL (با ۴ رقم اعشار) استفاده کنید و در مرحله آخر (قبل از صدور سند) طبق تنظیمات دفتر گرد کنید (Round). مابه التفاوت گرد کردن معمولاً در آخرین ماه سال تسویه می‌شود.

۹. پرسش‌های متداول (FAQ)

س: اگر استهلاک ماهی را فراموش کنیم (مثلاً تیر جا بیفتد) و در مرداد محاسبه کنیم چه می‌شود؟

  • پاسخ: موتور هوشمند تابان، "Catch-up" می‌کند. یعنی در مرداد متوجه می‌شود تیر محاسبه نشده، پس استهلاک تیر + مرداد را در یک سند (یا دو سند جدا) محاسبه می‌کند.

س: آیا می‌توانیم سند استهلاک را دستی تغییر دهیم؟

  • پاسخ: خیر. سندهای سیستمی (System Generated) معمولاً قفل هستند. اگر اشتباه است، باید محاسبه را Reverse (معکوس) کنید، اطلاعات دارایی را اصلاح کنید و دوباره محاسبه کنید.

س: دارایی که "کاملاً مستهلک شده" (Fully Depreciated) چه می‌شود؟

  • پاسخ: ارزش دفتری‌اش به ۱ ریال (یا ارزش اسقاط) می‌رسد و استهلاک متوقف می‌شود. اما دارایی همچنان در لیست "فعال" می‌ماند تا زمانی که رسماً "اسقاط" یا "فروخته" شود.