Merge remote-tracking branch 'origin/export_module_ui_ux_enhancement' into export_module_ui_ux_enhancement

main_production_RSG
Sikander Saleem 2 months ago
commit 831cc1fef5

@ -4,7 +4,7 @@ class URLs {
static const String appReleaseBuildNumber = "40";
// static const host1 = "https://atomsm.hmg.com"; // production url
static const host1 = "https://atomsmdev.hmg.com"; // local DEV urld
static const host1 = "https://atomsmdev.hmg.com"; // local DEV url
// static const host1 = "https://atomsmuat.hmg.com"; // local UAT url
static final String _baseUrl = "$_host/mobile"; // host local UAT

@ -180,7 +180,7 @@ class AllRequestsProvider extends ChangeNotifier {
return list;
}
Future<int> getAllRequests(BuildContext context, {int? typeTransaction, SearchAllRequestsModel? search}) async {
Future<int> getAllRequests(BuildContext context, {int? typeTransaction, SearchAllRequestsModel? search, bool? isAscending}) async {
if (isAllLoading == true) return -2;
isAllLoading = true;
if (_allRequestsAndCount == null) notifyListeners();
@ -212,6 +212,7 @@ class AllRequestsProvider extends ChangeNotifier {
if (search?.manufacture?.value?.isNotEmpty ?? false) "manufacturer": search!.manufacture!.value,
if (search?.startDate != null) "from": search!.startDate!.toIso8601String(),
if (search?.endDate != null) "to": search!.endDate!.toIso8601String(),
if (isAscending != null) "isAscending": isAscending,
};
response = await ApiManager.instance.post(URLs.getAllRequestsAndCount, body: body);

@ -270,7 +270,7 @@ class DashBoardProvider extends ChangeNotifier {
}
}
Future<int> getRequestDetail({bool showLoader = true, required UsersTypes usersType, int? status, bool isHighPriority = false, bool isOverdue = false, String? date, int? tabId}) async {
Future<int> getRequestDetail({bool showLoader = true, required UsersTypes usersType, int? status, bool isHighPriority = false, bool isOverdue = false, String? date, int? tabId, bool? isAscending}) async {
if (showLoader) {
isDetailLoading = showLoader;
notifyListeners();
@ -309,6 +309,7 @@ class DashBoardProvider extends ChangeNotifier {
}
if (isHighPriority) body["isHighPriority"] = true;
if (isOverdue) body["isOverdue"] = true;
if (isAscending != null) body["isAscending"] = isAscending;
response = await ApiManager.instance.post(url, body: body);
stateCode = response.statusCode;

@ -16,9 +16,35 @@ import 'package:test_sa/new_views/common_widgets/tab_button.dart';
import 'package:test_sa/views/widgets/loaders/no_data_found.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
class RequestCategoryFragment extends StatelessWidget {
class RequestCategoryFragment extends StatefulWidget {
const RequestCategoryFragment({Key? key}) : super(key: key);
@override
State<RequestCategoryFragment> createState() => _RequestCategoryFragmentState();
}
class _RequestCategoryFragmentState extends State<RequestCategoryFragment> {
bool isAscending = false;
void _toggleSort(DashBoardProvider dashboardProvider, UsersTypes? userType) {
setState(() {
isAscending = !isAscending;
});
// Get current tab info
List<CategoryTabs> tabs = CategoryTabs.getTabs(userType: userType ?? UsersTypes.normal_user, context: context);
// Reload data with new sort order
dashboardProvider.resetRequestDataList();
dashboardProvider.getRequestDetail(
usersType: userType ?? UsersTypes.normal_user,
showLoader: true,
status: tabs[dashboardProvider.currentListIndex].tag,
tabId: tabs[dashboardProvider.currentListIndex].id,
isAscending: isAscending,
);
}
@override
Widget build(BuildContext context) {
return Consumer<DashBoardProvider>(builder: (context, dashboardProvider, child) {
@ -64,9 +90,9 @@ class RequestCategoryFragment extends StatelessWidget {
Navigator.of(context).pushNamed('/cleaner_search');
}),
Transform.flip(
flipY: false,
flipY: isAscending,
child: 'dashboard/sort_descending'.toSvgAsset(width: 24, height: 24, color: AppColor.headingTextColor(context)).onPress(() {
Navigator.of(context).pushNamed('/cleaner_search');
_toggleSort(dashboardProvider, user?.type);
}),
)
],
@ -120,6 +146,9 @@ class RequestCategoryFragment extends StatelessWidget {
isSelected: requestsProvider.currentListIndex == index,
count: requestsProvider.requestDetailList != null ? requestsProvider.requestDetailList!.count ?? 0 : 0,
onPressed: () async {
setState(() {
isAscending=false;
});
requestsProvider.currentListIndex = index;
requestsProvider.resetRequestDataList();
requestsProvider.getRequestDetail(usersType: userType ?? UsersTypes.normal_user, showLoader: true, status: tabs[index].tag, tabId: tabs[index].id);

@ -13,6 +13,7 @@ class SearchAllRequestsModel {
List<int>? typeTransaction; // Now nullable
DateTime? startDate, endDate; // Now nullable
bool isArchived = false;
String? selectedSortOption;
SearchAllRequestsModel({
this.requestNumber,
@ -26,6 +27,7 @@ class SearchAllRequestsModel {
this.startDate,
this.endDate,
this.isArchived = false,
this.selectedSortOption,
});
//older function

@ -2,14 +2,16 @@ import 'package:flutter/material.dart';
import 'package:test_sa/extensions/context_extension.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/string_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/modules/asset_delivery_module/pages/asset_delivery_page.dart';
import 'package:test_sa/modules/asset_inventory_module/pages/asset_inventory_page.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/modules/asset_delivery_module/pages/asset_delivery_page.dart';
import 'package:test_sa/views/widgets/item_views/info_header_widget.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
import 'package:test_sa/views/widgets/item_views/info_text_widget.dart';
class AssetDeliveryItemView extends StatelessWidget {
final Data? requestData;
@ -24,23 +26,10 @@ class AssetDeliveryItemView extends StatelessWidget {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
8.height,
(requestData?.typeTransaction ?? 'Asset Delivery').heading5(context),
infoWidget(label: 'PO Internal'.addTranslation, value: requestData?.poInternal ?? '-', context: context),
infoWidget(label: 'PO External'.addTranslation, value: requestData?.poExternal ?? '-', context: context),
InfoHeaderWidget(requestData?.typeTransaction ?? 'Asset Delivery'),
InfoTextWidget(label: 'PO Internal'.addTranslation, value: requestData?.poInternal ?? '-'),
InfoTextWidget(label: 'PO External'.addTranslation, value: requestData?.poExternal ?? '-', showArrow: true),
// infoWidget(label: 'No of Sites'.addTranslation, value: requestData?.numberOfSites != null ? requestData?.numberOfSites.toString() : '-', context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
],
),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.of(context).push(MaterialPageRoute(
@ -53,23 +42,11 @@ class AssetDeliveryItemView extends StatelessWidget {
}
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 1,
children: [
8.height,
(requestDetails?.nameOfType ?? 'Asset Delivery').heading5(context),
infoWidget(label: 'PO Internal'.addTranslation, value: requestDetails?.poInternal ?? '-', context: context),
infoWidget(label: 'PO External'.addTranslation, value: requestDetails?.poExternal ?? '-', context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
],
),
InfoHeaderWidget(requestDetails?.nameOfType ?? 'Asset Delivery'),
InfoTextWidget(label: 'PO Internal'.addTranslation, value: requestDetails?.poInternal ?? '-'),
InfoTextWidget(label: 'PO External'.addTranslation, value: requestDetails?.poExternal ?? '-', showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.of(context).push(MaterialPageRoute(
@ -80,11 +57,4 @@ class AssetDeliveryItemView extends StatelessWidget {
)));
});
}
Widget infoWidget({required String label, String? value, required BuildContext context}) {
if (value != null && value.isNotEmpty) {
return '$label: $value'.bodyText(context);
}
return const SizedBox();
}
}

@ -2,12 +2,14 @@ import 'package:flutter/material.dart';
import 'package:test_sa/extensions/context_extension.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/widget_extensions.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/modules/asset_inventory_module/pages/asset_inventory_page.dart';
import 'package:test_sa/new_views/app_style/app_color.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_text_widget.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
class InventorySessionItemView extends StatelessWidget {
@ -32,30 +34,13 @@ class InventorySessionItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestData!.statusName!),
),
1.width.expanded,
Text(
requestData!.transactionDate?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
],
),
8.height,
(requestData?.typeTransaction ?? context.translation.taskRequest).heading5(context),
infoWidget(label: 'Session Type'.addTranslation, value: requestData?.sessionType, context: context),
infoWidget(label: 'No of Assets'.addTranslation, value: requestData?.numberOfAssets != null ? requestData?.numberOfAssets.toString() : '-', context: context),
infoWidget(label: 'No of Sites'.addTranslation, value: requestData?.numberOfSites != null ? requestData?.numberOfSites.toString() : '-', context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
InfoDateWidget(requestData!.transactionDate ?? ""),
],
),
InfoHeaderWidget(requestData?.typeTransaction ?? context.translation.taskRequest),
InfoTextWidget(label: 'Session Type'.addTranslation, value: requestData?.sessionType),
InfoTextWidget(label: 'No of Assets'.addTranslation, value: requestData?.numberOfAssets != null ? requestData?.numberOfAssets.toString() : '-'),
InfoTextWidget(label: 'No of Sites'.addTranslation, value: requestData?.numberOfSites != null ? requestData?.numberOfSites.toString() : '-', showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => AssetInventoryPage(sessionId: requestData!.id!, moduleId: requestData!.transactionNo!)));
@ -63,6 +48,7 @@ class InventorySessionItemView extends StatelessWidget {
}
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 1,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
@ -73,40 +59,16 @@ class InventorySessionItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestDetails?.status!),
),
1.width.expanded,
Text(
requestDetails!.date?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
],
),
8.height,
(requestDetails?.nameOfType ?? context.translation.taskRequest).heading5(context),
infoWidget(label: 'Session Type'.addTranslation, value: requestDetails?.sessionType, context: context),
infoWidget(label: 'No of Assets'.addTranslation, value: requestDetails?.numberOfAssets != null ? requestDetails?.numberOfAssets.toString() : '-', context: context),
infoWidget(label: 'No of Sites'.addTranslation, value: requestDetails?.numberOfSites != null ? requestDetails?.numberOfSites.toString() : '-', context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
InfoDateWidget(requestDetails!.date ?? ""),
],
),
InfoHeaderWidget(requestDetails?.nameOfType ?? context.translation.taskRequest),
InfoTextWidget(label: 'Session Type'.addTranslation, value: requestDetails?.sessionType),
InfoTextWidget(label: 'No of Assets'.addTranslation, value: requestDetails?.numberOfAssets != null ? requestDetails?.numberOfAssets.toString() : '-'),
InfoTextWidget(label: 'No of Sites'.addTranslation, value: requestDetails?.numberOfSites != null ? requestDetails?.numberOfSites.toString() : '-', showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => AssetInventoryPage(sessionId: requestDetails!.id!, moduleId: requestDetails!.transactionType!)));
});
}
Widget infoWidget({required String label, String? value, required BuildContext context}) {
if (value != null && value.isNotEmpty) {
return '$label: $value'.bodyText(context);
}
return const SizedBox();
}
}

