Skip to main content
#P1606

POST /v2/manual-document/preferences/list/details

Route Info

Method Endpoint Controller Middleware
POST /v2/manual-document/preferences/list/details AccountingController@preferenceDetails authWithJwt

شرح عملکرد (Functionality)

این مسیر برای دریافت جزئیات کامل معین (Moeen) و تفصیل (Preference) استفاده می‌شود. ورودی شامل آرایه‌ای از رکوردها است که هر کدام شامل:

  • moeen: کد معین ۶ رقمی
  • preference: کد تفصیل ۹ رقمی (pref code)

این متد با منطق زیر کار می‌کند:

  • استخراج کدهای group/general/moeen از کد اصلی ۶ رقمی
  • اعتبارسنجی وجود داشتن:
    • accounting_groups
    • accounting_generals
    • accounting_moeens
  • بازگرداندن اطلاعات کامل معین شامل:
    • id
    • serialId
    • aggregation
    • title + کد کامل
  • تشخیص نوع تفصیل از روی ۲ رقم اول کد و استخراج اطلاعات آن از جداول مربوطه:
    (accounts / offices / colleague / personnel / references / customers / titles / announcement)
  • در صورت عدم یافتن هر جزء، پاسخ خطـا ۴۲۲ برگردانده می‌شود.

پارامترهای ورودی (JSON Body)

Body:

{
  "data": [
    {
      "moeen": "110203",
      "preference": 120000145
    }
  ],
  "branch": 1
}
  • data: آرایه‌ای از آیتم‌ها
  • moeen: رشته/عدد با ۶ رقم (گروه + کل + معین)
  • preference: کد کامل تفصیل
  • branch: شناسه شعبه

خروجی موفق (Success Response)

در صورت موفقیت، خروجی شامل آرایه‌ای از آیتم‌های پردازش شده:

{
  "items": [
    {
      "moeen": {
        "id": 25,
        "serialId": 25,
        "details": {
          "aggregation": 1
        },
        "code": "110203",
        "text": "110203 - فروش | فروش داخلی"
      },
      "preference": {
        "id": "title-15",
        "code": 120000145,
        "table": "title",
        "text": "هزینه تعمیرات",
        "financial": false
      }
    }
  ],
  "meta": {
    "timestamp": 1718453500
  }
}

خطاهای اعتبارسنجی (Error Response 422)

اگر هر بخش از گروه، کل یا معین وجود نداشته باشد:

{
  "error": {
    "code": 1000,
    "message": "گروه حسابداری با کد 11 در معین 110203 وجود ندارد"
  },
  "meta": {
    "timestamp": 1718453500
  }
}

اگر تفصیل وجود نداشته باشد:

{
  "error": {
    "code": 1000,
    "message": "تفصیل با کد 120000999 وجود ندارد"
  },
  "meta": {
    "timestamp": 1718453500
  }
}

ساختار استخراج کد معین (Moeen Code Structure)

برای هر کد ۶ رقمی مثلاً 110203:

  • group = 11
  • general = 02
  • moeen = 03

این ۳ بخش به‌ترتیب روی جداول زیر اعتبارسنجی می‌شوند:

  • accounting_groups
  • accounting_generals
  • accounting_moeens

تشخیص نوع تفصیل بر اساس ۲ رقم اول کد

پیشوند نوع جدول مرتبط
10 حساب بانکی accounting_accounts
12 عنوان‌ها titles
13 پرسنل / اپراتور operators
20 همکار colleagues
21 اعلان announcement
30 مرکز هزینه offices
40 فاکتور (reference) factors + customers
80 مشتری customers

نمونه خروجی تفصیل برای انواع مختلف

1 — Bank Account (prefix 10)

{
  "id": "account-12",
  "code": 100000532,
  "text": "بانک ملت شعبه مرکزی (1234567890)"
}

2 — Personnel (prefix 13)

{
  "id": "personnel-88",
  "code": 130001234,
  "text": "مهدی احمدی"
}

3 — Office (prefix 30)

{
  "id": "office-7",
  "code": 300000215,
  "text": "مرکز هزینه اداره مرکزی"
}

Meta

تمام پاسخ‌ها شامل:

  • timestamp: زمان Unix
  • HTTP Status:
    • 200 در صورت موفقیت
    • 422 در صورت خطا