Compare commits

...

2 Commits

@ -1,4 +1,5 @@
import 'dart:convert';
import 'dart:developer';
import 'package:flutter/widgets.dart';
import 'package:http/http.dart';
@ -156,19 +157,20 @@ class AllRequestsProvider extends ChangeNotifier {
list.add(7); // task mod
}
// switching asset inventory to users permissions
//TODO uncommit this to enable TRAF in production.
// context.userProvider.modulesPermissionsList.forEach((module) {
// if (module.module!.value! == 8 || module.module!.value! == 9) {
// list.add(module.module!.value!);
// }
// });
//Todo commit this when passing to production.
context.userProvider.modulesPermissionsList.forEach((module) {
if (module.module!.value! == 8) {
list.add(module.module!.value!);
}
});
if (context.settingProvider.isUserFlowMedical && !context.userProvider.isAssessor) {
if (context.settingProvider.isUserFlowMedical && !context.userProvider.isAssessor && (context.userProvider.isNurse || context.userProvider.isEngineer)) {
list.add(9); //
}
list.add(12);
@ -181,7 +183,9 @@ class AllRequestsProvider extends ChangeNotifier {
// list = [16];
list.add(16);
}
list.forEach((element) {
log('request status are ${element.toString()}');
});
return list;
}

@ -1,4 +1,5 @@
import 'dart:convert';
import 'dart:developer';
import 'dart:io';
import 'package:flutter/material.dart';
@ -77,30 +78,21 @@ class _CreateTRAFRequestPageState extends State<CreateTRAFRequestPage> {
void initState() {
super.initState();
trafRequest = TrafRequestDataModel(id: 0, attachments: [], departments: [], qty: 1);
// Reset providers and load site data after the first frame to avoid provider lifecycle issues
WidgetsBinding.instance.addPostFrameCallback((_) {
// Only reset providers if they don't have data (first time load)
// This prevents unnecessary loading when navigating back and forth
final requestTypeProvider = Provider.of<RequestTypeLookupProvider>(context, listen: false);
final yesNoProvider = Provider.of<YesNoLookupProvider>(context, listen: false);
final customerProvider = Provider.of<CustomerLookupProvider>(context, listen: false);
// Only load if not already loaded
if (requestTypeProvider.items.isEmpty) {
requestTypeProvider.getData();
requestTypeProvider.reset();
}
if (yesNoProvider.items.isEmpty) {
yesNoProvider.getData();
yesNoProvider.reset();
}
// Load customer/site data using the string user ID (GUID) only if not loaded
if (customerProvider.items.isEmpty) {
final userId = context.userProvider.user?.userID;
if (userId != null && userId.isNotEmpty) {
customerProvider.getDataByUserId(userId);
}
final userId = context.userProvider.user?.userID;
if (customerProvider.items.isEmpty && userId != null && userId.isNotEmpty) {
customerProvider.getDataByUserId(userId);
}
log('user id is ${userId}');
});
}
@ -117,7 +109,7 @@ class _CreateTRAFRequestPageState extends State<CreateTRAFRequestPage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: const DefaultAppBar(title: "TRAF Request"),
appBar: const DefaultAppBar(title: "Assessment of Need & Technology"),
body: Form(
key: _formKey,
child: Column(
@ -240,24 +232,20 @@ class _CreateTRAFRequestPageState extends State<CreateTRAFRequestPage> {
},
),
12.height,
Focus(
focusNode: siteDepartmentNode,
child: SingleItemDropDownMenu<TrafDepartment, DepartmentLookupProvider>(
context: context,
showAsBottomSheet: true,
backgroundColor: AppColor.neutral100,
showShadow: false,
title: "Department",
requestById: null,
// Don't pass requestById to prevent auto-fetch
initialValue: selectedDepartment,
enabled: selectedSite != null,
onSelect: (value) {
selectedDepartment = value;
trafRequest?.departmentId = value?.id?.toString();
setState(() {});
},
),
SingleItemDropDownMenu<TrafDepartment, DepartmentLookupProvider>(
context: context,
showAsBottomSheet: true,
backgroundColor: AppColor.neutral100,
showShadow: false,
title: "Department",
requestById: null,
// initialValue: selectedDepartment,
enabled: selectedSite != null,
onSelect: (value) {
selectedDepartment = value;
trafRequest?.departmentId = value?.id?.toString();
setState(() {});
},
),
12.height,
AppTextFormField(

@ -57,7 +57,7 @@ class _TrafRequestDetailPageState extends State<TrafRequestDetailPage> {
Widget build(BuildContext context) {
bool isEngineer = (Provider.of<UserProvider>(context, listen: false).user?.type) == UsersTypes.engineer;
return Scaffold(
appBar: const DefaultAppBar(title: "TRAF Request"),
appBar: const DefaultAppBar(title: "Assessment of Need & Technology"),
body: Selector<TrafRequestProvider, bool>(
selector: (_, myModel) => myModel.isLoading, // Selects only the userName
builder: (_, isLoading, __) {
@ -129,7 +129,7 @@ class _TrafRequestDetailPageState extends State<TrafRequestDetailPage> {
style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
),
8.height,
'TRAF No: ${data.reqCode ?? '-'}'.bodyText(context),
'Request No: ${data.reqCode ?? '-'}'.bodyText(context),
'Request type: ${data.requestTypeName ?? '-'}'.bodyText(context),
if (data.requestTypeValue == 1) ...[
4.height,

@ -47,9 +47,11 @@ class TrafRequestItemView extends StatelessWidget {
],
),
8.height,
(requestData?.typeTransaction ?? "TRAF Request").heading5(context),
//TODO uncommit this when API will provide changed name for traf
// (requestData?.typeTransaction ?? "TRAF Request").heading5(context),
("Assessment of Need & Technology").heading5(context),
infoWidget(label: context.translation.requestType, value: requestData?.requestTypeName, context: context),
infoWidget(label: "TRAF No", value: requestData?.requestNo, context: context),
infoWidget(label: "Request No", value: requestData?.requestNo, context: context),
8.height,
Row(
mainAxisSize: MainAxisSize.min,
@ -93,10 +95,13 @@ class TrafRequestItemView extends StatelessWidget {
],
),
8.height,
(requestDetails?.nameOfType ?? "TRAF Request").heading5(context),
//TODO uncommit this when API will provide changed name for traf
// (requestDetails?.nameOfType ?? "TRAF Request").heading5(context),
("Assessment of Need & Technology").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: "Request No", value: requestDetails!.requestNo, context: context),
infoWidget(label: context.translation.site, value: requestDetails!.site, context: context),
8.height,
Row(

@ -147,11 +147,17 @@ class CreateRequestModel {
// list.add(CreateRequestModel('Demo Request'.addTranslation, "add_icon", CreateDemoRequestPage.id));
}
}
if(context.settingProvider.isUserFlowMedical&&(context.userProvider.isAssessor||context.userProvider.isEngineer||context.userProvider.isNurse)){
//Traf name changed to Assessment of Need & Technology by client .
list.add(CreateRequestModel("Assessment of Need & Technology".addTranslation, "add_icon", CreateTRAFRequestPage.id));
}
context.userProvider.modulesPermissionsList.forEach((module) {
if (module.module!.value! == 9 && (module.canAdd ?? false)) {
list.add(CreateRequestModel("TRAF".addTranslation, "add_icon", CreateTRAFRequestPage.id));
}
///TODO uncommit this to enable TRAF in production.
// if (module.module!.value! == 9 && (module.canAdd ?? false)) {
// list.add(CreateRequestModel("TRAF".addTranslation, "add_icon", CreateTRAFRequestPage.id));
// }
if (module.module!.value! == 15 && (module.canAdd ?? false)) {
list.add(CreateRequestModel('Demo Request'.addTranslation, "add_icon", CreateDemoRequestPage.id));
}

@ -120,7 +120,9 @@ class _AllRequestsFilterPageState extends State<AllRequestsFilterPage> {
///TODO need add accessor filter as well.
if (context.settingProvider.isUserFlowMedical && context.userProvider.isAssessor) {
types = {
'TRAF': 9,
// 'TRAF': 9,
//Traf name changed as per client requirements
'Assessment of Need & Technology': 9,
// 'Demo': 15, moved to permission api
};
}

@ -58,14 +58,16 @@ class _MyRequestsPageState extends State<MyRequestsPage> {
// switching asset inventory to users permissions
context.userProvider.modulesPermissionsList.forEach((module) {
if (module.module!.value! == 8 || module.module!.value! == 9 || module.module!.value! == 15) {
///todo uncommit this in prod currently apis is not giving the correct name for traf
// if (module.module!.value! == 8 || module.module!.value! == 9 || module.module!.value! == 15) {
if (module.module!.value! == 8 || module.module!.value! == 15) {
requestsList.add(Request(module.module!.value!, module.module!.name!.addTranslation));
}
});
//Hide TRAF.
// if (context.settingProvider.isUserFlowMedical && context.userProvider.user!.type == UsersTypes.normal_user) {
// requestsList.add(Request(9, 'TRAF'));
// }
if (context.settingProvider.isUserFlowMedical && context.userProvider.user!.type == UsersTypes.normal_user) {
requestsList.add(Request(9, 'Assessment of Need & Technology'));
}
if (context.userProvider.isEngineer && context.settingProvider.isUserFlowMedical) {
requestsList.add(Request(10, 'Equipment Internal Audit'));
requestsList.add(Request(11, 'System Internal Audit'));
@ -82,7 +84,9 @@ class _MyRequestsPageState extends State<MyRequestsPage> {
if (context.userProvider.isAssessor) {
requestsList = [
Request(null, context.translation.allWorkOrder),
Request(9, 'TRAF'),
// Request(9, 'TRAF'),
//name changed as requested by client
Request(9, 'Assessment of Need & Technology'),
// Request(15, 'Demo'), moved to permission api
];
}

Loading…
Cancel
Save