@ -1,15 +1,14 @@
import 'package:flutter/material.dart';
import 'package:test_sa/extensions/context_extension.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/widget_extensions.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/modules/asset_delivery_module/pages/asset_delivery_page.dart';
import 'package:test_sa/modules/asset_inventory_module/pages/asset_inventory_page.dart';
import 'package:test_sa/modules/demo_module/demo_detail_view_page.dart';
import 'package:test_sa/new_views/app_style/app_color.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_text_widget.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
class DemoRequestItemView extends StatelessWidget {
@ -34,30 +33,14 @@ class DemoRequestItemView extends StatelessWidget {
backgroundColor: AppColor.demoRequestStatus(context, requestData?.statusValue ?? 0),
),
1.width.expanded,
Text(
requestData!.transactionDate?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
InfoDateWidget(requestData!.transactionDate ?? ""),
],
),
// 8.height,
(requestData?.typeTransaction ?? 'Demo Request').heading5(context),
infoWidget(label: 'Request No'.addTranslation, value: requestData?.requestNo ?? '-', context: context),
infoWidget(label: context.translation.requestType, value: requestData?.requestTypeName, context: context),
InfoHeaderWidget(requestData?.typeTransaction ?? 'Demo Request'),
InfoTextWidget(label: context.translation.requestNo, value: requestData?.requestNo ?? '-'),
InfoTextWidget(label: context.translation.requestType, value: requestData?.requestTypeName, showArrow: true),
// infoWidget(label: 'No of Sites'.addTranslation, value: requestData?.numberOfSites != null ? requestData?.numberOfSites.toString() : '-', context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
],
),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => DemoDetailViewPage(demoId: requestData!.id!, moduleId: requestData!.transactionNo!)));
@ -65,6 +48,7 @@ class DemoRequestItemView extends StatelessWidget {
}
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 1,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
@ -75,39 +59,17 @@ class DemoRequestItemView extends StatelessWidget {
backgroundColor: AppColor.demoRequestStatus(context, requestDetails?.statusValue ?? 0),
),
1.width.expanded,
Text(
requestDetails!.date?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
InfoDateWidget(requestDetails!.date ?? ""),
],
),
// 8.height,
(requestDetails?.nameOfType ?? 'Demo Request').heading5(context),
InfoHeaderWidget(requestDetails?.nameOfType ?? 'Demo Request'),
// infoWidget(label: context.translation.requestType, value: requestDetails!.requestType, context: context),
infoWidget(label: context.translation.requestNo, value: requestDetails!.requestNo, context: context),
infoWidget(label: context.translation.site, value: requestDetails!.site, context: context),
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
],
),
InfoTextWidget(label: context.translation.requestNo, value: requestDetails!.requestNo),
InfoTextWidget(label: context.translation.site, value: requestDetails!.site, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => DemoDetailViewPage(demoId: requestDetails!.id!, moduleId: requestDetails!.transactionType!)));
});
}
Widget infoWidget({required String label, String? value, required BuildContext context}) {
if (value != null && value.isNotEmpty) {
return '$label: $value'.bodyText(context);
}
return const SizedBox();
}
}

