Skip to main content
#P1613

PUT /v2/accounting/preference/{id}

Route Info

Method Endpoint Controller Middleware
PUT /v2/accounting/preference/{id} AccountingController@updateMappingPreferences authWithJwt

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

این API برای ویرایش یک نگاشت حسابداری در جدول mapping_accounting_preferences استفاده می‌شود.

منطق مسیر شامل مراحل زیر است:

  • بررسی یکتا بودن code در همان شعبه (به‌جز رکورد جاری).
  • تجزیه id به object_type و object.
  • تجزیه text برای استخراج:
    • system_code → بخش اول متن
    • title → آخرین بخش متن
  • به‌روزرسانی رکورد در دیتابیس.
  • بازگردانی رکورد ویرایش‌شده.

ساختار ورودی (JSON Body)

{
  "branch": 1,
  "id": "customer-24",
  "text": "24 - مشتری عمده",
  "code": "110201"
}

توضیح فیلدها

  • branch شناسه شعبه
  • id ساختار {object_type}-{object}، مثال:
    • customer-24
    • office-3
  • text رشته‌ای شامل کد سیستمی و عنوان قابل نمایش مثال: "24 - مشتری عمده"
  • code کد نهایی نگاشت (۶ رقمی یا بیشتر)

اعتبارسنجی

قبل از ذخیره، بررسی می‌شود که آیا کد جدید در همان شعبه قبلاً استفاده شده است یا خیر:

exists where:
  branch = request.branch
  code = request.code
  id != {id}

اگر رکوردی با همین کد وجود داشته باشد، به‌جای به‌روزرسانی، خطا بازگردانده می‌شود.

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

در صورت به‌روزرسانی موفق، رکورد کامل جدید بازگردانده می‌شود:

{
  "payload": {
    "id": 12,
    "branch": 1,
    "object_type": "customer",
    "object": 24,
    "title": "مشتری عمده",
    "system_code": "24",
    "code": "110201",
    "updated_at": "2024-07-21T10:00:00.000000Z"
  },
  "meta": {
    "timestamp": 1733056000
  }
}

پاسخ خطا (Error Response)

اگر کد تکراری باشد:

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

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

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

Meta

  • HTTP Status Code: 200
  • Operation: Update
  • Validation: Unique per branch (except current record)