#P1584
GET /v2/accounting/account
Route Info
| Method | Endpoint | Controller |
| GET | /v2/accounting/account | AccountingController@accountIndex |
شرح عملکرد (Functionality)
این متد جزئیات کامل یک حساب تفضیلی/بانکی خاص را برمیگرداند. تفاوت اصلی این متد با لیستگیری، در نرمالسازی (Normalize) دادهها و دستهبندی اطلاعات در آبجکتهای تو در تو است.
- دریافت اطلاعات (Join Query):
اطلاعات از جدولaccounting_accountsدریافت شده و با جدولaccounting_banksجوین میشود تا نام و لوگوی بانک رزرو شود. - ترجمه وضعیتها (Status Mapping):
- نوع حساب (type): اگر مقدار دیتابیس
2باشد، به عنوانcash(صندوق) و در غیر این صورتbankخروجی داده میشود. - واحد پولی (currency): اگر
0باشد،rialsو در غیر این صورتcurrency(ارزی) در نظر گرفته میشود.
- نوع حساب (type): اگر مقدار دیتابیس
- ساختار درختی (Nested Objects):
اطلاعات مربوط به درگاه پرداخت (gateway)، دستگاه پوز (pos)، بانک (bank) و شعبه (branch) در آبجکتهای مجزا دستهبندی میشوند تا پارس کردن آن در فرانتاند سادهتر باشد.
پارامترهای ورودی (Input Parameters)
| نام پارامتر | نوع | الزامی؟ | توضیحات |
|---|---|---|---|
| id | Integer | بله | شناسه یکتای حساب مورد نظر در جدول accounting_accounts. |
نمونه خروجی موفق (Success Response)
{
"status": true,
"time": 1715768000,
"data": {
"id": 15,
"bank": {
"id": 3,
"title": "بانک ملی ایران",
"logo": "melli.png"
},
"account_number": "010555666777", // مپ شده از فیلد number
"card": "6037991122334455",
"sheba": "IR55017000000010555666777",
"check": 1, // وضعیت دستهچک (دارد/ندارد)
"type": "bank", // یا "cash"
"currency": "rials", // یا "currency"
"branch": {
"code": "1245",
"title": "شعبه مرکزی"
},
"pos": {
"code": "998877", // سریال دستگاه پوز
"status": true // آیا متصل است؟
},
"gateway": {
"data": "merchant_id_example", // اطلاعات اتصال درگاه
"status": true
},
"status": 1,
"created_at": "2023-01-01 12:00:00"
}
}
نمونه خروجی خطا (Error Response)
در صورت بروز هرگونه خطا (مانند پیدا نشدن رکورد یا خطای دیتابیس):
{
"status": false,
"time": 1715768005,
"code": 0, // کد خطا
"message": "Attempt to read property \"id\" on null", // متن خطا
"trace": [...] // جزئیات فنی برای دیباگ
}