@ -1,15 +1,13 @@
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:test_sa/extensions/context_extension.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/widget_extensions.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/modules/internal_audit_module/pages/equipment_internal_audit/equipment_internal_audit_detail_page.dart';
import 'package:test_sa/new_views/app_style/app_color.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_text_widget.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
import 'incident_detail_page.dart';
@ -36,30 +34,13 @@ class IncidentItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestData!.statusName!),
),
1.width.expanded,
Text(
requestData!.transactionDate?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
InfoDateWidget(requestData!.transactionDate ?? ""),
],
),
8.height,
(requestData?.typeTransaction ?? "Loan Request").heading5(context),
infoWidget(label: context.translation.requestType, value: requestData?.requestTypeName, context: context),
infoWidget(label: "Incident No", value: requestData?.requestNo, context: context),
InfoHeaderWidget(requestData?.typeTransaction ?? "Loan Request"),
InfoTextWidget(label: context.translation.requestType, value: requestData?.requestTypeName),
InfoTextWidget(label: "Incident No", value: requestData?.requestNo, showArrow: true),
// infoWidget(label: context.translation.site, value: requestData?., context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
],
),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.push(context, MaterialPageRoute(builder: (context) => IncidentDetailPage(incidentId: requestDetails!.id!)));
@ -67,6 +48,7 @@ class IncidentItemView extends StatelessWidget {
}
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 1,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
@ -77,42 +59,17 @@ class IncidentItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestDetails?.status!),
),
1.width.expanded,
Text(
requestDetails!.date?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
],
),
8.height,
(requestDetails?.nameOfType ?? "Loan Request").heading5(context),
8.height,
infoWidget(label: context.translation.requestType, value: requestDetails!.requestType, context: context),
infoWidget(label: "Incident No", value: requestDetails!.requestNo, context: context),
infoWidget(label: context.translation.assetName, value: requestDetails!.assetName, context: context),
infoWidget(label: context.translation.site, value: requestDetails!.site, context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
InfoDateWidget(requestDetails!.date ?? ""),
],
),
InfoHeaderWidget(requestDetails?.nameOfType ?? "Loan Request"),
InfoTextWidget(label: context.translation.requestType, value: requestDetails!.requestType),
InfoTextWidget(label: "Incident No", value: requestDetails!.requestNo),
InfoTextWidget(label: context.translation.assetName, value: requestDetails!.assetName),
InfoTextWidget(label: context.translation.site, value: requestDetails!.site, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.push(context, MaterialPageRoute(builder: (context) => IncidentDetailPage(incidentId: requestDetails!.id!)));
});
}
Widget infoWidget({required String label, String? value, required BuildContext context}) {
if (value != null && value.isNotEmpty) {
return '$label: $value'.bodyText(context);
}
return const SizedBox();
}
}

@ -3,13 +3,14 @@ import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:test_sa/extensions/context_extension.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/widget_extensions.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/modules/internal_audit_module/pages/equipment_internal_audit/equipment_internal_audit_detail_page.dart';
import 'package:test_sa/new_views/app_style/app_color.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_text_widget.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
class EquipmentInternalAuditItemView extends StatelessWidget {
@ -34,29 +35,12 @@ class EquipmentInternalAuditItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestData!.statusName!),
),
1.width.expanded,
Text(
requestData!.transactionDate?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
],
),
8.height,
(requestData?.typeTransaction ?? "Internal Audit Request").heading5(context),
infoWidget(label: context.translation.requestNo, value: requestData!.requestNo, context: context),
infoWidget(label: context.translation.assetNumber, value: requestData!.assetNumber, context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
InfoDateWidget(requestData!.transactionDate ?? ""),
],
),
InfoHeaderWidget(requestData?.typeTransaction ?? "Internal Audit Request"),
InfoTextWidget(label: context.translation.requestNo, value: requestData!.requestNo),
InfoTextWidget(label: context.translation.assetNumber, value: requestData!.assetNumber, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.push(context, MaterialPageRoute(builder: (context) => EquipmentInternalAuditDetailPage(auditId: requestData!.id!)));
@ -64,6 +48,7 @@ class EquipmentInternalAuditItemView extends StatelessWidget {
}
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 1,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
@ -74,43 +59,18 @@ class EquipmentInternalAuditItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestDetails?.status!),
),
1.width.expanded,
Text(
requestDetails!.date?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
],
),
8.height,
(requestDetails?.nameOfType ?? "Internal Audit Request").heading5(context),
8.height,
infoWidget(label: context.translation.requestNo, value: requestDetails!.requestNo, context: context),
infoWidget(label: context.translation.assetNumber, value: requestDetails!.assetNo, context: context),
infoWidget(label: context.translation.assetSN, value: requestDetails!.assetSN, context: context),
infoWidget(label: context.translation.model, value: requestDetails!.model, context: context),
infoWidget(label: context.translation.site, value: requestDetails!.site, context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
InfoDateWidget(requestDetails!.date ?? ""),
],
),
InfoHeaderWidget(requestDetails?.nameOfType ?? "Internal Audit Request"),
InfoTextWidget(label: context.translation.requestNo, value: requestDetails!.requestNo),
InfoTextWidget(label: context.translation.assetNumber, value: requestDetails!.assetNo),
InfoTextWidget(label: context.translation.assetSN, value: requestDetails!.assetSN),
InfoTextWidget(label: context.translation.model, value: requestDetails!.model),
InfoTextWidget(label: context.translation.site, value: requestDetails!.site, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.push(context, MaterialPageRoute(builder: (context) => EquipmentInternalAuditDetailPage(auditId: requestDetails!.id!)));
});
}
Widget infoWidget({required String label, String? value, required BuildContext context}) {
if (value != null && value.isNotEmpty) {
return '$label: $value'.bodyText(context);
}
return const SizedBox();
}
}

