Skip to main content
#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/form
Method: 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'?
↓ Yes
Check Company Type
Get operator's colleague info.
Condition: category == 7 (Holding)
↓ No
Error 406
"Access Denied"
Is Holding (Cat 7)?
↓ Yes
Fetch Children
SELECT * FROM colleagues
WHERE relationship == holding_id
↓ No
Error 406
"Not a Holding Company"
Format Output
Generate FA Title: Office + (First Name + Last Name)
Return Items