#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: کد نهایی نگاشت موردنظر (۶ رقمی یا بیشتر)
- id: ترکیب نوع شیء و شناسه (مثال:
ساختاردهی رکورد درجشونده
برای هر آیتم غیرتکراری:
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