Skip to main content
#P1585

POST /v2/accounting/account

Route Info

Method Endpoint Controller
POST /v2/accounting/account AccountingController@accountStore

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

این متد وظیفه ثبت یک حساب بانکی یا صندوق جدید در سیستم را بر عهده دارد. برخلاف متد نمایش، این متد داده‌های دریافت شده از کلاینت را به فرمت عددی و دیتابیسی تبدیل (Reverse Mapping) می‌کند.

  • تولید سریال (Serial Generation):
    شناسه سریال حساب به صورت خودکار توسط تابع کمکی StaticController::getSerialId بر اساس نوع موجودیت ("account") و شعبه مربوطه تولید می‌شود.
  • تبدیل داده‌ها (Data Mapping):
    • نوع حساب: ورودی cash به 2 و سایر مقادیر به 1 تبدیل می‌شوند.
    • ارز: ورودی rials به 0 و سایر مقادیر به 1 تبدیل می‌شوند.
    • وضعیت‌ها: فیلدهای بولین (مانند check, pos, online) در صورت وجود یا true بودن به 1 و در غیر این صورت به null تبدیل می‌شوند.
  • ذخیره‌سازی (Database Insert):
    داده‌ها در جدول accounting_accounts درج می‌شوند. تاریخ ایجاد و ویرایش نیز با زمان فعلی سرور تنظیم می‌شود.

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

ساختار جیسون ارسالی باید به شکل زیر باشد:

{
    "branch": 2,               // شناسه شعبه
    "bank": 12,                // شناسه بانک از لیست بانک‌ها
    "account_number": "123456",// شماره حساب
    "card": "6037...",         // شماره کارت (اختیاری)
    "sheba": "IR00...",        // شماره شبا (اختیاری)
    "type": "bank",            // نوع: "bank" یا "cash"
    "currency": "rials",       // ارز: "rials" یا "currency"
    "check": true,             // آیا دسته چک دارد؟
    "status": 1,               // وضعیت فعال/غیرفعال
    "branch": {                // آبجکت اطلاعات شعبه
        "code": "101",
        "title": "مرکزی"
    },
    "pos": {                   // تنظیمات پوز
        "status": true,
        "code": "990011"       // سریال پوز
    },
    "gateway": {               // تنظیمات درگاه آنلاین
        "status": false,
        "data": null
    }
}

خروجی (Response)

موفقیت (Success):

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

خطا (Error):

در صورت بروز خطای سیستمی (مثلاً دیتابیس یا فرمت داده):

{
    "status": false,
    "time": 1715772005,
    "code": 0,
    "message": "SQLSTATE[23000]: Integrity constraint violation...",
    "trace": [...]
}