missing information added on sitehistory screen

export_module_ui_ux_enhancement_signup
WaseemAbbasi22 4 weeks ago
parent c0c165eba4
commit 69c09f7bd0

@ -9,6 +9,7 @@ class SiteRequestModel {
final String emailAddress; final String emailAddress;
final String mobileNumber; final String mobileNumber;
final String? extensionNumber; final String? extensionNumber;
final String? returnReason;
final List<String> siteIds; final List<String> siteIds;
final List<String> siteNames; final List<String> siteNames;
final List<String>? oldSiteIds; // For Change Site request final List<String>? oldSiteIds; // For Change Site request
@ -40,6 +41,7 @@ class SiteRequestModel {
this.oldDepartmentNames, this.oldDepartmentNames,
required this.role, required this.role,
this.status, this.status,
this.returnReason,
this.requestDate, this.requestDate,
}); });
@ -81,6 +83,7 @@ class SiteRequestModel {
mobileNumber: json['mobileNumber'] ?? '', mobileNumber: json['mobileNumber'] ?? '',
extensionNumber: json['extensionNo'] ?? json['extensionNumber'], extensionNumber: json['extensionNo'] ?? json['extensionNumber'],
siteIds: sitesData['siteIds'], siteIds: sitesData['siteIds'],
returnReason: json['returnReason'],
siteNames: sitesData['siteNames'], siteNames: sitesData['siteNames'],
oldSiteIds: sitesData['oldSiteIds'], oldSiteIds: sitesData['oldSiteIds'],
oldSiteNames: sitesData['oldSiteNames'], oldSiteNames: sitesData['oldSiteNames'],
@ -103,6 +106,7 @@ class SiteRequestModel {
String? emailAddress, String? emailAddress,
String? mobileNumber, String? mobileNumber,
String? extensionNumber, String? extensionNumber,
String? returnReason,
List<String>? siteIds, List<String>? siteIds,
List<String>? siteNames, List<String>? siteNames,
List<String>? oldSiteIds, List<String>? oldSiteIds,
@ -130,6 +134,7 @@ class SiteRequestModel {
departmentNames: departmentNames ?? this.departmentNames, departmentNames: departmentNames ?? this.departmentNames,
role: role ?? this.role, role: role ?? this.role,
status: status ?? this.status, status: status ?? this.status,
returnReason: returnReason ?? this.returnReason,
requestDate: requestDate ?? this.requestDate, requestDate: requestDate ?? this.requestDate,
); );
} }
@ -170,7 +175,29 @@ class SiteRequestModel {
List<String>? oldDepartmentIds; List<String>? oldDepartmentIds;
List<String>? oldDepartmentNames; List<String>? oldDepartmentNames;
if (json['departments'] != null && // Check if departments are nested within sites array
if (json['sites'] != null && json['sites'] is List) {
for (var site in json['sites']) {
if (site['departments'] != null && site['departments'] is List) {
for (var dept in site['departments']) {
departmentIds ??= [];
departmentNames ??= [];
departmentIds.add(dept['departmentId']?.toString() ?? '');
departmentNames.add(dept['departmentName'] ?? '');
// Check for old department data in Change Site requests
if (dept['oldDepartmentId'] != null && dept['oldDepartmentId'] != 0) {
oldDepartmentIds ??= [];
oldDepartmentNames ??= [];
oldDepartmentIds.add(dept['oldDepartmentId']?.toString() ?? '');
oldDepartmentNames.add(dept['oldDepartmentName'] ?? '');
}
}
}
}
}
// Fallback: check if departments are at root level (for backward compatibility)
else if (json['departments'] != null &&
json['departments'] is List && json['departments'] is List &&
(json['departments'] as List).isNotEmpty) { (json['departments'] as List).isNotEmpty) {
departmentIds = []; departmentIds = [];

@ -1,7 +1,10 @@
import 'dart:developer';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart'; import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart'; import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/modules/site_request_module/models/site_request_model.dart'; import 'package:test_sa/modules/site_request_module/models/site_request_model.dart';
@ -10,6 +13,7 @@ import 'package:test_sa/modules/site_request_module/screens/site_request_form_sc
import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/app_style/app_text_styles.dart'; import 'package:test_sa/new_views/app_style/app_text_styles.dart';
import 'package:test_sa/new_views/common_widgets/default_app_bar.dart'; import 'package:test_sa/new_views/common_widgets/default_app_bar.dart';
import 'package:test_sa/views/widgets/loaders/app_loading.dart';
import 'package:test_sa/views/widgets/loaders/no_data_found.dart'; import 'package:test_sa/views/widgets/loaders/no_data_found.dart';
import 'package:test_sa/views/widgets/item_views/info_date_widget.dart'; import 'package:test_sa/views/widgets/item_views/info_date_widget.dart';
import 'package:test_sa/views/widgets/item_views/info_header_widget.dart'; import 'package:test_sa/views/widgets/item_views/info_header_widget.dart';
@ -136,7 +140,7 @@ class _SiteRequestHistoryScreenState extends State<SiteRequestHistoryScreen> {
itemCount: _provider.requestHistory.length + (_provider.isLoadingMore ? 1 : 0), itemCount: _provider.requestHistory.length + (_provider.isLoadingMore ? 1 : 0),
itemBuilder: (context, index) { itemBuilder: (context, index) {
if (index == _provider.requestHistory.length) { if (index == _provider.requestHistory.length) {
return const Center(child: CircularProgressIndicator()); return const ALoading();
} }
return _buildRequestCard(_provider.requestHistory[index]); return _buildRequestCard(_provider.requestHistory[index]);
@ -197,17 +201,38 @@ class _SiteRequestHistoryScreenState extends State<SiteRequestHistoryScreen> {
} }
Widget _buildUserInfo(SiteRequestModel request) { Widget _buildUserInfo(SiteRequestModel request) {
log('return reason: ${request.returnReason}');
return Column( return Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
InfoTextWidget(label: "Full Name", value: request.fullName), InfoTextWidget(
InfoTextWidget(label: "Employee ID", value: request.employeeId), label: "Full Name",
InfoTextWidget(label: "Email", value: request.emailAddress), value: request.fullName,
showEmptyValue: true,
),
InfoTextWidget(
label: "Employee ID",
value: request.employeeId,
showEmptyValue: true,
),
InfoTextWidget(
label: "Email",
value: request.emailAddress,
showEmptyValue: true,
),
InfoTextWidget(label: "Mobile", value: request.mobileNumber, showEmptyValue: true), InfoTextWidget(label: "Mobile", value: request.mobileNumber, showEmptyValue: true),
if (request.extensionNumber != null && request.extensionNumber!.isNotEmpty) ...[ InfoTextWidget(label: "Extension", value: request.extensionNumber, showEmptyValue: true),
InfoTextWidget(label: "Extension", value: request.extensionNumber!, showEmptyValue: true), InfoTextWidget(
], label: "Role",
InfoTextWidget(label: "Role", value: request.role), value: request.role,
showEmptyValue: true,
),
if( request.returnReason != null && request.returnReason!.isNotEmpty)
InfoTextWidget(
label: "Return Reason".addTranslation,
value: request.returnReason,
showEmptyValue: true,
),
], ],
); );
} }
@ -256,13 +281,8 @@ class _SiteRequestHistoryScreenState extends State<SiteRequestHistoryScreen> {
return Column( return Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text( InfoTextLabelWidget(
"Old Departments:", label: "Old Departments:".addTranslation,
style: TextStyle(
fontSize: 14,
color: AppColor.labelTextStyleColor(context),
fontWeight: FontWeight.w500,
),
), ),
8.height, 8.height,
Wrap( Wrap(
@ -284,14 +304,17 @@ class _SiteRequestHistoryScreenState extends State<SiteRequestHistoryScreen> {
return Column( return Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
Text( InfoTextLabelWidget(
label, label: label,
style: TextStyle(
fontSize: 14,
color: AppColor.labelTextStyleColor(context),
fontWeight: FontWeight.w500,
),
), ),
// Text(
// label,
// style: TextStyle(
// fontSize: 14,
// color: AppColor.labelTextStyleColor(context),
// fontWeight: FontWeight.w500,
// ),
// ),
8.height, 8.height,
Wrap( Wrap(
runSpacing: 4.toScreenHeight, runSpacing: 4.toScreenHeight,

Loading…
Cancel
Save