assessor role added for TRAF.

design_3.0_internal_audit_module
Sikander Saleem 2 weeks ago
parent 8c45d89c3e
commit 40c7e75fa4

@ -134,19 +134,24 @@ class AllRequestsProvider extends ChangeNotifier {
List<int> getStatues(BuildContext context) { List<int> getStatues(BuildContext context) {
List<int> list = [1, 2, 3, 4]; List<int> list = [1, 2, 3, 4];
if (context.userProvider.user!.type != UsersTypes.normal_user) { if (context.userProvider.isAssessor) {
list = [9];
return list;
}
if (!context.userProvider.isNurse) {
list.add(5); list.add(5);
} }
list.add(6); // task module list.add(6); // task module
if (context.settingProvider.isUserFlowMedical && context.userProvider.user!.type != UsersTypes.normal_user) { if (context.settingProvider.isUserFlowMedical && !context.userProvider.isNurse) {
list.add(7); // task mod list.add(7); // task mod
} }
if (context.userProvider.user!.type != UsersTypes.normal_user) { if (!context.userProvider.isNurse) {
list.add(8); // list.add(8); //
} }
if (context.userProvider.user!.type == UsersTypes.normal_user) { if (context.userProvider.isNurse) {
list.add(9); // list.add(9); //
} }

@ -8,6 +8,7 @@ import 'package:http/http.dart';
import 'package:test_sa/controllers/api_routes/api_manager.dart'; import 'package:test_sa/controllers/api_routes/api_manager.dart';
import 'package:test_sa/controllers/api_routes/urls.dart'; import 'package:test_sa/controllers/api_routes/urls.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/models/enums/user_types.dart';
import 'package:test_sa/models/new_models/general_response_model.dart'; import 'package:test_sa/models/new_models/general_response_model.dart';
import 'package:test_sa/models/new_models/update_password.dart'; import 'package:test_sa/models/new_models/update_password.dart';
import 'package:test_sa/models/new_models/verify_otp_model.dart'; import 'package:test_sa/models/new_models/verify_otp_model.dart';
@ -39,6 +40,12 @@ class UserProvider extends ChangeNotifier {
File? profileImage; File? profileImage;
bool get isEngineer => user!.type == UsersTypes.engineer;
bool get isNurse => user!.type == UsersTypes.normal_user;
bool get isAssessor => user!.type == UsersTypes.assessor || user!.type == UsersTypes.assessorTl;
VerifyOtpModel _verifyOtpModel = VerifyOtpModel(); VerifyOtpModel _verifyOtpModel = VerifyOtpModel();
SwipeTransaction _swipeTransactionModel = SwipeTransaction(); SwipeTransaction _swipeTransactionModel = SwipeTransaction();
List<SwipeHistory> _swipeHistory = []; List<SwipeHistory> _swipeHistory = [];

@ -2,4 +2,6 @@ enum UsersTypes {
engineer, // 0 engineer, // 0
normal_user, // 1 normal_user, // 1
nurse, // 1 nurse, // 1
assessor,
assessorTl
} }

@ -88,12 +88,13 @@ class User {
Future<Map<String, dynamic>> toLoginJson() async { Future<Map<String, dynamic>> toLoginJson() async {
String notificationType = (Platform.isAndroid && !(await FirebaseNotificationManger.isGoogleServicesAvailable())) ? "HMC" : "FCM"; String notificationType = (Platform.isAndroid && !(await FirebaseNotificationManger.isGoogleServicesAvailable())) ? "HMC" : "FCM";
if(FirebaseNotificationManger.token==null){ if (FirebaseNotificationManger.token == null) {
//calling this agin to check for token as sometimes token is null fresh install.. //calling this agin to check for token as sometimes token is null fresh install..
await FirebaseNotificationManger.getToken(); await FirebaseNotificationManger.getToken();
} }
return {"username": userName, "password": password, "fireBaseToken": FirebaseNotificationManger?.token ?? "", "notificationType": notificationType}; return {"username": userName, "password": password, "fireBaseToken": FirebaseNotificationManger?.token ?? "", "notificationType": notificationType};
} }
UsersTypes? get type { UsersTypes? get type {
switch (userRoles?.first.value) { switch (userRoles?.first.value) {
case "R-6": case "R-6":
@ -102,11 +103,16 @@ class User {
return UsersTypes.normal_user; return UsersTypes.normal_user;
case "R-33": // Head Nurse Role case "R-33": // Head Nurse Role
return UsersTypes.normal_user; return UsersTypes.normal_user;
case "R-32": // Head Nurse Role
return UsersTypes.assessor;
case "R-19": // Head Nurse Role
return UsersTypes.assessorTl;
default: default:
return null; return null;
} }
} }
Map<String, dynamic> toUpdateProfileJson() { Map<String, dynamic> toUpdateProfileJson() {
Map<String, dynamic> jsonObject = {}; Map<String, dynamic> jsonObject = {};
// if (departmentId != null) jsonObject["department"] = departmentId; // if (departmentId != null) jsonObject["department"] = departmentId;
@ -309,9 +315,7 @@ class AssetGroup {
} }
@override @override
bool operator ==(Object other) => bool operator ==(Object other) => identical(this, other) || other is AssetGroup && runtimeType == other.runtimeType && id == other.id;
identical(this, other) ||
other is AssetGroup && runtimeType == other.runtimeType && id == other.id;
@override @override
int get hashCode => id.hashCode; int get hashCode => id.hashCode;

@ -5,6 +5,7 @@ import 'package:test_sa/extensions/context_extension.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/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart'; import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/models/enums/user_types.dart';
import 'package:test_sa/modules/cm_module/views/nurse/create_new_request_view.dart'; import 'package:test_sa/modules/cm_module/views/nurse/create_new_request_view.dart';
import 'package:test_sa/modules/tm_module/tasks_wo/create_task_view.dart'; import 'package:test_sa/modules/tm_module/tasks_wo/create_task_view.dart';
import 'package:test_sa/modules/traf_module/create_traf_request_page.dart'; import 'package:test_sa/modules/traf_module/create_traf_request_page.dart';
@ -13,13 +14,11 @@ import 'package:test_sa/new_views/pages/gas_refill_request_form.dart';
import 'package:test_sa/views/pages/device_transfer/create__device_transfer_request.dart'; import 'package:test_sa/views/pages/device_transfer/create__device_transfer_request.dart';
class CreateRequestTypeBottomSheet extends StatelessWidget { class CreateRequestTypeBottomSheet extends StatelessWidget {
final bool isEngineer; const CreateRequestTypeBottomSheet({super.key});
const CreateRequestTypeBottomSheet({super.key, required this.isEngineer});
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
List<CreateRequestModel> requestList = CreateRequestModel.requestsList(context, isEngineer); List<CreateRequestModel> requestList = CreateRequestModel.requestsList(context);
return SafeArea( return SafeArea(
top: false, top: false,
@ -89,9 +88,12 @@ class CreateRequestModel {
CreateRequestModel(this.title, this.icon, this.routeName); CreateRequestModel(this.title, this.icon, this.routeName);
static List<CreateRequestModel> requestsList(BuildContext context, bool isEngineer) { static List<CreateRequestModel> requestsList(BuildContext context) {
List<CreateRequestModel> list = []; List<CreateRequestModel> list = [];
if (isEngineer) {
if (context.userProvider.isAssessor) {
list.add(CreateRequestModel("TRAF".addTranslation, "add_icon", CreateTRAFRequestPage.id));
} else if (context.userProvider.isEngineer) {
if (Provider.of<SettingProvider>(context, listen: false).engineerCanCreateCM) { if (Provider.of<SettingProvider>(context, listen: false).engineerCanCreateCM) {
list.add(CreateRequestModel(context.translation.correctiveMaintenance, "add_icon", CreateNewRequest.id)); list.add(CreateRequestModel(context.translation.correctiveMaintenance, "add_icon", CreateNewRequest.id));
} }

@ -161,13 +161,12 @@ class _LandPageState extends State<LandPage> {
: AppBottomNavigationBar( : AppBottomNavigationBar(
selectedIndex: currentPageIndex, selectedIndex: currentPageIndex,
onPressed: (index) { onPressed: (index) {
bool isEngineer = _userProvider!.user!.type == UsersTypes.engineer;
if (index == 2) { if (index == 2) {
showModalBottomSheet( showModalBottomSheet(
context: context, context: context,
useSafeArea: true, useSafeArea: true,
backgroundColor: Colors.white, backgroundColor: Colors.white,
builder: (context) => CreateRequestTypeBottomSheet(isEngineer: isEngineer), builder: (context) => CreateRequestTypeBottomSheet(),
); );
} else if (index == 4) { } else if (index == 4) {
showModalBottomSheet( showModalBottomSheet(

@ -60,7 +60,7 @@ class _AllRequestsFilterPageState extends State<AllRequestsFilterPage> {
); );
search!.searchBySelectedValue = search?.requestNumber; search!.searchBySelectedValue = search?.requestNumber;
} }
final types = { var types = {
context.translation.correctiveMaintenance: 1, context.translation.correctiveMaintenance: 1,
context.translation.gasRefill: 2, context.translation.gasRefill: 2,
context.translation.transferAsset: 3, context.translation.transferAsset: 3,
@ -79,6 +79,10 @@ class _AllRequestsFilterPageState extends State<AllRequestsFilterPage> {
if (!isEngineer) { if (!isEngineer) {
types['TRAF'] = 9; types['TRAF'] = 9;
} }
if (context.userProvider.isAssessor) {
types = {"TRAF": 9};
}
final statuses = { final statuses = {
"All WO": 0, "All WO": 0,
context.translation.open: 1, context.translation.open: 1,

@ -54,6 +54,13 @@ class _MyRequestsPageState extends State<MyRequestsPage> {
requestsList.add(Request(9, 'TRAF')); requestsList.add(Request(9, 'TRAF'));
} }
if (context.userProvider.isAssessor) {
requestsList = [
Request(null, context.translation.allWorkOrder),
Request(9, 'TRAF'),
];
}
_provider = Provider.of<AllRequestsProvider>(context, listen: false); _provider = Provider.of<AllRequestsProvider>(context, listen: false);
_provider!.reset(); _provider!.reset();
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {

Loading…
Cancel
Save