#P1784
GET /b2c/v1/cost-center/list/form
Get Cost Centers List (Form)
این اندپوینت جهت دریافت لیست مراکز هزینه (Cost Centers) برای فرمها استفاده میشود.
محدودیت دسترسی: این سرویس صرفاً مخصوص کاربران B2B (همکاران) است که شرکت آنها در سطح هلدینگ (Category 7) تعریف شده باشد. هلدینگها از این طریق لیست زیرمجموعههای خود (که فیلد relationship آنها برابر با شناسه هلدینگ است) را دریافت میکنند.
Fetch Cost Centers
URL:
/b2c/v1/cost-center/list/formMethod: GET
Controller: V1UserController@getCostCenterForRequest
Auth: Required (Bearer Token)
Headers (الزامی)
| Header Name | Description |
|---|---|
| Authorization | توکن احراز هویت (Bearer Token). |
Response Structure (Success)
| Key | Type | Description |
|---|---|---|
| items | Array | لیست مراکز هزینه (زیرمجموعههای هلدینگ). |
| ↳ id | Integer | شناسه مرکز هزینه (Colleague ID). |
| ↳ title | Object | عنوان نمایشی مرکز هزینه. |
| ↳ title.fa | String | عنوان فارسی (ترکیب نام آفیس + نام و نام خانوادگی مسئول). |
| ↳ title.en | String | عنوان انگلیسی آفیس. |
| meta.timestamp | Timestamp | زمان تولید پاسخ. |
Example Responses
۱. موفقیت آمیز (کاربر هلدینگ):
{
"items": [
{
"id": 205,
"title": {
"fa": "دپارتمان مالی - علی رضایی",
"en": "Finance Department"
}
},
{
"id": 208,
"title": {
"fa": "شعبه شمال تهران",
"en": "North Branch"
}
}
],
"meta": {
"timestamp": 1702155000
}
}
۲. خطا - عدم دسترسی (کاربر معمولی یا شرکت غیر هلدینگ):
{
"error": {
"code": 1000,
"message": "دسترسی فقط برای همکاران سطح هلدینگ امکانپذیر است."
},
"meta": {
"timestamp": 1702155005
}
}
Technical Logic
Request Received
↓
Group check:
is 'colleague' OR 'b2b'?
is 'colleague' OR 'b2b'?
↓ Yes
Check Company Type
Get operator's colleague info.
Condition:
Get operator's colleague info.
Condition:
category == 7 (Holding)↓ No
Error 406
"Access Denied"
"Access Denied"
↓
Is Holding (Cat 7)?
↓ Yes
Fetch Children
WHERE
SELECT * FROM colleaguesWHERE
relationship == holding_id↓ No
Error 406
"Not a Holding Company"
"Not a Holding Company"
↓
Format Output
Generate FA Title: Office + (First Name + Last Name)
Generate FA Title: Office + (First Name + Last Name)
↓
Return Items