@ -1,16 +1,14 @@
import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:test_sa/extensions/context_extension.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/widget_extensions.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/modules/internal_audit_module/pages/equipment_internal_audit/equipment_internal_audit_detail_page.dart';
import 'package:test_sa/modules/internal_audit_module/pages/system_internal_audit/system_internal_audit_detail_page.dart';
import 'package:test_sa/new_views/app_style/app_color.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_text_widget.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
class SystemInternalAuditItemView extends StatelessWidget {
@ -36,29 +34,12 @@ class SystemInternalAuditItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestData!.statusName!),
),
1.width.expanded,
Text(
requestData!.transactionDate?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
],
),
8.height,
(requestData?.typeTransaction ?? "System Audit Request").heading5(context),
infoWidget(label: context.translation.requestNo, value: requestData!.requestNo, context: context),
infoWidget(label: context.translation.assetNumber, value: requestData?.assetNumber, context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
InfoDateWidget(requestData!.transactionDate ?? ""),
],
),
InfoHeaderWidget(requestData?.typeTransaction ?? "System Audit Request"),
InfoTextWidget(label: context.translation.requestNo, value: requestData!.requestNo),
InfoTextWidget(label: context.translation.assetNumber, value: requestData?.assetNumber, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.push(context, MaterialPageRoute(builder: (context) => SystemInternalAuditDetailPage(auditId: requestData!.id!)));
@ -66,6 +47,7 @@ class SystemInternalAuditItemView extends StatelessWidget {
}
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 1,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
@ -76,45 +58,19 @@ class SystemInternalAuditItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestDetails?.status!),
),
1.width.expanded,
Text(
requestDetails!.date?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
InfoDateWidget(requestDetails!.date ?? ""),
],
),
8.height,
(requestDetails?.nameOfType ?? "Internal Audit Request").heading5(context),
infoWidget(label: context.translation.requestNo, value: requestDetails!.requestNo, context: context),
infoWidget(label: context.translation.assetNumber, value: requestDetails!.assetNo, context: context),
infoWidget(label: context.translation.assetSN, value: requestDetails!.assetSN, context: context),
infoWidget(label: context.translation.model, value: requestDetails!.model, context: context),
infoWidget(label: context.translation.site, value: requestDetails!.site, context: context),
8.height,
InfoHeaderWidget(requestDetails?.nameOfType ?? "Internal Audit Request"),
InfoTextWidget(label: context.translation.requestNo, value: requestDetails!.requestNo),
InfoTextWidget(label: context.translation.assetNumber, value: requestDetails!.assetNo),
InfoTextWidget(label: context.translation.assetSN, value: requestDetails!.assetSN),
InfoTextWidget(label: context.translation.model, value: requestDetails!.model),
InfoTextWidget(label: context.translation.site, value: requestDetails!.site, showArrow: true),
// infoWidget(label: context.translation.site, value: requestDetails!.site, context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
],
),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.push(context, MaterialPageRoute(builder: (context) => SystemInternalAuditDetailPage(auditId: requestDetails!.id!)));
});
}
Widget infoWidget({required String label, String? value, required BuildContext context}) {
if (value != null && value.isNotEmpty) {
return '$label: $value'.bodyText(context);
}
return const SizedBox();
}
}

@ -4,12 +4,15 @@ import 'package:flutter/material.dart';
import 'package:test_sa/extensions/context_extension.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/string_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/modules/medical_gas_inspection/medical_gas_inspection_detail_page.dart';
import 'package:test_sa/new_views/app_style/app_color.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_text_widget.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
class MedicalGasInspectionItemView extends StatelessWidget {
@ -42,27 +45,14 @@ class MedicalGasInspectionItemView extends StatelessWidget {
backgroundColor: AppColor.getHistoryLogStatusColorByName(requestData!.statusName!),
),
1.width.expanded,
Text(requestData!.transactionDate!.toServiceRequestCardFormat,
textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50)),
InfoDateWidget(requestData!.transactionDate ?? ""),
],
),
(requestData?.typeTransaction ?? 'Medical Gas Request').heading5(context),
infoWidget(label: 'Request Number'.addTranslation, value: requestData?.requestNo ?? '-', context: context),
infoWidget(label: 'Request Type'.addTranslation, value: requestData?.requestType ?? '-', context: context),
InfoHeaderWidget(requestData?.typeTransaction ?? 'Medical Gas Request'),
InfoTextWidget(label: 'Request Number'.addTranslation, value: requestData?.requestNo ?? '-'),
InfoTextWidget(label: 'Request Type'.addTranslation, value: requestData?.requestType ?? '-', showArrow: true),
// infoWidget(label: 'Site'.addTranslation, value: requestData?.si ?? '-', context: context),
// infoWidget(label: 'Gas Type'.addTranslation, value: requestDetails?.gasType ?? '-', context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
],
),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.of(context).push(MaterialPageRoute(
@ -74,6 +64,7 @@ class MedicalGasInspectionItemView extends StatelessWidget {
}
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 1,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
@ -92,25 +83,13 @@ class MedicalGasInspectionItemView extends StatelessWidget {
backgroundColor: AppColor.getHistoryLogStatusColorByName(requestDetails!.status!),
),
1.width.expanded,
Text(requestDetails!.date!.toServiceRequestCardFormat, textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50)),
],
),
(requestDetails?.nameOfType ?? 'Medical Gas Request').heading5(context),
infoWidget(label: 'Request Number'.addTranslation, value: requestDetails?.requestNo ?? '-', context: context),
infoWidget(label: 'Request Type'.addTranslation, value: requestDetails?.requestType ?? '-', context: context),
infoWidget(label: 'Site'.addTranslation, value: requestDetails?.site ?? '-', context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
InfoDateWidget(requestDetails!.date ?? ""),
],
),
InfoHeaderWidget(requestDetails?.nameOfType ?? 'Medical Gas Request'),
InfoTextWidget(label: 'Request Number'.addTranslation, value: requestDetails?.requestNo ?? '-'),
InfoTextWidget(label: 'Request Type'.addTranslation, value: requestDetails?.requestType ?? '-'),
InfoTextWidget(label: 'Site'.addTranslation, value: requestDetails?.site ?? '-', showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.of(context).push(MaterialPageRoute(
@ -120,11 +99,4 @@ class MedicalGasInspectionItemView extends StatelessWidget {
)));
});
}
Widget infoWidget({required String label, String? value, required BuildContext context}) {
if (value != null && value.isNotEmpty) {
return '$label: $value'.bodyText(context);
}
return const SizedBox();
}
}

