#P1553
PUT /personnel/shift
Route Info
| Method |
Endpoint |
Controller |
Middleware |
Purpose |
| PUT |
/personnel/shift |
OfficialController@shiftWorkUpdate |
authWithJwt |
ویرایش اطلاعات یک شیفت کاری موجود |
منطق عملکرد تابع
تابع shiftWorkUpdate برای بهروزرسانی دادههای شیفت قبلی طراحی شده است. این تابع بررسی میکند که شیفت با id ارسالی وجود دارد و سپس اطلاعات جدید را در همان رکورد ذخیره میکند.
- بررسی وجود مجوز دسترسی (Admin / HR).
- یافتن رکورد شیفت بر اساس شناسه ورودی.
- اعتبارسنجی ورودیها و کنترل تداخل زمانی احتمالی با سایر شیفتها.
- اعمال تغییرات در دیتابیس و تولید پاسخ استاندارد JSON.
پارامترهای ورودی
| نام |
محل |
نوع |
الزامی |
توضیح |
| id |
Body |
integer |
بله |
شناسه شیفت موردنظر برای ویرایش |
| title |
Body |
string |
خیر |
عنوان جدید برای شیفت |
| start |
Body |
string |
خیر |
ساعت شروع جدید (HH:mm) |
| end |
Body |
string |
خیر |
ساعت پایان جدید (HH:mm) |
| status |
Body |
integer |
خیر |
۱ برای فعال، ۰ برای غیرفعال |
| description |
Body |
string |
خیر |
توضیح اختیاری |
ساختار خروجی
{
"status": true,
"time": 1732369760,
"data": {
"id": 24,
"title": "شیفت عصر سیستم فروش",
"start": "16:00",
"end": "23:00",
"status": 1,
"description": "تغییر ساعت شروع به ۱۶",
"updated_at": "1404/08/03 15:21:43"
}
}
نکات امنیتی
- تنها HR و Admin مجاز به ویرایش شیفت هستند.
- در صورت تداخل زمانی، بروزرسانی انجام نمیشود و خروجی ۴۰۹ بازگردانده میشود.
عملکرد
- زمان اجرای کوئری بهروزرسانی در حدود ۴۰ms است.
- بهرهگیری از ایندکس روی فیلدهای
start و end توصیه میشود.
Dependencies
- Illuminate\Support\Facades\DB
- Carbon\Carbon
کدهای خطا
| کد |
شرح |
منبع |
| 400 |
پارامتر الزامی ارسال نشده |
Validation |
| 404 |
شیفت یافت نشد |
Database |
| 409 |
تداخل زمانی با شیفت دیگر |
Logic Checker |
| 500 |
خطای داخلی سرور |
Exception Handler |
پیشنهادهای امنیتی
- ثبت لاگ کاربر و IP برای بروزرسانیهای شیفت.
- نمایش هشدار تغییر در رابط کاربری به مدیر مسئول.
پیشنهادهای توسعهای
- افزودن قابلیت "نسخهسازی" تغییرات شیفت برای بازگشت به حالت قبلی.
- افزودن اعتبارسنجی خودکار نسبت به بازههای کاری قبلی پرسنل.
ممیزی و ثبت وقایع
- در جدول
system_audit، عملیات ویرایش با event='shift:update' ثبت شود.
جمعبندی
shiftWorkUpdate مسیر استاندارد بهروزرسانی شیفتهاست و دقت بالایی در کنترل تداخل و اعتبار دادهها دارد. این متد هسته مدیریت اصلاحات شیفت در ماژول منابع انسانی است.