diff --git a/BACKEND/Modules/Admin/app/Http/Controllers/LeaveManagementController.php b/BACKEND/Modules/Admin/app/Http/Controllers/LeaveManagementController.php index 79c3516..548446a 100644 --- a/BACKEND/Modules/Admin/app/Http/Controllers/LeaveManagementController.php +++ b/BACKEND/Modules/Admin/app/Http/Controllers/LeaveManagementController.php @@ -108,6 +108,7 @@ class LeaveManagementController extends Controller 'ld_day_total' => $item->ld_day_total, 'ld_year' => $item->ld_year, 'ld_additional_day' => $item->ld_additional_day, + 'ld_special_leave_day' => $item->ld_special_leave_day, 'ld_note' => $item->ld_note, 'created_at' => $item->created_at, 'updated_at' => $item->updated_at, @@ -134,7 +135,8 @@ class LeaveManagementController extends Controller $leaveDays = LeaveDays::find($validatedData['id']); $leaveDays->ld_day_total = $validatedData['totalLeave']; - $leaveDays->ld_additional_day = $validatedData['dayAdditional']; // Assuming you have this field to store additional days + $leaveDays->ld_additional_day = $validatedData['dayAdditional']; + $leaveDays->ld_special_leave_day = $validatedData['specialLeave']; $leaveDays->ld_note = $validatedData['note']; $leaveDays->save(); diff --git a/BACKEND/app/Jobs/AddMonthlyLeaveDays.php b/BACKEND/app/Jobs/AddMonthlyLeaveDays.php index 3e933b7..4c58b9f 100644 --- a/BACKEND/app/Jobs/AddMonthlyLeaveDays.php +++ b/BACKEND/app/Jobs/AddMonthlyLeaveDays.php @@ -61,7 +61,6 @@ class AddMonthlyLeaveDays implements ShouldQueue // Nếu chưa có ghi chú, gán ghi chú mới $leaveDay->ld_note = $newNote; } - $leaveDay->save(); } } diff --git a/BACKEND/database/migrations/2025_03_13_075133_add_ld_special_leave_day_to_leave_days_table.php b/BACKEND/database/migrations/2025_03_13_075133_add_ld_special_leave_day_to_leave_days_table.php index f419e78..863d79f 100644 --- a/BACKEND/database/migrations/2025_03_13_075133_add_ld_special_leave_day_to_leave_days_table.php +++ b/BACKEND/database/migrations/2025_03_13_075133_add_ld_special_leave_day_to_leave_days_table.php @@ -9,7 +9,7 @@ class AddLdSpecialLeaveDayToLeaveDaysTable extends Migration public function up() { Schema::table('leave_days', function (Blueprint $table) { - $table->integer('ld_special_leave_day')->nullable(); // Adding the new field + $table->float('ld_special_leave_day')->default(0); // Adding the new field }); } diff --git a/BACKEND/database/migrations/2025_03_13_075235_rename_ld_date_additional_to_ld_additional_day_in_leave_days_table.php b/BACKEND/database/migrations/2025_03_13_075235_rename_ld_date_additional_to_ld_additional_day_in_leave_days_table.php index ec600f4..b6be1ae 100644 --- a/BACKEND/database/migrations/2025_03_13_075235_rename_ld_date_additional_to_ld_additional_day_in_leave_days_table.php +++ b/BACKEND/database/migrations/2025_03_13_075235_rename_ld_date_additional_to_ld_additional_day_in_leave_days_table.php @@ -9,14 +9,14 @@ class RenameLdDateAdditionalToLdAdditionalDayInLeaveDaysTable extends Migration public function up() { Schema::table('leave_days', function (Blueprint $table) { - $table->renameColumn('ld_additional_day', 'ld_additional_day'); + $table->renameColumn('ld_date_additional', 'ld_additional_day'); }); } public function down() { Schema::table('leave_days', function (Blueprint $table) { - $table->renameColumn('ld_additional_day', 'ld_additional_day'); + $table->renameColumn('ld_date_additional', 'ld_additional_day'); }); } } \ No newline at end of file diff --git a/FRONTEND/src/pages/LeaveManagement/LeaveManagement.tsx b/FRONTEND/src/pages/LeaveManagement/LeaveManagement.tsx index 0e4d890..9f45755 100644 --- a/FRONTEND/src/pages/LeaveManagement/LeaveManagement.tsx +++ b/FRONTEND/src/pages/LeaveManagement/LeaveManagement.tsx @@ -1,4 +1,8 @@ -import { getLeaveManagement, updateNoteLeave, exportLeaveManagement } from '@/api/Admin' +import { + getLeaveManagement, + updateNoteLeave, + exportLeaveManagement, +} from '@/api/Admin' import { update } from '@/rtk/helpers/CRUD' import { get, exportFile } from '@/rtk/helpers/apiService' import { @@ -42,6 +46,7 @@ interface LeaveDay { ld_year: number ld_day_total: number ld_additional_day: number + ld_special_leave_day: number ld_note: string created_at: string | null updated_at: string | null @@ -75,6 +80,7 @@ const LeaveManagement = () => { note: string totalLeave: string dayAdditional: string + specialLeave: string }>({ id: 0, user: { @@ -84,6 +90,7 @@ const LeaveManagement = () => { note: '', totalLeave: '', dayAdditional: '', + specialLeave: '', }) const [data, setData] = useState([]) @@ -122,6 +129,7 @@ const LeaveManagement = () => { }, totalLeave: string, dayAdditional: string, + specialLeave: string, note: string, ) => { try { @@ -132,6 +140,7 @@ const LeaveManagement = () => { users: users, totalLeave: totalLeave, dayAdditional: dayAdditional, + specialLeave: specialLeave, note: note, }, getLeaveList, @@ -237,8 +246,8 @@ const LeaveManagement = () => {
{isNewMonth &&

Month {lastmonth}

}

- - {itemDay.reason_name} ({itemDay.time_type_name}) {itemDay.day} - /{itemDay.month} + - {itemDay.reason_name} ({itemDay.time_type_name}) {itemDay.day}/ + {itemDay.month}

) @@ -249,15 +258,14 @@ const LeaveManagement = () => { try { const timestamp = moment().format('DDMMYYYY_HHmmss') const fileName = `LeaveManagement_${date.year}_${timestamp}.xlsx` - + await exportFile( exportLeaveManagement, { - year: parseInt(date.year) + year: parseInt(date.year), }, - fileName + fileName, ) - } catch (error) { console.error('Export error:', error) notifications.show({ @@ -271,9 +279,7 @@ const LeaveManagement = () => { return (
-

- Leave Management -

+

Leave Management

{ } }} label={'Total Leave'} - placeholder="Input placeholder" + placeholder="Input total leave days" /> { } }} label={'Day additional leave'} - placeholder="Input placeholder" + placeholder="Input additional leave days" + /> + { + const value = e.target.value + if (value) { + const floatValue = parseFloat(value) + if ( + /^\d*\.?\d?$/.test(value) && + floatValue >= 0 && + floatValue <= 20 + ) { + setCustomAddNotes({ + ...customAddNotes, + specialLeave: value, + }) + } + } else { + setCustomAddNotes({ + ...customAddNotes, + specialLeave: '', + }) + } + }} + label={'Day special leave'} + placeholder="Input special leave days" /> - +