@ -1,12 +1,13 @@
import 'package:flutter/material.dart';
import 'package:test_sa/extensions/context_extension.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/widget_extensions.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/new_views/app_style/app_color.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_text_widget.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
import 'task_request_detail_view.dart';
@ -39,30 +40,13 @@ class TaskRequestItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestData!.statusName!),
),
1.width.expanded,
Text(
requestData!.transactionDate?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
],
),
8.height,
(requestData?.typeTransaction ?? context.translation.taskRequest).heading5(context),
infoWidget(label: context.translation.requestNo, value: requestData?.requestNo, context: context),
infoWidget(label: context.translation.assetName, value: requestData?.assetName, context: context),
infoWidget(label: context.translation.assetNo, value: requestData?.assetNumber, context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
InfoDateWidget(requestData!.transactionDate ?? ""),
],
),
InfoHeaderWidget(requestData?.typeTransaction ?? context.translation.taskRequest),
InfoTextWidget(label: context.translation.requestNo, value: requestData?.requestNo),
InfoTextWidget(label: context.translation.assetName, value: requestData?.assetName),
InfoTextWidget(label: context.translation.assetNo, value: requestData?.assetNumber, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.of(context).push(MaterialPageRoute(
@ -75,6 +59,7 @@ class TaskRequestItemView extends StatelessWidget {
}
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 1,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
@ -91,33 +76,15 @@ class TaskRequestItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestDetails?.status!),
),
1.width.expanded,
Text(
requestDetails!.date?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
],
),
8.height,
(requestDetails?.nameOfType ?? context.translation.taskRequest).heading5(context),
8.height,
infoWidget(label: context.translation.requestNo, value: requestDetails!.requestNo, context: context),
infoWidget(label: context.translation.assetName, value: requestDetails!.assetName, context: context),
infoWidget(label: context.translation.assetNo, value: requestDetails!.assetNo, context: context),
infoWidget(label: context.translation.assetSN, value: requestDetails!.assetSN, context: context),
infoWidget(label: context.translation.site, value: requestDetails!.site, context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
InfoDateWidget(requestDetails!.date ?? ""),
],
),
InfoHeaderWidget(requestDetails?.nameOfType ?? context.translation.taskRequest),
InfoTextWidget(label: context.translation.requestNo, value: requestDetails!.requestNo),
InfoTextWidget(label: context.translation.assetName, value: requestDetails!.assetName),
InfoTextWidget(label: context.translation.assetNo, value: requestDetails!.assetNo),
InfoTextWidget(label: context.translation.assetSN, value: requestDetails!.assetSN),
InfoTextWidget(label: context.translation.site, value: requestDetails!.site, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.of(context).push(MaterialPageRoute(
@ -128,11 +95,4 @@ class TaskRequestItemView extends StatelessWidget {
)));
});
}
Widget infoWidget({required String label, String? value, required BuildContext context}) {
if (value != null && value.isNotEmpty) {
return '$label: $value'.bodyText(context);
}
return const SizedBox();
}
}

@ -1,12 +1,13 @@
import 'package:flutter/material.dart';
import 'package:test_sa/extensions/context_extension.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/widget_extensions.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/new_views/app_style/app_color.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_text_widget.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
import 'traf_request_detail_page.dart';
@ -39,29 +40,12 @@ class TrafRequestItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestData!.statusName!),
),
1.width.expanded,
Text(
requestData!.transactionDate?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
],
),
8.height,
(requestData?.typeTransaction ?? "TRAF Request").heading5(context),
infoWidget(label: context.translation.requestType, value: requestData?.requestTypeName, context: context),
infoWidget(label: "TRAF No", value: requestData?.requestNo, context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
InfoDateWidget(requestData!.transactionDate ?? ""),
],
),
InfoHeaderWidget(requestData?.typeTransaction ?? "TRAF Request"),
InfoTextWidget(label: context.translation.requestType, value: requestData?.requestTypeName),
InfoTextWidget(label: "TRAF No", value: requestData?.requestNo, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.push(context, MaterialPageRoute(builder: (context) => TrafRequestDetailPage(trafId: requestData!.id!)));
@ -69,6 +53,7 @@ class TrafRequestItemView extends StatelessWidget {
}
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 1,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
@ -85,41 +70,16 @@ class TrafRequestItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestDetails?.status!),
),
1.width.expanded,
Text(
requestDetails!.date?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
],
),
8.height,
(requestDetails?.nameOfType ?? "TRAF Request").heading5(context),
8.height,
infoWidget(label: context.translation.requestType, value: requestDetails!.requestType, context: context),
infoWidget(label: "TRAF No", value: requestDetails!.requestNo, context: context),
infoWidget(label: context.translation.site, value: requestDetails!.site, context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
InfoDateWidget(requestDetails!.date ?? ""),
],
),
InfoHeaderWidget(requestDetails?.nameOfType ?? "TRAF Request"),
InfoTextWidget(label: context.translation.requestType, value: requestDetails!.requestType),
InfoTextWidget(label: "TRAF No", value: requestDetails!.requestNo),
InfoTextWidget(label: context.translation.site, value: requestDetails!.site, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
Navigator.push(context, MaterialPageRoute(builder: (context) => TrafRequestDetailPage(trafId: requestDetails!.id!)));
});
}
Widget infoWidget({required String label, String? value, required BuildContext context}) {
if (value != null && value.isNotEmpty) {
return '$label: $value'.bodyText(context);
}
return const SizedBox();
}
}

