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