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": [...]

}