@ -5,17 +5,34 @@ import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/all_requests_provider.dart';
import 'package:test_sa/extensions/context_extension.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/widget_extensions.dart';
import 'package:test_sa/modules/cm_module/views/components/action_button/footer_action_button.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
import 'package:test_sa/new_views/common_widgets/app_text_form_field.dart';
import 'package:test_sa/views/widgets/date_and_time/date_picker.dart';
import '../../../../models/search_all_requests_model.dart';
import '../../../common_widgets/app_lazy_loading.dart';
import '../../../common_widgets/default_app_bar.dart';
import '../widgets/request_search_buttons.dart';
enum SortOrder {
ascending,
descending;
String get label {
switch (this) {
case SortOrder.ascending:
return "Ascending/Oldest";
case SortOrder.descending:
return "Descending/Newest";
}
}
}
class AllRequestsSearchPage extends StatefulWidget {
static const String id = "all_requests_search_page";
final SearchAllRequestsModel? data;
@ -29,10 +46,25 @@ class AllRequestsSearchPage extends StatefulWidget {
class _AllRequestsSearchPageState extends State<AllRequestsSearchPage> {
SearchAllRequestsModel? search;
final GlobalKey<FormState> _formKey = GlobalKey<FormState>();
SortOrder selectedSortOption = SortOrder.ascending;
@override
void initState() {
search = widget.data;
// Initialize from widget.data if available, otherwise default to Ascending
if (search?.selectedSortOption != null) {
// Match the saved sort option name to our enum
try {
selectedSortOption = SortOrder.values.firstWhere(
(e) => e.name == search!.selectedSortOption,
orElse: () => SortOrder.ascending,
);
} catch (e) {
selectedSortOption = SortOrder.ascending;
}
}
if (search != null) {
search!.requestNumber?.controller?.text = search?.requestNumber?.value ?? "";
search!.assetName?.controller?.text = search?.assetName?.value ?? "";
@ -81,6 +113,9 @@ class _AllRequestsSearchPageState extends State<AllRequestsSearchPage> {
setState(() {
// search!.resetSearchValues();
search?.resetSearchValuesAndController(except: null);
search!.startDate = null;
search!.endDate = null;
selectedSortOption = SortOrder.ascending;
});
}),
],
@ -132,6 +167,79 @@ class _AllRequestsSearchPageState extends State<AllRequestsSearchPage> {
search!.searchBySelectedValue!.value = value;
},
),
16.height,
"Sort".heading5(context),
8.height,
Row(
children: [
for (var element in SortOrder.values)
Padding(
padding: const EdgeInsets.only(right: 16),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
SizedBox(
width: 24,
height: 24,
child: Radio(
value: element,
activeColor: AppColor.primary10,
fillColor: WidgetStateColor.resolveWith((states) {
if (states.contains(WidgetState.selected)) {
return AppColor.primary10;
}
return Colors.grey;
}),
groupValue: selectedSortOption,
onChanged: (state) {
setState(() {
selectedSortOption = element;
});
},
),
),
8.width,
Text(
element.label,
style: AppTextStyles.tinyFont.copyWith(color: AppColor.filterButtonTextColor(context)),
),
],
),
)
],
),
16.height,
context.translation.pickDate.heading5(context),
8.height,
Row(
children: [
ADatePicker(
label: context.translation.from,
from: DateTime(2000),
date: search!.startDate,
onDatePicker: (date) {
setState(() {
search!.startDate = date;
});
},
).expanded,
8.width,
ADatePicker(
label: context.translation.to,
from: DateTime(2000),
date: search!.endDate,
onDatePicker: (date) {
if (search!.startDate != null && date.isBefore(search!.startDate!)) {
"End Date time must be greater then start date".showToast;
return;
}
setState(() {
search!.endDate = date;
});
},
).expanded,
],
),
],
),
).expanded,
@ -145,10 +253,15 @@ class _AllRequestsSearchPageState extends State<AllRequestsSearchPage> {
void _search() async {
if (_formKey.currentState!.validate()) {
_formKey.currentState!.save();
// Save the enum name (ascending or descending) instead of label
search!.selectedSortOption = selectedSortOption.name;
final requestsProvider = Provider.of<AllRequestsProvider>(context, listen: false);
if (search?.startDate != null) search?.endDate ??= DateTime.now();
showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
requestsProvider.reset();
await requestsProvider.getAllRequests(context, search: search);
await requestsProvider.getAllRequests(context, search: search, isAscending: selectedSortOption == SortOrder.ascending);
Navigator.pop(context);
Navigator.of(context).pop(search);
}
@ -160,6 +273,9 @@ class _AllRequestsSearchPageState extends State<AllRequestsSearchPage> {
(search?.assetNo?.controller?.text.isNotEmpty ?? false) ||
(search?.manufacture?.controller?.text.isNotEmpty ?? false) ||
(search?.sn?.controller?.text.isNotEmpty ?? false) ||
(search?.model?.controller?.text.isNotEmpty ?? false);
(search?.model?.controller?.text.isNotEmpty ?? false) ||
(search?.startDate != null) ||
(search?.endDate != null) ||
selectedSortOption != SortOrder.ascending;
}
}

@ -3,11 +3,15 @@ import 'package:test_sa/extensions/context_extension.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/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/device/device_transfer.dart';
import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/modules/tm_module/device_transfer/device_transfer_details.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_text_widget.dart';
import '../../../../views/widgets/requests/request_status.dart';
import '../../../app_style/app_color.dart';
@ -43,38 +47,14 @@ class DeviceItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestData?.statusName),
),
1.width.expanded,
Text(requestData!.transactionDate?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50)),
],
),
8.height,
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
(requestData?.typeTransaction ?? context.translation.deviceTransferRequest).heading5(context),
// "${context.translation.from} : ${request.siteTransferFrom?.cleanupWhitespace.capitalizeFirstOfEach}".bodyText(context), // todo ask ahmed
// "${context.translation.to} : ${request.siteTransferTo?.cleanupWhitespace.capitalizeFirstOfEach}".bodyText(context),// todo ask ahmed
// requestData!.statusName!.replaceAll("=", ":").bodyText(context),
'${context.translation.requestNo}: ${requestData!.requestNo}'.bodyText(context),
],
),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(
Icons.arrow_forward,
color: AppColor.blueStatus(context),
size: 14,
)
InfoDateWidget(requestData!.transactionDate ?? ""),
],
),
InfoHeaderWidget(requestData?.typeTransaction ?? context.translation.deviceTransferRequest),
// "${context.translation.from} : ${request.siteTransferFrom?.cleanupWhitespace.capitalizeFirstOfEach}".bodyText(context), // todo ask ahmed
// "${context.translation.to} : ${request.siteTransferTo?.cleanupWhitespace.capitalizeFirstOfEach}".bodyText(context),// todo ask ahmed
// requestData!.statusName!.replaceAll("=", ":").bodyText(context),
InfoTextWidget(label: context.translation.requestNo, value: requestData!.requestNo, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => DeviceTransferDetails(model: DeviceTransfer(id: requestData!.id!), moduleId: requestData!.transactionNo!)));
@ -85,6 +65,7 @@ class DeviceItemView extends StatelessWidget {
return Column(
// mainAxisAlignment: MainAxisAlignment.spaceBetween,
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 1,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
@ -103,39 +84,14 @@ class DeviceItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestDetails?.status),
),
1.width.expanded,
Text(requestDetails!.date?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50)),
],
),
8.height,
Column(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
(requestDetails?.nameOfType ?? context.translation.deviceTransferRequest).heading5(context),
8.height,
'${context.translation.trNumber}: ${requestDetails!.requestNo}'.bodyText(context),
"${context.translation.from} : ${requestDetails!.siteTransferFrom?.cleanupWhitespace.capitalizeFirstOfEach}".bodyText(context),
"${context.translation.to} : ${requestDetails!.siteTransferTo?.cleanupWhitespace.capitalizeFirstOfEach}".bodyText(context),
// requestDetails!.status!.replaceAll("=", ":").bodyText(context),
],
),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(
Icons.arrow_forward,
color: AppColor.blueStatus(context),
size: 14,
)
InfoDateWidget(requestDetails!.date ?? ""),
],
),
InfoHeaderWidget(requestDetails?.nameOfType ?? context.translation.deviceTransferRequest),
InfoTextWidget(label: context.translation.trNumber, value: requestDetails!.requestNo),
InfoTextWidget(label: context.translation.from, value: requestDetails!.siteTransferFrom?.cleanupWhitespace.capitalizeFirstOfEach),
InfoTextWidget(label: context.translation.to, value: requestDetails!.siteTransferTo?.cleanupWhitespace.capitalizeFirstOfEach, showArrow: true),
// requestDetails!.status!.replaceAll("=", ":").bodyText(context),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(

