Skip to main content
#P1591

POST /v2/accounting/connections/store

Route Info

Method Endpoint Controller
POST /v2/accounting/connections/store AccountingController@storeConnection

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

این متد وظیفه ایجاد یک اتصال (Connection) و گروه‌بندی چندین رکورد مالی مختلف (مثل سندهای پرداختی، اقلام فاکتور، چک‌ها و سوابق مالی) تحت یک شناسه واحد را دارد.

  1. ابتدا یک رکورد جدید در جدول connections ایجاد می‌کند.
    • شماره سریال (serial) با استفاده از تابع کمکی StaticController::getSerialId تولید می‌شود (این تابع آخرین سریال شعبه را می‌خواند و یکی اضافه می‌کند).
  2. سپس روی آرایه ورودی items حلقه می‌زند و بر اساس type هر آیتم، جدول مربوطه را آپدیت می‌کند:
    • اگر نوع pay, wage, manual_document باشد → جدول pays آپدیت می‌شود.
    • اگر نوع fitem باشد → جدول factor_items آپدیت می‌شود.
    • اگر نوع financial_past باشد → جدول financial_pasts آپدیت می‌شود.
    • اگر نوع check باشد → جدول check_operations آپدیت می‌شود.
  3. در رکوردهای هدف، فیلد relationship برابر با ID کانکشن جدید و فیلد updated_at برابر با زمان حال تنظیم می‌شود.

پارامترهای ورودی (JSON Body)

{
  "branch": 101,
  "type": "merge_doc",    // نوع کانکشن
  "id": 500,              // شناسه آبجکت اصلی (Object ID)
  "items": [
    { "id": 101, "type": "pay" },
    { "id": 205, "type": "check" },
    { "id": 12, "type": "fitem" }
  ]
}
  • branch: شناسه شعبه (جهت تولید سریال).
  • items: آرایه‌ای از اشیاء که هر کدام شامل id رکورد هدف و type آن هستند.

خروجی (Response)

موفق (Success)

{
  "status": true,
  "time": 1715780023
}

خطا (Error)

مدیریت خطای خاصی پیاده‌سازی نشده است. اگر دیتابیس خطا دهد (مثلاً ID اشتباه باشد یا اتصال قطع شود)، خطای استاندارد لاراول (500) باز میگردد.