Skip to main content
#P1553

PUT /personnel/shift

Route Info

Method Endpoint Controller Middleware Purpose
PUT /personnel/shift OfficialController@shiftWorkUpdate authWithJwt ویرایش اطلاعات یک شیفت کاری موجود

منطق عملکرد تابع

تابع shiftWorkUpdate برای به‌روزرسانی داده‌های شیفت قبلی طراحی شده است. این تابع بررسی می‌کند که شیفت با id ارسالی وجود دارد و سپس اطلاعات جدید را در همان رکورد ذخیره می‌کند.

  1. بررسی وجود مجوز دسترسی (Admin / HR).
  2. یافتن رکورد شیفت بر اساس شناسه ورودی.
  3. اعتبارسنجی ورودی‌ها و کنترل تداخل زمانی احتمالی با سایر شیفت‌ها.
  4. اعمال تغییرات در دیتابیس و تولید پاسخ استاندارد 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 مسیر استاندارد به‌روزرسانی شیفت‌هاست و دقت بالایی در کنترل تداخل و اعتبار داده‌ها دارد. این متد هسته مدیریت اصلاحات شیفت در ماژول منابع انسانی است.