Skip to main content
#P1382

POST /api/v2/colleagues/billing

POST /api/v2/colleagues/billing

بخش توضیحات
آدرس مسیر POST /api/v2/colleagues/billing
کنترلر / تابع ColleaguesController → general_billingV2(Request $request)
میان‌افزارها (Middlewares) domainAccess ،, ipTrust

۱. تحلیل عملکرد

این Route برای بازیابی اطلاعات صورتحساب عمومی همکار (Colleague Billing)همکاران در نسخه دوم API طراحی شده است. تابع ابتدابر شناسهاساس مقدار ورودی در فیلد id را بررسی می‌کند تا نوع موجودیتشناسه را تشخیص می‌دهد (colleague یا personnel) و با توجه به آننوع، ماندهماندهٔ اعتباری سال جاری را محاسبهتولید و برمی‌گرداند.

۲. ورودی‌ها (Inputs)

فیلد نوع داده اجباری توضیح
id string بله شناسهٔشناسه همکار یا پرسنل. اگردر شاملصورت وجود کاراکتر - باشد،نوع نوعشخص personnel تشخیص داده می‌شود،شود؛ در غیر اینصورتاین صورت colleague.

۳. خروجی موفق (Successful Response - HTTP 200)

دربرای صورتیهمکاران که نوع colleague باشد و شناسه معتبر باشد:(colleague):

{
  "CreditLimit": 12000000,
  "CreditBalance": 4500000
}
  

مقدارفیلد CreditLimit ازبرابر فیلدبا مقدار credit_amount مدل Colleague گرفته می‌شود.است. CreditBalance تفاوتاز بینتفاضل CreditLimit و مانده (Balance)حساب محاسبه‌برگردانده‌شده توسط تابع CronController::colleaguesGeneralBilling($id) است.محاسبه می‌شود.

۴. خروجی برای پرسنل (personnel)

{
  "CreditLimit": false,
  "CreditBalance": false
}
  

۵. وابستگی‌ها (Dependencies)

  • App\Http\Controllers\Api\CronController::colleaguesGeneralBilling($id)
  • App\Models\Colleague
  • Morilog\Jalali\Jalalian برای محاسبه سالتاریخ شمسی جاری شمسی

۶. موارد خطا (Error Cases - HTTP 200)

شرط خروجی JSON
عدم یافتن همکار در جدول Colleague { "message": "اطلاعات شرکت بدرستی ارسال نشده است." }

۷. شیوهٔ تست (Testing)

درخواست باید به صورت JSON و با Header Content-Type: application/json ارسال شود. مثلاً:شود:

POST /api/v2/colleagues/billing
Headers:
  Content-Type: application/json
Body:
{
  "id": "1234"
}
  

۸. خلاصه پیاده‌سازی (Implementation Summary)

  1. دریافت مقدار $request->id
  2. تشخیص نوع شناسه بر اساس وجود کاراکتر -
  3. محاسبه سال جاری شمسی با Jalalian::forge('now')
  4. اگر نوع colleague:
    • واکشی مدل Colleague بر اساسبا id
    • فراخوانی تابع colleaguesGeneralBilling()
    • محاسبه CreditBalance = CreditLimit - Balance
  5. اگر نوع personnel → بازگرداندن خروجی ثابت false/false

🧩 مستند بالا کاملاً مطابق قالب HTML نهایی نسخهٔ ۱.۱ با قوانین چینش نهایی آماده درج در Confluence است.