one time task implemented

main_production_RSG_one_time
WaseemAbbasi22 4 weeks ago
parent 9b160838a6
commit 39d938ddb5

@ -176,6 +176,9 @@ class AllRequestsProvider extends ChangeNotifier {
// list = [16]; // list = [16];
list.add(16); list.add(16);
} }
if (context.userProvider.isHouseKeeper) {
list = [5];
}
return list; return list;
} }

@ -45,11 +45,11 @@ class DashBoardProvider extends ChangeNotifier {
notifyListeners(); notifyListeners();
} }
int _currentListIndex = 0; int? _currentListIndex = 0;
int get currentListIndex => _currentListIndex; int? get currentListIndex => _currentListIndex;
set currentListIndex(int value) { set currentListIndex(int? value) {
_currentListIndex = value; _currentListIndex = value;
notifyListeners(); notifyListeners();
} }
@ -114,7 +114,7 @@ class DashBoardProvider extends ChangeNotifier {
setTabs(userType: userType, context: context); setTabs(userType: userType, context: context);
getDashBoardCount(usersType: userType); getDashBoardCount(usersType: userType);
resetRequestDataList(); resetRequestDataList();
getRequestDetail(usersType: userType, status: tabs[currentListIndex].tag, tabId: tabs[currentListIndex].id); getRequestDetail(usersType: userType, status: tabs[currentListIndex!].tag, tabId: tabs[currentListIndex!].id);
// notifyListeners(); // notifyListeners();
} }
@ -148,6 +148,7 @@ class DashBoardProvider extends ChangeNotifier {
UsersTypes.engineer: URLs.engineerDashboardCountUrl, UsersTypes.engineer: URLs.engineerDashboardCountUrl,
UsersTypes.assessor: URLs.engineerDashboardCountUrl, UsersTypes.assessor: URLs.engineerDashboardCountUrl,
UsersTypes.assessorTl: URLs.engineerDashboardCountUrl, UsersTypes.assessorTl: URLs.engineerDashboardCountUrl,
UsersTypes.houseKeeper: URLs.engineerDashboardCountUrl,
}; };
url = urlMap[usersType] ?? URLs.nurseDashboardCountUrl; url = urlMap[usersType] ?? URLs.nurseDashboardCountUrl;
Response response; Response response;
@ -281,6 +282,7 @@ class DashBoardProvider extends ChangeNotifier {
case UsersTypes.engineer: case UsersTypes.engineer:
case UsersTypes.assessor: case UsersTypes.assessor:
case UsersTypes.assessorTl: case UsersTypes.assessorTl:
case UsersTypes.houseKeeper:
if (status == 0) { if (status == 0) {
return URLs.engineerDashboardUpcoming; return URLs.engineerDashboardUpcoming;
} else if (status == 1 && tabId == 1) { } else if (status == 1 && tabId == 1) {
@ -447,6 +449,12 @@ class CategoryTabs {
return tabs; return tabs;
} }
if (userType == UsersTypes.houseKeeper) {
tabs.add(CategoryTabs(label: 'In Progress', tag: 2, id: 2, requestType: RequestTypeEnum.inProgress, icon: "dashboard/inprogress_icon", iconColor: AppColor.primary10));
tabs.add(CategoryTabs(label: 'Completed', tag: 4, id: 3, requestType: RequestTypeEnum.completed, icon: "complete_request", iconColor: AppColor.completedColor));
return tabs;
}
if (userType == UsersTypes.qualityUser) { if (userType == UsersTypes.qualityUser) {
tabs.add(CategoryTabs(label: 'Open', tag: 1, id: 2, requestType: RequestTypeEnum.open, icon: "dashboard/open_icon", iconColor: AppColor.openColor)); tabs.add(CategoryTabs(label: 'Open', tag: 1, id: 2, requestType: RequestTypeEnum.open, icon: "dashboard/open_icon", iconColor: AppColor.openColor));

@ -6,6 +6,7 @@ import 'package:nfc_manager/nfc_manager.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/controllers/notification/firebase_notification_manger.dart'; import 'package:test_sa/controllers/notification/firebase_notification_manger.dart';
import 'package:test_sa/controllers/notification/notification_manger.dart'; import 'package:test_sa/controllers/notification/notification_manger.dart';
import 'package:test_sa/controllers/providers/api/all_requests_provider.dart';
import 'package:test_sa/controllers/providers/api/notifications_provider.dart'; import 'package:test_sa/controllers/providers/api/notifications_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/controllers/providers/settings/setting_provider.dart'; import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
@ -58,13 +59,28 @@ class _DashboardViewState extends State<DashboardView> {
_dashBoardProvider.setTabs(userType: userProvider.user!.type!, context: context); _dashBoardProvider.setTabs(userType: userProvider.user!.type!, context: context);
_dashBoardProvider.getDashBoardCount(usersType: userProvider.user!.type!); _dashBoardProvider.getDashBoardCount(usersType: userProvider.user!.type!);
_dashBoardProvider.resetRequestDataList(); _dashBoardProvider.resetRequestDataList();
_dashBoardProvider.currentListIndex = 0; if (userProvider.isHouseKeeper) {
_dashBoardProvider.getRequestDetail( _dashBoardProvider.currentListIndex = 0;
_dashBoardProvider.getRequestDetail(
usersType: userProvider.user!.type!, usersType: userProvider.user!.type!,
status: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex].tag, showLoader: true,
tabId: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex].id, status: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex!].tag,
isHighPriority: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex].isHighPriority, tabId: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex!].id,
isOverdue: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex].isOverDue); // isAscending: _dashBoardProvider.isAscending,
);
} else {
_dashBoardProvider.currentListIndex = null;
Provider.of<AllRequestsProvider>(context, listen: false)
..reset()
..getAllRequests(context);
}
// _dashBoardProvider.currentListIndex = 0;
// _dashBoardProvider.getRequestDetail(
// usersType: userProvider.user!.type!,
// status: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex].tag,
// tabId: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex].id,
// isHighPriority: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex].isHighPriority,
// isOverdue: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex].isOverDue);
} }
void getInitialData() { void getInitialData() {
@ -96,7 +112,7 @@ class _DashboardViewState extends State<DashboardView> {
if (_scrollController.position.pixels == _scrollController.position.maxScrollExtent && !_dashBoardProvider.isDetailLoading) { if (_scrollController.position.pixels == _scrollController.position.maxScrollExtent && !_dashBoardProvider.isDetailLoading) {
_dashBoardProvider.pageNum = _dashBoardProvider.pageNum + 1; _dashBoardProvider.pageNum = _dashBoardProvider.pageNum + 1;
_dashBoardProvider.getRequestDetail( _dashBoardProvider.getRequestDetail(
usersType: user.type!, showLoader: false, status: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex].tag, tabId: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex].id); usersType: user.type!, showLoader: false, status: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex??0].tag, tabId: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex??0].id);
} }
}); });
} }