@ -1,13 +1,15 @@
import 'package:flutter/material.dart';
import 'package:test_sa/extensions/context_extension.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/widget_extensions.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/models/new_models/gas_refill_model.dart';
import 'package:test_sa/modules/tm_module/gas_refill/gas_refill_details.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_text_widget.dart';
import '../../../../views/widgets/requests/request_status.dart';
import '../../../app_style/app_color.dart';
@ -28,45 +30,17 @@ class GasRefillItemView extends StatelessWidget {
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// StatusLabel(
// label: requestData!.priorityName!,
// textColor: AppColor.getRequestStatusTextColorByName(context, requestData!.priorityName!),
// backgroundColor: AppColor.getRequestStatusColorByName(context, requestData!.priorityName!),
// ),
// 8.width,
StatusLabel(
label: requestData!.statusName!,
textColor: AppColor.getRequestStatusTextColorByName(context, requestData!.statusName!),
backgroundColor: AppColor.getRequestStatusColorByName(context, requestData!.statusName!),
),
1.width.expanded,
Text(requestData!.transactionDate?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50)),
],
),
8.height,
(requestData?.typeTransaction ?? context.translation.gasRefillRequest).heading5(context),
// '${context.translation.gasType}: ${request.gasType}'.bodyText(context), // todo ask ahmed
// '${context.translation.site}: ${request.site?.cleanupWhitespace.capitalizeFirstOfEach}'.bodyText(context),// todo ask ahmed
'${context.translation.requestNo}: ${requestData!.requestNo}'.bodyText(context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(
color: AppColor.blueStatus(context),
),
),
4.width,
Icon(
Icons.arrow_forward,
color: AppColor.blueStatus(context),
size: 14,
)
InfoDateWidget(requestData!.transactionDate ?? ""),
],
),
InfoHeaderWidget(requestData?.typeTransaction ?? context.translation.gasRefillRequest),
InfoTextWidget(label: context.translation.requestNo, value: requestData!.requestNo, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(
@ -85,50 +59,24 @@ class GasRefillItemView extends StatelessWidget {
if (requestDetails != null) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 1,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// StatusLabel(
// label: requestDetails!.priority!,
// textColor: AppColor.getRequestStatusTextColorByName(context, requestDetails!.priority!),
// backgroundColor: AppColor.getRequestStatusColorByName(context, requestDetails!.priority!),
// ),
// 8.width,
StatusLabel(
label: requestDetails!.status!,
textColor: AppColor.getRequestStatusTextColorByName(context, requestDetails!.status!),
backgroundColor: AppColor.getRequestStatusColorByName(context, requestDetails!.status!),
),
1.width.expanded,
Text(requestDetails!.date?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end, style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50)),
],
),
8.height,
(requestDetails?.nameOfType ?? context.translation.gasRefillRequest).heading5(context),
8.height,
'${context.translation.gasType}: ${requestDetails!.gasType}'.bodyText(context),
'${context.translation.site}: ${requestDetails!.site?.cleanupWhitespace?.capitalizeFirstOfEach}'.bodyText(context),
'${context.translation.requestNo}: ${requestDetails!.requestNo}'.bodyText(context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(
color: AppColor.blueStatus(context),
),
),
4.width,
Icon(
Icons.arrow_forward,
color: AppColor.blueStatus(context),
size: 14,
)
InfoDateWidget(requestDetails!.date ?? ""),
],
),
InfoHeaderWidget(requestDetails?.nameOfType ?? context.translation.gasRefillRequest),
InfoTextWidget(label: context.translation.gasType, value: requestDetails!.gasType),
InfoTextWidget(label: context.translation.site, value: requestDetails!.site?.cleanupWhitespace.capitalizeFirstOfEach),
InfoTextWidget(label: context.translation.requestNo, value: requestDetails!.requestNo, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(

@ -1,13 +1,14 @@
import 'package:flutter/material.dart';
import 'package:test_sa/extensions/context_extension.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/widget_extensions.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/modules/pm_module/ppm_wo/ppm_details_page.dart';
import 'package:test_sa/new_views/app_style/app_color.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_text_widget.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
class PpmItemView extends StatelessWidget {
@ -38,33 +39,15 @@ class PpmItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestData!.statusName!),
),
1.width.expanded,
Text(
requestData!.transactionDate?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
InfoDateWidget(requestData!.transactionDate ?? ""),
],
),
8.height,
(requestData?.typeTransaction ?? context.translation.ppmRequest).heading5(context),
8.height,
'${context.translation.assetName}: ${requestData!.assetName}'.bodyText(context),
'${context.translation.assetNumber}: ${requestData!.assetNumber}'.bodyText(context),
InfoHeaderWidget(requestData?.typeTransaction ?? context.translation.ppmRequest),
InfoTextWidget(label: context.translation.assetName, value: requestData!.assetName),
InfoTextWidget(label: context.translation.assetNumber, value: requestData!.assetNumber),
// '${context.translation.assetSN}: ${request.assetSN}'.bodyText(context),//todo ask ahmed
// '${context.translation.code}: ${request.code}'.bodyText(context),
'PM No: ${requestData!.requestNo}'.bodyText(context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
],
),
InfoTextWidget(label: 'PM No', value: requestData!.requestNo, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(requestId: requestData!.id!)));
@ -73,6 +56,7 @@ class PpmItemView extends StatelessWidget {
if (requestDetails != null) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 1,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
@ -89,33 +73,15 @@ class PpmItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestDetails!.status!),
),
1.width.expanded,
Text(
requestDetails!.date?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
InfoDateWidget(requestDetails!.date ?? ""),
],
),
8.height,
(requestDetails?.nameOfType ?? context.translation.ppmRequest).heading5(context),
8.height,
'${context.translation.assetName}: ${requestDetails!.assetName}'.bodyText(context),
'${context.translation.assetNumber}: ${requestDetails!.assetNo}'.bodyText(context),
'${context.translation.assetSN}: ${requestDetails!.assetSN}'.bodyText(context),
InfoHeaderWidget(requestDetails?.nameOfType ?? context.translation.ppmRequest),
InfoTextWidget(label: context.translation.assetName, value: requestDetails!.assetName),
InfoTextWidget(label: context.translation.assetNumber, value: requestDetails!.assetNo),
InfoTextWidget(label: context.translation.assetSN, value: requestDetails!.assetSN),
// '${context.translation.code}: ${request.code}'.bodyText(context),
'PM No: ${requestDetails!.requestNo}'.bodyText(context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
],
),
InfoTextWidget(label: 'PM No', value: requestDetails!.requestNo, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(requestId: requestDetails!.id!)));

