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

<div id="bkmrk-" style="direction: rtl; font-family: Vazir, Tahoma; line-height: 1.95; text-align: justify;">  </div>### Route Info

<div id="bkmrk-method-endpoint-cont" style="direction: rtl; font-family: Vazir, Tahoma; line-height: 1.95; text-align: justify;"><table border="1" style="width: 100%; border-collapse: collapse; text-align: center;"><tbody><tr style="background: #f4f4f4; font-weight: bold;"><td style="padding: 10px;">Method</td><td style="padding: 10px;">Endpoint</td><td style="padding: 10px;">Controller</td><td style="padding: 10px;">Middleware</td></tr><tr><td style="direction: ltr; padding: 10px;">POST</td><td style="direction: ltr; padding: 10px;">/v2/manual-document/preferences/list/details</td><td style="direction: ltr; padding: 10px;">AccountingController@preferenceDetails</td><td style="direction: ltr; padding: 10px;">authWithJwt</td></tr></tbody></table>

  </div>### شرح عملکرد (Functionality)

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

<div id="bkmrk-moeen%3A-%DA%A9%D8%AF-%D9%85%D8%B9%DB%8C%D9%86-%DB%B6-%D8%B1%D9%82%D9%85" style="direction: rtl; font-family: Vazir, Tahoma; line-height: 1.95; text-align: justify;">- `moeen`: کد معین ۶ رقمی
- `preference`: کد تفصیل ۹ رقمی (pref code)

</div>این متد با منطق زیر کار می‌کند:

<div id="bkmrk-%D8%A7%D8%B3%D8%AA%D8%AE%D8%B1%D8%A7%D8%AC-%DA%A9%D8%AF%D9%87%D8%A7%DB%8C-group%2F" style="direction: rtl; font-family: Vazir, Tahoma; line-height: 1.95; text-align: justify;">- استخراج کدهای group/general/moeen از کد اصلی ۶ رقمی
- اعتبارسنجی وجود داشتن: 
    - accounting\_groups
    - accounting\_generals
    - accounting\_moeens
- بازگرداندن اطلاعات کامل معین شامل: 
    - id
    - serialId
    - aggregation
    - title + کد کامل
- تشخیص نوع تفصیل از روی ۲ رقم اول کد و استخراج اطلاعات آن از جداول مربوطه:   
    (accounts / offices / colleague / personnel / references / customers / titles / announcement)
- در صورت عدم یافتن هر جزء، پاسخ خطـا ۴۲۲ برگردانده می‌شود.

  </div>### پارامترهای ورودی (JSON Body)

**Body:**

```
{
  "data": [
    {
      "moeen": "110203",
      "preference": 120000145
    }
  ],
  "branch": 1
}
```

<div id="bkmrk-data%3A-%D8%A2%D8%B1%D8%A7%DB%8C%D9%87%E2%80%8C%D8%A7%DB%8C-%D8%A7%D8%B2-%D8%A2%DB%8C" style="direction: rtl; font-family: Vazir, Tahoma; line-height: 1.95; text-align: justify;">- **data**: آرایه‌ای از آیتم‌ها
- **moeen**: رشته/عدد با ۶ رقم (گروه + کل + معین)
- **preference**: کد کامل تفصیل
- **branch**: شناسه شعبه

  </div>### خروجی موفق (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
  }
}
```

<div id="bkmrk--1" style="direction: rtl; font-family: Vazir, Tahoma; line-height: 1.95; text-align: justify;">  </div>### خطاهای اعتبارسنجی (Error Response 422)

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

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

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

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

<div id="bkmrk--2" style="direction: rtl; font-family: Vazir, Tahoma; line-height: 1.95; text-align: justify;">  </div>### ساختار استخراج کد معین (Moeen Code Structure)

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

<div id="bkmrk-group-%3D-11-general-%3D" style="direction: rtl; font-family: Vazir, Tahoma; line-height: 1.95; text-align: justify;">- **group** = 11
- **general** = 02
- **moeen** = 03

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

<div id="bkmrk-accounting_groups-ac" style="direction: rtl; font-family: Vazir, Tahoma; line-height: 1.95; text-align: justify;">- **accounting\_groups**
- **accounting\_generals**
- **accounting\_moeens**

  </div>### تشخیص نوع تفصیل بر اساس ۲ رقم اول کد

<div id="bkmrk-%D9%BE%DB%8C%D8%B4%D9%88%D9%86%D8%AF-%D9%86%D9%88%D8%B9-%D8%AC%D8%AF%D9%88%D9%84-%D9%85%D8%B1%D8%AA%D8%A8" style="direction: rtl; font-family: Vazir, Tahoma; line-height: 1.95; text-align: justify;"><table border="1" style="width: 100%; border-collapse: collapse; text-align: center;"><tbody><tr style="background: #f4f4f4; font-weight: bold;"><td>پیشوند</td><td>نوع</td><td>جدول مرتبط</td></tr><tr><td>10</td><td>حساب بانکی</td><td>accounting\_accounts</td></tr><tr><td>12</td><td>عنوان‌ها</td><td>titles</td></tr><tr><td>13</td><td>پرسنل / اپراتور</td><td>operators</td></tr><tr><td>20</td><td>همکار</td><td>colleagues</td></tr><tr><td>21</td><td>اعلان</td><td>announcement</td></tr><tr><td>30</td><td>مرکز هزینه</td><td>offices</td></tr><tr><td>40</td><td>فاکتور (reference)</td><td>factors + customers</td></tr><tr><td>80</td><td>مشتری</td><td>customers</td></tr></tbody></table>

  </div>### نمونه خروجی تفصیل برای انواع مختلف

**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": "مرکز هزینه اداره مرکزی"
}
```

<div id="bkmrk--3" style="direction: rtl; font-family: Vazir, Tahoma; line-height: 1.95; text-align: justify;">  </div>### Meta

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

<div id="bkmrk-timestamp%3A-%D8%B2%D9%85%D8%A7%D9%86-unix" style="direction: rtl; font-family: Vazir, Tahoma; line-height: 1.95; text-align: justify;">- `timestamp`: زمان Unix
- HTTP Status: 
    - 200 در صورت موفقیت
    - 422 در صورت خطا

</div>