chnages was made

This commit is contained in:
Daniah Ayad Al-sultani
2025-12-07 12:01:23 +03:00
parent d789bcdc88
commit dbf76b2d30
7 changed files with 672 additions and 11 deletions

View File

@@ -3,6 +3,8 @@ import 'package:flutter_svg/flutter_svg.dart';
import '../widgets/app_background.dart';
import '../widgets/settings_bar.dart';
import '../widgets/onboarding_button.dart';
import '../models/leave_request.dart';
import '../services/request_service.dart';
class RequestLeaveScreen extends StatefulWidget {
const RequestLeaveScreen({super.key});
@@ -28,6 +30,8 @@ class _RequestLeaveScreenState extends State<RequestLeaveScreen> {
// Text controller for reason
final TextEditingController reasonController = TextEditingController();
final RequestService _requestService = RequestService();
/// PICK DATE
Future<void> pickDate(bool isFrom) async {
DateTime initial = isFrom ? fromDate! : toDate!;
@@ -74,6 +78,47 @@ class _RequestLeaveScreenState extends State<RequestLeaveScreen> {
}
}
// Method to save the leave request
Future<void> _saveLeaveRequest() async {
if (reasonController.text.isEmpty) {
// Show an error message if reason is empty
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('الرجاء إدخال السبب'),
backgroundColor: Colors.red,
),
);
return;
}
// Create a new leave request
final leaveRequest = LeaveRequest(
id: DateTime.now().millisecondsSinceEpoch.toString(),
leaveType: leaveType,
isTimedLeave: isTimedLeave,
fromDate: fromDate!,
toDate: toDate!,
fromTime: fromTime!,
toTime: toTime!,
reason: reasonController.text,
requestDate: DateTime.now(),
);
// Save the leave request
await _requestService.addLeaveRequest(leaveRequest);
// Show a success message
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(
content: Text('تم إرسال طلب الأجازة بنجاح'),
backgroundColor: Colors.green,
),
);
// Navigate back to the previous screen
Navigator.pop(context);
}
@override
Widget build(BuildContext context) {
return Scaffold(
@@ -104,7 +149,7 @@ class _RequestLeaveScreenState extends State<RequestLeaveScreen> {
children: [
// Fixed alignment for "طلب أجازة"
const Align(
alignment: Alignment.topRight, // Changed to centerRight
alignment: Alignment.topRight,
child: Text(
"طلب أجازة ",
style: TextStyle(
@@ -459,7 +504,7 @@ class _RequestLeaveScreenState extends State<RequestLeaveScreen> {
text: "تأكيد الطلب",
backgroundColor: const Color(0xFFD1FEF0),
textColor: Colors.black, // Changed to black
onPressed: () {},
onPressed: _saveLeaveRequest, // Call the save method
),
),
@@ -559,11 +604,13 @@ class _RequestLeaveScreenState extends State<RequestLeaveScreen> {
case 4:
return "الخميس";
case 5:
return "السبت";
return "الجمعة";
case 6:
return "السبت";
case 7:
return "الأحد";
default:
return "";
}
}
}
}