@ -4,16 +4,16 @@ import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
import 'package:test_sa/extensions/context_extension.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/widget_extensions.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/enums/user_types.dart';
import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/modules/cleaner_module/models/cleaner_task_search_result.dart';
import 'package:test_sa/modules/cleaner_module/pages/cleaner_search_details_view.dart';
import 'package:test_sa/modules/pm_module/recurrent_wo/recurrent_work_order_view.dart';
import 'package:test_sa/new_views/app_style/app_color.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_text_widget.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
class RecurrentWoItemView extends StatelessWidget {
@ -47,32 +47,11 @@ class RecurrentWoItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestData!.statusName!),
),
1.width.expanded,
Text(
requestData!.transactionDate?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
],
),
8.height,
(requestData?.typeTransaction ?? context.translation.ppmRequest).heading5(context),
8.height,
// '${context.translation.assetNumber}: ${requestData!.assetNumber}'.bodyText(context),
// '${context.translation.assetSN}: ${request.assetSN}'.bodyText(context),//todo ask ahmed
// '${context.translation.code}: ${request.code}'.bodyText(context),
'${context.translation.taskNo}: ${requestData!.requestNo}'.bodyText(context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
InfoDateWidget(requestData!.transactionDate ?? ""),
],
),
InfoHeaderWidget(requestData?.typeTransaction ?? context.translation.ppmRequest),
InfoTextWidget(label: context.translation.taskNo, value: requestData!.requestNo, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() {
if (isFMSEngineer && (requestData?.statusValue == 4)) {
@ -93,6 +72,7 @@ class RecurrentWoItemView extends StatelessWidget {
if (requestDetails != null) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
spacing: 1,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
@ -109,32 +89,12 @@ class RecurrentWoItemView extends StatelessWidget {
backgroundColor: AppColor.getRequestStatusColorByName(context, requestDetails!.status!),
),
1.width.expanded,
Text(
requestDetails!.date?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
],
),
8.height,
(requestDetails?.nameOfType ?? context.translation.recurrentWo).heading5(context),
8.height,
// '${context.translation.taskNo}: ${requestDetails!.id}'.bodyText(context),
'${context.translation.site}: ${requestDetails!.site}'.bodyText(context),
// '${context.translation.code}: ${request.code}'.bodyText(context),
'${context.translation.taskNo}: ${requestDetails!.requestNo}'.bodyText(context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
InfoDateWidget(requestDetails!.date ?? ""),
],
),
InfoHeaderWidget(requestDetails?.nameOfType ?? context.translation.recurrentWo),
InfoTextWidget(label: context.translation.site, value: requestDetails!.site),
InfoTextWidget(label: context.translation.taskNo, value: requestDetails!.requestNo, showArrow: true),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() async {
if (isFMSEngineer && (requestDetails?.statusValue == 4)) {

Loading…
Cancel
Save