#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 میکند و وضعیت اولیه را بر اساس گروه سازمانی تعیین میکند.