Skip to main content
#P1611

POST /v2/accounting/preference

Route Info

Method Endpoint Controller Middleware
POST /v2/accounting/preference AccountingController@storeMappingPreferences authWithJwt

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

این API برای ثبت نگاشت‌های حسابداری در جدول mapping_accounting_preferences استفاده می‌شود. ورودی به‌صورت مجموعه‌ای از آیتم‌ها در فیلد items ارسال می‌شود. برای هر آیتم:

  • ابتدا بررسی می‌شود آیا کد (code) قبلاً در همین شعبه ثبت شده یا خیر.
  • اگر تکراری باشد → به آرایه error افزوده می‌شود.
  • اگر جدید باشد → اطلاعات ساختاردهی شده و آماده Insert می‌شود.

در انتها، اگر هیچ خطایی وجود نداشته باشد، همه رکوردهای جدید به صورت Batch درج می‌شوند.

ورودی مورد نیاز (JSON Body)

ساختار کلی:

{
  "branch": 1,
  "items": [
    {
      "id": "customer-24",
      "text": "24 - مشتری عمده",
      "code": "110201"
    },
    {
      "id": "office-3",
      "text": "301 - دفتر مرکزی",
      "code": "880030"
    }
  ]
}

جزئیات فیلدها:

  • branch شناسه شعبه (ضروری)
  • items: آرایه‌ای از نگاشت‌ها هر آیتم شامل:
    • id: ترکیب نوع شیء و شناسه (مثال: customer-24)
    • text: رشته شامل کد سیستمی و نام خوانا (مثال: "24 - مشتری")
    • code: کد نهایی نگاشت موردنظر (۶ رقمی یا بیشتر)

ساختاردهی رکورد درج‌شونده

برای هر آیتم غیرتکراری:

  • object_type از بخش اول id (مثال: customer)
  • object از بخش دوم id (مثال: 24)
  • system_code اولین بخش text قبل از خط تیره
  • title بخش آخر text بعد از آخرین خط تیره
  • code همان کد نهایی ارسال‌شده توسط کاربر
  • branch از ورودی
  • updated_at = زمان فعلی

پاسخ موفق (Success Response)

در صورت عدم وجود خطا و انجام موفق درج:

{
  "payload": true,
  "error": false,
  "meta": {
    "timestamp": 1733056000
  }
}

پاسخ در صورت وجود خطا برای برخی آیتم‌ها

اگر بخشی از آیتم‌ها Duplicate باشند:

{
  "payload": true,
  "error": [
    {
      "message": "این کد قبلا ثبت شده است.",
      "code": "110201"
    }
  ],
  "meta": {
    "timestamp": 1733056000
  }
}

خطای عدم ارسال فیلد items

{
  "error": {
    "message": "The items field is required."
  },
  "meta": {
    "timestamp": 1733056000
  }
}

وابستگی دیتابیس

Table Description
mapping_accounting_preferences نگاشت حسابداری برای انواع موجودیت‌ها

Meta

  • HTTP Status Code: 200
  • Batch Insert: فعال
  • Duplicate Check: مبتنی بر code + branch