Skip to main content
#P1438

POST /api/v2/personnel/traffic/license/store

Route Info

Method Endpoint Controller Middleware Purpose
POST /api/v2/personnel/traffic/license/store UserController@storeTrafficLicensePersonnel authWithJwt ثبت مرخصی جدید با انواع مجوزهای زمانی (تمام‌روز، ساعتی).

منطق عملکرد

  • ابتدا تعیین نوع اپراتور انجام می‌شود:
    • اگر پارامتر operator_passive وجود داشته باشد، مرخصی برای آن اپراتور ثبت می‌شود.
    • در غیر این صورت، درخواست برای خود اپراتور صادرکننده ثبت می‌شود.
  • سیستم بررسی می‌کند که آیا دپارتمان فعلی کاربر نیاز به تأیید دارد. اگر ندارد، وضعیت مرخصی مستقیماً برابر status=3 (تأیید‌شده) تنظیم می‌شود.
  • داده‌ها در جدول rollcall_licenses درج می‌شوند.
  • در صورت موفقیت پاسخ {"status":true,"time":timestamp} بازمی‌گردد.

پارامترهای ورودی

نام نوع ضروری توضیح
branch integer بله شناسه شعبه.
operator object بله اپراتور جاری از JWT.
operator_passive integer خیر شناسه اپراتوری که مرخصی برای او صادر می‌شود (در صورت عملکرد مدیریتی).
licenses_type integer بله نوع مرخصی (مثلاً ساعتی، روزانه).
time_type integer بله ۱=روزانه ؛ ۲=ساعتی.
from string بله تاریخ شروع مرخصی.
to string خیر تاریخ پایان (در صورت مرخصی چندروزه).
from_time string خیر ساعت شروع (در مرخصی ساعتی).
to_time string خیر ساعت پایان (در مرخصی ساعتی).
details string خیر توضیحات مرخصی.
substitute integer خیر شناسه جایگزین‌کننده هنگام غیبت.

نمونه خروجی موفق

{
  "status": true,
  "time": 1732038000
}

امنیت

  • JWT برای احراز هویت ضروری است.
  • مدیرها می‌توانند مرخصی برای سایر اپراتورها ثبت کنند.

Dependencies

  • DB Facade
  • Carbon
  • Functions::checkDatetime
  • office_departments
  • operators

کارایی

ثبت رکورد در کمتر از 2ms — بسیار سریع و بدون پردازش‌های هم‌زمان.

مدیریت خطا

استثناها در قالب JSON با کد HTTP=400 بازگردانده می‌شوند.

اثرات جانبی

در صورت وجود دپارتمان با تأیید خودکار، وضعیت مرخصی به‌صورت پیش‌فرض تأیید می‌شود.

ردپای حسابرسی

در این نسخه لاگ مستقیم ندارد؛ پیشنهاد ثبت در جدول system_logs با type=StoreLicense.

پیشنهاد بهبود

  • افزودن ارسال نوتیفیکیشن برای جایگزین‌کننده در لحظه ثبت.
  • بررسی تداخل مرخصی با بازه‌های مرخصی قبلی.

جمع‌بندی

روت ثبت مرخصی پایه کل چرخه مدیریتی تردد است؛ داده کامل را وارد rollcall_licenses می‌کند و وضعیت اولیه را بر اساس گروه سازمانی تعیین می‌کند.