@ -194,7 +194,7 @@ class _AppBarWidgetState extends State<AppBarWidget> with TickerProviderStateMix
dashBoardProvider.setTabs(userType: settingProvider.user!.type!, context: context); dashBoardProvider.setTabs(userType: settingProvider.user!.type!, context: context);
dashBoardProvider.getDashBoardCount(usersType: settingProvider.user!.type!); dashBoardProvider.getDashBoardCount(usersType: settingProvider.user!.type!);
dashBoardProvider.resetRequestDataList(); dashBoardProvider.resetRequestDataList();
dashBoardProvider.getRequestDetail(usersType: settingProvider.user!.type!, status: dashBoardProvider.tabs[dashBoardProvider.currentListIndex].tag); dashBoardProvider.getRequestDetail(usersType: settingProvider.user!.type!, status: dashBoardProvider.tabs[dashBoardProvider.currentListIndex??0].tag);
}); });
} else { } else {
ApiManager.instance.assetGroup = tempGroup; ApiManager.instance.assetGroup = tempGroup;

@ -232,7 +232,14 @@ class _ProgressFragmentState extends State<ProgressFragment> with SingleTickerPr
ChartData('In Progress', snapshot.dashboardCount?.data?.countInprogress?.toDouble() ?? 0.0, AppColor.inProgressChartColor, "dashboard/inprogress_icon"), ChartData('In Progress', snapshot.dashboardCount?.data?.countInprogress?.toDouble() ?? 0.0, AppColor.inProgressChartColor, "dashboard/inprogress_icon"),
ChartData('Closed', snapshot.dashboardCount?.data?.countComplete?.toDouble() ?? 0.0, AppColor.completeChartColor, "dashboard/completed_icon"), ChartData('Closed', snapshot.dashboardCount?.data?.countComplete?.toDouble() ?? 0.0, AppColor.completeChartColor, "dashboard/completed_icon"),
]; ];
} else { }else if (_userProvider.isHouseKeeper) {
total = (snapshot.dashboardCount?.data?.countClose ?? 0) + (snapshot.dashboardCount?.data?.countInprogress ?? 0) + (snapshot.dashboardCount?.data?.countOpen ?? 0);
chartData = [
ChartData('In Progress', snapshot.dashboardCount?.data?.countInprogress?.toDouble() ?? 0.0, AppColor.inProgressChartColor, "dashboard/inprogress_icon"),
ChartData('Completed', snapshot.dashboardCount?.data?.countClose?.toDouble() ?? 0.0, AppColor.completeChartColor, "dashboard/completed_icon"),
];
}
else {
total = (snapshot.dashboardCount?.data?.countComplete ?? 0) + (snapshot.dashboardCount?.data?.countInprogress ?? 0) + (snapshot.dashboardCount?.data?.countOpen ?? 0); total = (snapshot.dashboardCount?.data?.countComplete ?? 0) + (snapshot.dashboardCount?.data?.countInprogress ?? 0) + (snapshot.dashboardCount?.data?.countOpen ?? 0);
chartData = [ chartData = [
ChartData('Open', snapshot.dashboardCount?.data?.countOpen?.toDouble() ?? 0.0, AppColor.openChartColor, "dashboard/open_icon"), ChartData('Open', snapshot.dashboardCount?.data?.countOpen?.toDouble() ?? 0.0, AppColor.openChartColor, "dashboard/open_icon"),

@ -5,6 +5,7 @@ import 'package:test_sa/dashboard_latest/dashboard_provider.dart';
import 'package:test_sa/dashboard_latest/widgets/request_category_list.dart'; import 'package:test_sa/dashboard_latest/widgets/request_category_list.dart';
import 'package:test_sa/extensions/context_extension.dart'; 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/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/models/enums/user_types.dart'; import 'package:test_sa/models/enums/user_types.dart';
@ -76,8 +77,8 @@ class _RequestCategoryFragmentState extends State<RequestCategoryFragment> with
dashboardProvider.getRequestDetail( dashboardProvider.getRequestDetail(
usersType: userType ?? UsersTypes.normal_user, usersType: userType ?? UsersTypes.normal_user,
showLoader: true, showLoader: true,
status: tabs[dashboardProvider.currentListIndex].tag, status: tabs[dashboardProvider.currentListIndex??0].tag,
tabId: tabs[dashboardProvider.currentListIndex].id, tabId: tabs[dashboardProvider.currentListIndex??0].id,
isAscending: isAscending, isAscending: isAscending,
); );
} }
@ -91,7 +92,7 @@ class _RequestCategoryFragmentState extends State<RequestCategoryFragment> with
// Check if user is FMS Engineer using SettingProvider // Check if user is FMS Engineer using SettingProvider
final bool isFMSEngineer = user?.type == UsersTypes.engineer && settingProvider.isUserFMS; final bool isFMSEngineer = user?.type == UsersTypes.engineer && settingProvider.isUserFMS;
final bool isHouseKeeper = user?.type == UsersTypes.houseKeeper;
return Column(mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[ return Column(mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[
getTabs( getTabs(
requestsProvider: dashboardProvider, requestsProvider: dashboardProvider,
@ -102,7 +103,7 @@ class _RequestCategoryFragmentState extends State<RequestCategoryFragment> with
opacity: _headerFadeAnimation, opacity: _headerFadeAnimation,
child: SlideTransition( child: SlideTransition(
position: _headerSlideAnimation, position: _headerSlideAnimation,
child: !isNurse && dashboardProvider.tabs.isNotEmpty && dashboardProvider.tabs[dashboardProvider.currentListIndex].tag == 0 child: !isNurse && dashboardProvider.tabs.isNotEmpty && dashboardProvider.tabs[dashboardProvider.currentListIndex??0].tag == 0
? Column( ? Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
@ -125,7 +126,23 @@ class _RequestCategoryFragmentState extends State<RequestCategoryFragment> with
) )
: const SizedBox(), : const SizedBox(),
], ],
).paddingOnly(start: 14, end: 12) ).paddingOnly(start: 14, end: 12):
isHouseKeeper
? Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
'All Tasks'.addTranslation.heading4(context),
'add_icon'
.toSvgAsset(
width: 24,
height: 24,
)
.onPress(() {
Navigator.of(context).pushNamed('/cleaner_search');
}),
],
).paddingOnly(start: 16, end: 16)
: Row( : Row(
spacing: 16, spacing: 16,
children: [ children: [

@ -105,7 +105,7 @@ class _RequestCategoryFragmentHouseKeeperState extends State<RequestCategoryFrag
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Consumer<DashBoardProvider>(builder: (context, dashboardProvider, child) { return Consumer<DashBoardProvider>(builder: (context, dashboardProvider, child) {
List<CategoryTabs> tabs = CategoryTabs.getTabs(userType: UsersTypes.houseKeeper, context: context); List<CategoryTabs> tabs = CategoryTabs.getTabs(userType: UsersTypes.houseKeeper, context: context);
print('i am here..');
return Column( return Column(
mainAxisSize: MainAxisSize.min, mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,

@ -4,6 +4,7 @@ import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/new_models/dashboard_detail.dart'; import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/modules/asset_delivery_module/pages/asset_delivery_item_view.dart'; import 'package:test_sa/modules/asset_delivery_module/pages/asset_delivery_item_view.dart';
import 'package:test_sa/modules/asset_inventory_module/pages/inventory_session_item_view.dart'; import 'package:test_sa/modules/asset_inventory_module/pages/inventory_session_item_view.dart';
import 'package:test_sa/modules/cleaner_module/widgets/one_time_task_item_view.dart';
import 'package:test_sa/modules/demo_module/demo_request_item_view.dart'; import 'package:test_sa/modules/demo_module/demo_request_item_view.dart';
import 'package:test_sa/modules/internal_audit_module/pages/equipment_internal_audit/equipment_internal_audit_item_view.dart'; import 'package:test_sa/modules/internal_audit_module/pages/equipment_internal_audit/equipment_internal_audit_item_view.dart';
import 'package:test_sa/modules/loan_module/pages/loan_equipment_item_view.dart'; import 'package:test_sa/modules/loan_module/pages/loan_equipment_item_view.dart';
@ -131,6 +132,8 @@ class _RequestCategoryListState extends State<RequestCategoryList> with SingleTi
return MedicalGasInspectionItemView(requestData: request); return MedicalGasInspectionItemView(requestData: request);
case 15: case 15:
return DemoRequestItemView(requestData: request); return DemoRequestItemView(requestData: request);
case 17:
return OneTimeTaskItemView(requestData: request);
default: default:
return Container( return Container(
height: 100, height: 100,

@ -19,12 +19,13 @@ class AppBottomNavigationBar extends StatelessWidget {
bool isEngineer = (Provider.of<UserProvider>(context, listen: false).user?.type) == UsersTypes.engineer; bool isEngineer = (Provider.of<UserProvider>(context, listen: false).user?.type) == UsersTypes.engineer;
bool isUserFMS = Provider.of<SettingProvider>(context, listen: false).isUserFMS; bool isUserFMS = Provider.of<SettingProvider>(context, listen: false).isUserFMS;
bool commissioningEng = context.userProvider.isCommissioningEngineer; bool commissioningEng = context.userProvider.isCommissioningEngineer;
bool isHouseKeeper = context.userProvider.isHouseKeeper;
List<NavItemModel> navItems = [ List<NavItemModel> navItems = [
NavItemModel(0, "overview", context.translation.overview), NavItemModel(0, "overview", context.translation.overview),
NavItemModel(1, "request_icon", context.translation.workOrder), if(!isHouseKeeper) NavItemModel(1, "request_icon", context.translation.workOrder),
if (!commissioningEng) NavItemModel(2, "add_icon", context.translation.calendar, showLabel: false), if (!commissioningEng&& !isHouseKeeper) NavItemModel(2, "add_icon", context.translation.calendar, showLabel: false),
NavItemModel(3, "assets", context.translation.assets), if(!isHouseKeeper) NavItemModel(3, "assets", context.translation.assets),
NavItemModel(4, "contact", context.translation.contact), NavItemModel(4, "contact", context.translation.contact),
]; ];

@ -115,7 +115,9 @@ class _LandPageState extends State<LandPage> {
WidgetsBinding.instance.addPostFrameCallback((_) { WidgetsBinding.instance.addPostFrameCallback((_) {
_userProvider!.getSwipeLastTransaction(userId: _userProvider!.user!.userID!); _userProvider!.getSwipeLastTransaction(userId: _userProvider!.user!.userID!);
_userProvider!.getSiteContactInfo(); _userProvider!.getSiteContactInfo();
Provider.of<VendorProvider>(context, listen: false).getData(); if(!_userProvider!.isHouseKeeper) {
Provider.of<VendorProvider>(context, listen: false).getData();
}
}); });
} }
_pages = <Widget>[ _pages = <Widget>[

@ -144,7 +144,11 @@ class _AllRequestsFilterPageState extends State<AllRequestsFilterPage> {
types['Incidents'] = 16; types['Incidents'] = 16;
} }
final statuses = { if (context.userProvider.isHouseKeeper) {
types = {context.translation.recurrentWo: 5};
}
var statuses = {
"All WO": 0, "All WO": 0,
context.translation.open: 1, context.translation.open: 1,
context.translation.inProgress: 2, context.translation.inProgress: 2,
@ -152,6 +156,16 @@ class _AllRequestsFilterPageState extends State<AllRequestsFilterPage> {
context.translation.closed: 3, context.translation.closed: 3,
"Canceled": 5, "Canceled": 5,
}; };
if (context.userProvider.isHouseKeeper) {
statuses = {
"All WO": 0,
// context.translation.open: 1,
context.translation.inProgress: 2,
// context.translation.completed: 4,
context.translation.closed: 3,
// "Canceled": 5,
};
}
return Scaffold( return Scaffold(
appBar: DefaultAppBar( appBar: DefaultAppBar(
title: context.translation.filter, title: context.translation.filter,

@ -147,6 +147,13 @@ class _MyRequestsPageState extends State<MyRequestsPage> with SingleTickerProvid
if (context.settingProvider.isUserFlowMedical && !context.userProvider.isNurse) { if (context.settingProvider.isUserFlowMedical && !context.userProvider.isNurse) {
requestsList.add(Request(16, "Incidents")); requestsList.add(Request(16, "Incidents"));
} }
if (context.userProvider.isHouseKeeper) {
requestsList = [
Request(null, context.translation.allWorkOrder),
Request(5, context.translation.recurrentWo),
// Request(15, 'Demo'), moved to permission api
];
}
_provider = Provider.of<AllRequestsProvider>(context, listen: false); _provider = Provider.of<AllRequestsProvider>(context, listen: false);
_provider!.reset(); _provider!.reset();

Loading…
Cancel
Save