one time task implemented

main_production_RSG_one_time
WaseemAbbasi22 1 day ago
parent 9b160838a6
commit 39d938ddb5

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

@ -45,11 +45,11 @@ class DashBoardProvider extends ChangeNotifier {
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;
notifyListeners();
}
@ -114,7 +114,7 @@ class DashBoardProvider extends ChangeNotifier {
setTabs(userType: userType, context: context);
getDashBoardCount(usersType: userType);
resetRequestDataList();
getRequestDetail(usersType: userType, status: tabs[currentListIndex].tag, tabId: tabs[currentListIndex].id);
getRequestDetail(usersType: userType, status: tabs[currentListIndex!].tag, tabId: tabs[currentListIndex!].id);
// notifyListeners();
}
@ -148,6 +148,7 @@ class DashBoardProvider extends ChangeNotifier {
UsersTypes.engineer: URLs.engineerDashboardCountUrl,
UsersTypes.assessor: URLs.engineerDashboardCountUrl,
UsersTypes.assessorTl: URLs.engineerDashboardCountUrl,
UsersTypes.houseKeeper: URLs.engineerDashboardCountUrl,
};
url = urlMap[usersType] ?? URLs.nurseDashboardCountUrl;
Response response;
@ -281,6 +282,7 @@ class DashBoardProvider extends ChangeNotifier {
case UsersTypes.engineer:
case UsersTypes.assessor:
case UsersTypes.assessorTl:
case UsersTypes.houseKeeper:
if (status == 0) {
return URLs.engineerDashboardUpcoming;
} else if (status == 1 && tabId == 1) {
@ -447,6 +449,12 @@ class CategoryTabs {
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) {
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:test_sa/controllers/notification/firebase_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/user_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.getDashBoardCount(usersType: userProvider.user!.type!);
_dashBoardProvider.resetRequestDataList();
_dashBoardProvider.currentListIndex = 0;
_dashBoardProvider.getRequestDetail(
if (userProvider.isHouseKeeper) {
_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);
showLoader: true,
status: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex!].tag,
tabId: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex!].id,
// 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() {
@ -96,7 +112,7 @@ class _DashboardViewState extends State<DashboardView> {
if (_scrollController.position.pixels == _scrollController.position.maxScrollExtent && !_dashBoardProvider.isDetailLoading) {
_dashBoardProvider.pageNum = _dashBoardProvider.pageNum + 1;
_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.getDashBoardCount(usersType: settingProvider.user!.type!);
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 {
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('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);
chartData = [
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/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/enums/user_types.dart';
@ -76,8 +77,8 @@ class _RequestCategoryFragmentState extends State<RequestCategoryFragment> with
dashboardProvider.getRequestDetail(
usersType: userType ?? UsersTypes.normal_user,
showLoader: true,
status: tabs[dashboardProvider.currentListIndex].tag,
tabId: tabs[dashboardProvider.currentListIndex].id,
status: tabs[dashboardProvider.currentListIndex??0].tag,
tabId: tabs[dashboardProvider.currentListIndex??0].id,
isAscending: isAscending,
);
}
@ -91,7 +92,7 @@ class _RequestCategoryFragmentState extends State<RequestCategoryFragment> with
// Check if user is FMS Engineer using SettingProvider
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>[
getTabs(
requestsProvider: dashboardProvider,
@ -102,7 +103,7 @@ class _RequestCategoryFragmentState extends State<RequestCategoryFragment> with
opacity: _headerFadeAnimation,
child: SlideTransition(
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(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@ -125,7 +126,23 @@ class _RequestCategoryFragmentState extends State<RequestCategoryFragment> with
)
: 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(
spacing: 16,
children: [

@ -105,7 +105,7 @@ class _RequestCategoryFragmentHouseKeeperState extends State<RequestCategoryFrag
Widget build(BuildContext context) {
return Consumer<DashBoardProvider>(builder: (context, dashboardProvider, child) {
List<CategoryTabs> tabs = CategoryTabs.getTabs(userType: UsersTypes.houseKeeper, context: context);
print('i am here..');
return Column(
mainAxisSize: MainAxisSize.min,
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/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/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/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';
@ -131,6 +132,8 @@ class _RequestCategoryListState extends State<RequestCategoryList> with SingleTi
return MedicalGasInspectionItemView(requestData: request);
case 15:
return DemoRequestItemView(requestData: request);
case 17:
return OneTimeTaskItemView(requestData: request);
default:
return Container(
height: 100,

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

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

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

@ -147,6 +147,13 @@ class _MyRequestsPageState extends State<MyRequestsPage> with SingleTickerProvid
if (context.settingProvider.isUserFlowMedical && !context.userProvider.isNurse) {
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!.reset();

Loading…
Cancel
Save