diff --git a/assets/images/IconsImg/alternate.png b/assets/images/IconsImg/alternate.png new file mode 100644 index 0000000..90e6e77 Binary files /dev/null and b/assets/images/IconsImg/alternate.png differ diff --git a/assets/images/IconsImg/path.png b/assets/images/IconsImg/path.png new file mode 100644 index 0000000..861b382 Binary files /dev/null and b/assets/images/IconsImg/path.png differ diff --git a/lib/Screens/itnerary_list/flight_list.dart b/lib/Screens/itnerary_list/flight_list.dart index aaa5b84..3d8031d 100644 --- a/lib/Screens/itnerary_list/flight_list.dart +++ b/lib/Screens/itnerary_list/flight_list.dart @@ -398,13 +398,31 @@ class _FlightListWidgetState extends State { ), Expanded( flex: 4, - child: Text( - "$fromPlaceCountry (From) - (To) $toPlaceCountry", - // "${trip["from_place"]?.toString()} - ${trip["to_place"]?.toString()}", - style: GoogleFonts.poppins( - fontSize: 12, - fontWeight: FontWeight.w700, - ), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "$fromPlaceCountry", + // "${trip["from_place"]?.toString()} - ${trip["to_place"]?.toString()}", + style: GoogleFonts.poppins( + fontSize: 12, + fontWeight: FontWeight.w700, + ), + ), + Image.asset( + 'assets/images/IconsImg/alternate.png', + width: 25, + height: 25, + ), + Text( + "$toPlaceCountry", + // "${trip["from_place"]?.toString()} - ${trip["to_place"]?.toString()}", + style: GoogleFonts.poppins( + fontSize: 12, + fontWeight: FontWeight.w700, + ), + ), + ], ), ), Expanded( diff --git a/lib/Screens/userManagement/create_user/create_user.dart b/lib/Screens/userManagement/create_user/create_user.dart index 8a1b59f..f2cf52e 100644 --- a/lib/Screens/userManagement/create_user/create_user.dart +++ b/lib/Screens/userManagement/create_user/create_user.dart @@ -582,7 +582,6 @@ class _CreateUserFormDetialsState extends State { travelDetailsData = travellerDetailsKey.currentState?.travel_Detials; // errorMessagesTravel = travellerDetailsKey.currentState!.errorMessages; - print("TRAVEL DETAILS FROM CHILD: $travelDetailsData"); Map data = userDetials; @@ -657,47 +656,63 @@ class _CreateUserFormDetialsState extends State { // printFormData(); bool isValid = travellerDetailsKey.currentState?.boolValidation() ?? false; + if (selectedTab == "travel" || + selectedRole == "5" || + setSelectesUserType == true) { + print("NO validation"); - print("isValid- $isValid"); - if (!isValid) { - print("Validation failed. Please check the inputs."); - setState(() {}); - return; // ❌ STOP execution here if not valid - } + Map data = userDetials; + + if (!isValidData(data)) { + print("USERDETAILS : $userDetials"); + print("Validation Failed: Required fields are missing."); + setState(() {}); + return; // Stop execution if validation fails + } else { + print("USERDETAILS : $userDetials"); + orgId = await getOrgId(); + + createUserData(userDetials); + } + } else { + print("isValid- $isValid"); + if (!isValid) { + print("Validation failed. Please check the inputs."); + setState(() {}); + return; // ❌ STOP execution here if not valid + } travelDetailsData = travellerDetailsKey.currentState?.travel_Detials; + print("travelDetailsData - $travelDetailsData"); + print("travelDetailsData - $travelDetailsData"); + // errorMessagesTravel = travellerDetailsKey.currentState!.errorMessages; - print("travelDetailsData - $travelDetailsData"); + print("TRAVEL DETAILS FROM CHILD"); + // print("TRAVEL DETAILS FROM CHILD: $travelDetailsData"); - print("travelDetailsData - $travelDetailsData"); - // errorMessagesTravel = travellerDetailsKey.currentState!.errorMessages; + passportFile = travellerDetailsKey.currentState?.passportFile; - print("TRAVEL DETAILS FROM CHILD"); - // print("TRAVEL DETAILS FROM CHILD: $travelDetailsData"); + print("passportFile : $passportFile"); - passportFile = travellerDetailsKey.currentState?.passportFile; + Map data = userDetials; - print("passportFile : $passportFile"); + print("USERDETAILS : $data"); - Map data = userDetials; + // Map data = userDetials; - print("USERDETAILS : $data"); + if (!isValidData(data) && isValidDataTwo(data)) { + print("USERDETAILS : $userDetials"); + print("Validation Failed: Required fields are missing."); + setState(() {}); + return; // Stop execution if validation fails + } else { + print("USERDETAILS : $userDetials"); + orgId = await getOrgId(); - // Map data = userDetials; - - if (!isValidData(data) && - isValidDataTwo(data) ) { - print("USERDETAILS : $userDetials"); - print("Validation Failed: Required fields are missing."); - setState(() {}); - return; // Stop execution if validation fails - } else { - print("USERDETAILS : $userDetials"); - orgId = await getOrgId(); - - createUserData(userDetials); + createUserData(userDetials); + } } } diff --git a/lib/Screens/userManagement/create_user/personal_details.dart b/lib/Screens/userManagement/create_user/personal_details.dart index 81f6c01..bcd5ad7 100644 --- a/lib/Screens/userManagement/create_user/personal_details.dart +++ b/lib/Screens/userManagement/create_user/personal_details.dart @@ -1588,6 +1588,7 @@ class PersonalDetailsState extends State { widget.isViewMode ? null : (String? newValue) { + widget.errorMessages.remove("role_id"); if (newValue == null) return; final selectedKey = roleMap.entries diff --git a/lib/Screens/userManagement/create_user/traveller_details.dart b/lib/Screens/userManagement/create_user/traveller_details.dart index 7aa96bc..afee1b8 100644 --- a/lib/Screens/userManagement/create_user/traveller_details.dart +++ b/lib/Screens/userManagement/create_user/traveller_details.dart @@ -2769,8 +2769,11 @@ class TravellerDetailsState extends State { countryMap = { for (var country in countryList) - country['airline'] as String: '${country['airline_name']}', + country['airline'] as String: + '${country['airline_name']} (${country['airline']})', + // country['airline'] as String: '${country['airline_name']}', }; + // airline countryCodes = countryMap.keys.toList(); @@ -2850,17 +2853,56 @@ class TravellerDetailsState extends State { backgroundColor: Colors.white, ), constraints: BoxConstraints(maxHeight: 250), - itemBuilder: - (context, item, isSelected) => Padding( - padding: const EdgeInsets.symmetric( - horizontal: 8.0, - vertical: 6.0, - ), - child: Text( - item, - style: GoogleFonts.poppins(fontSize: 11.5), - ), + itemBuilder: (context, item, isSelected) { + // Extract airline name and code from "AirlineName (CODE)" + final match = RegExp( + r'^(.*)\s+\(([^)]+)\)$', + ).firstMatch(item); + final name = match?.group(1) ?? ''; + final code = match?.group(2) ?? ''; + + return Padding( + padding: const EdgeInsets.symmetric( + horizontal: 8.0, + vertical: 6.0, ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Expanded( + child: Text( + name, + style: const TextStyle( + fontSize: 12, + fontWeight: FontWeight.w500, + ), + overflow: TextOverflow.ellipsis, + ), + ), + Text( + code, + style: const TextStyle( + fontSize: 12, + fontWeight: FontWeight.w500, + color: Colors.grey, + ), + ), + ], + ), + ); + }, + + // itemBuilder: + // (context, item, isSelected) => Padding( + // padding: const EdgeInsets.symmetric( + // horizontal: 8.0, + // vertical: 6.0, + // ), + // child: Text( + // item, + // style: GoogleFonts.poppins(fontSize: 11.5), + // ), + // ), searchFieldProps: TextFieldProps( decoration: InputDecoration( hintText: "Search Airline...", diff --git a/pubspec.yaml b/pubspec.yaml index 3b6d7f9..58aee17 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -99,6 +99,8 @@ flutter: - assets/images/login/VectorG.png - assets/images/login/logoNew.jpg - assets/images/login/microsoft.png + - assets/images/IconsImg/path.png + - assets/images/IconsImg/alternate.png - assets/images/IconsImg/delete.png - assets/images/IconsImg/edit.png - assets/images/IconsImg/planPdf_icon.png