open request for engineer fixies

design_3.0_latest
WaseemAbbasi22 11 months ago
parent d29c0d6fb1
commit fa331c7917

@ -85,7 +85,7 @@ class DashBoardProvider extends ChangeNotifier {
setTabs(userType: userType, context: context);
getDashBoardCount(usersType: userType);
resetRequestDataList();
getRequestDetail(usersType: userType, status: tabs[currentListIndex].tag);
getRequestDetail(usersType: userType, status: tabs[currentListIndex].tag,tabId:tabs[currentListIndex].id);
// notifyListeners();
}
@ -184,7 +184,7 @@ class DashBoardProvider extends ChangeNotifier {
getRequestDetail(showLoader: showLoader, usersType: usersType, status: 4);
}
Future<int> getRequestDetail({bool showLoader = true, required UsersTypes usersType, int? status, bool isHighPriority = false, bool isOverdue = false, String? date}) async {
Future<int> getRequestDetail({bool showLoader = true, required UsersTypes usersType, int? status, bool isHighPriority = false, bool isOverdue = false, String? date,int? tabId}) async {
if (showLoader) {
isDetailLoading = showLoader;
notifyListeners();
@ -193,12 +193,21 @@ class DashBoardProvider extends ChangeNotifier {
Response response;
String url = '';
if (usersType == UsersTypes.engineer) {
// Todo need to check pagination for not assigned task @waseem.
print('status i got is $status');
print('id i got is $tabId');
//these checks are to call different apis for dashboard for engineer...
if (status == 0) {
url = URLs.engineerDashboardUpcoming;
} else if (status == 1) {
}
else if (status == 1&&tabId==1) {
url = URLs.engineerDashboardNotAssignDetails;
} else {
}
else if (status == 1&&tabId==2) {
url = URLs.engineerDashboardDetailsUrl;
}
else {
url = URLs.engineerDashboardDetailsUrl;
}
} else {
@ -299,22 +308,29 @@ class DashBoardProvider extends ChangeNotifier {
class CategoryTabs {
String label;
int tag;
int id;
CategoryTabs(this.label, this.tag);
CategoryTabs({
required this.label,
required this.tag,
required this.id,
});
static List<CategoryTabs> getTabs({required UsersTypes userType, required BuildContext context}) {
List<CategoryTabs> tabs = [];
if (userType == UsersTypes.engineer) {
tabs.add(CategoryTabs('Upcoming', 0));
tabs.add(CategoryTabs('Open', 1));
tabs.add(CategoryTabs('In Progress', 2));
tabs.add(CategoryTabs('Completed', 3));
tabs.add(CategoryTabs(label: 'Upcoming',tag: 0,id: 0));
// tabs.add(CategoryTabs('Open', 1));
tabs.add(CategoryTabs(label: 'UnAssigned Open',tag: 1,id: 1));
tabs.add(CategoryTabs(label: 'Assigned Open',tag: 1,id: 2));
tabs.add(CategoryTabs(label: 'In Progress',tag: 2,id: 3));
tabs.add(CategoryTabs(label: 'Completed',tag: 3,id: 4));
return tabs;
}
tabs.add(CategoryTabs('Upcoming', 3));
tabs.add(CategoryTabs('Open Request', 1));
tabs.add(CategoryTabs('In Progress', 2));
tabs.add(CategoryTabs('Canceled', 6));
tabs.add(CategoryTabs(label: 'Upcoming',tag: 3,id: 1));
tabs.add(CategoryTabs(label: 'Open Request',tag: 1,id: 2));
tabs.add(CategoryTabs(label: 'In Progress',tag: 2,id: 3));
tabs.add(CategoryTabs(label: 'Canceled',tag: 6,id: 4));
return tabs;
}
}

@ -49,10 +49,11 @@ class _DashboardViewState extends State<DashboardView> {
}
void getRequests() {
_dashBoardProvider.setTabs(userType:userProvider.user!.type!,context: context);
_dashBoardProvider.setTabs(userType: userProvider.user!.type!, context: context);
_dashBoardProvider.getDashBoardCount(usersType: userProvider.user!.type!);
_dashBoardProvider.resetRequestDataList();
_dashBoardProvider.getRequestDetail(usersType: userProvider.user!.type!, status: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex].tag);
_dashBoardProvider.getRequestDetail(
usersType: userProvider.user!.type!, status: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex].tag, tabId: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex].id);
}
void getInitialData() {
@ -99,8 +100,10 @@ class _DashboardViewState extends State<DashboardView> {
_scrollController = ScrollController();
_scrollController.addListener(() async {
if (_scrollController.position.pixels == _scrollController.position.maxScrollExtent && !_dashBoardProvider.isDetailLoading) {
print('handle scroll called..');
_dashBoardProvider.pageNum = _dashBoardProvider.pageNum + 1;
_dashBoardProvider.getRequestDetail(usersType: user.type!, showLoader: false, status: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex].tag);
_dashBoardProvider.getRequestDetail(
usersType: user.type!, showLoader: false, status: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex].tag, tabId: _dashBoardProvider.tabs[_dashBoardProvider.currentListIndex].id);
}
});
}

@ -86,7 +86,7 @@ class RequestCategoryFragment extends StatelessWidget {
onPressed: () async {
requestsProvider.currentListIndex = index;
requestsProvider.resetRequestDataList();
requestsProvider.getRequestDetail(usersType: userType ?? UsersTypes.normal_user, showLoader: true, status: tabs[index].tag);
requestsProvider.getRequestDetail(usersType: userType ?? UsersTypes.normal_user, showLoader: true, status: tabs[index].tag, tabId: tabs[index].id);
},
);
},

@ -10,6 +10,7 @@ import 'package:fluttertoast/fluttertoast.dart';
import 'package:google_api_availability/google_api_availability.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/notification/notification_manger.dart';
import 'package:test_sa/controllers/providers/api/service_requests_provider.dart';
import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
@ -115,22 +116,53 @@ class ServiceRequestUtils {
//add permission for andriod..
//add string in info.plist for ios...
//create event..
static void addEventToCalendar({required BuildContext context, required DateTime start, required DateTime end,required String title}) async {
static void addEventToCalendar({required BuildContext context, required DateTime start, required DateTime end,required String title,required int ? requestId}) async {
var currentLocation = getLocation(await FlutterTimezone.getLocalTimezone());
setLocalLocation(currentLocation);
await Future.delayed(const Duration(seconds: 2));
TZDateTime startDate = TZDateTime.from(start, currentLocation);
TZDateTime endDate = TZDateTime.from(end, currentLocation);
var eventToCreate = Event(
"1",
title: title,
description: "You have reminder for Visit",
start: startDate,
end: endDate,
);
print('title i got is ${eventToCreate.title}');
await DeviceCalendarPlugin().createOrUpdateEvent(eventToCreate);
final calendarsResult = await DeviceCalendarPlugin().retrieveCalendars();
calendarsResult.data?.forEach((element){
print('calander element are ${element.toJson()}');
});
if (calendarsResult.data?.isNotEmpty ?? false) {
setLocalLocation(currentLocation);
await Future.delayed(const Duration(seconds: 2));
TZDateTime startDate = TZDateTime.from(start, currentLocation);
TZDateTime endDate = TZDateTime.from(end, currentLocation);
final calendarId = calendarsResult.data!.first.id; // Use the first calendar
print('calander id i got is ${calendarId}');
var eventToCreate = Event(
calendarId,
eventId: requestId.toString(),
title: title,
description: "You have a reminder for a visit",
start: startDate,
end: endDate,
);
print('calander event to add is ${eventToCreate.toJson()}');
final response = await DeviceCalendarPlugin().createOrUpdateEvent(eventToCreate);
print("Response of adding calendar is ${response?.data}");
} else {
print("No calendars available on the device.");
// "No calendars available on the device.".showToast();
}
// setLocalLocation(currentLocation);
// await Future.delayed(const Duration(seconds: 2));
// TZDateTime startDate = TZDateTime.from(start, currentLocation);
// TZDateTime endDate = TZDateTime.from(end, currentLocation);
// var eventToCreate = Event(
// '0',
// // eventId:requestId.toString(),
// title: title,
// description: "You have reminder for Visit",
// start: startDate,
// end: endDate,
// );
// print('event to add i got is ${eventToCreate.toJson()}');
// final response = await DeviceCalendarPlugin().createOrUpdateEvent(eventToCreate);
// print("response of adding calander is ${response?.data}");
//
}
// Map<String, dynamic> messageData = message.data;

@ -306,8 +306,6 @@ class ServiceRequestBottomSheet {
initialVisitReminderBottomSheet(context: context);
}
//
},
),
@ -421,7 +419,12 @@ class ServiceRequestBottomSheet {
DateTime updatedDateTime = visitDateTime.subtract(Duration(minutes: selectedReminderTime.value ?? 0));
if (updatedDateTime.isAfter(DateTime.now())) {
ServiceRequestUtils.scheduleNotification(context: context, scheduleDateTime: updatedDateTime);
ServiceRequestUtils.addEventToCalendar(context: context, start: updatedDateTime, end: visitDateTime, title: context.translation.needAVisit);
ServiceRequestUtils.addEventToCalendar(
context: context,
start: updatedDateTime,
end: visitDateTime,
title: context.translation.needAVisit,
requestId: requestDetailProvider.currentWorkOrder!.data!.requestId!);
}
} catch (e) {
log('error $e');
@ -1021,7 +1024,7 @@ class ServiceRequestBottomSheet {
workOrderId: requestDetailProvider.currentWorkOrder!.data!.requestId!,
signatureNurse: nurseSignature,
);
requestDetailProvider.nurseConfirm();
requestDetailProvider.nurseConfirm();
if (requestDetailProvider.currentWorkOrder!.data!.requestId != null) {
requestDetailProvider.getWorkOrderById(id: requestDetailProvider.currentWorkOrder!.data!.requestId!);
}

Loading…
Cancel
Save