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); setTabs(userType: userType, context: context);
getDashBoardCount(usersType: userType); getDashBoardCount(usersType: userType);
resetRequestDataList(); resetRequestDataList();
getRequestDetail(usersType: userType, status: tabs[currentListIndex].tag); getRequestDetail(usersType: userType, status: tabs[currentListIndex].tag,tabId:tabs[currentListIndex].id);
// notifyListeners(); // notifyListeners();
} }
@ -184,7 +184,7 @@ class DashBoardProvider extends ChangeNotifier {
getRequestDetail(showLoader: showLoader, usersType: usersType, status: 4); 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) { if (showLoader) {
isDetailLoading = showLoader; isDetailLoading = showLoader;
notifyListeners(); notifyListeners();
@ -193,12 +193,21 @@ class DashBoardProvider extends ChangeNotifier {
Response response; Response response;
String url = ''; String url = '';
if (usersType == UsersTypes.engineer) { 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... //these checks are to call different apis for dashboard for engineer...
if (status == 0) { if (status == 0) {
url = URLs.engineerDashboardUpcoming; url = URLs.engineerDashboardUpcoming;
} else if (status == 1) { }
else if (status == 1&&tabId==1) {
url = URLs.engineerDashboardNotAssignDetails; url = URLs.engineerDashboardNotAssignDetails;
} else { }
else if (status == 1&&tabId==2) {
url = URLs.engineerDashboardDetailsUrl;
}
else {
url = URLs.engineerDashboardDetailsUrl; url = URLs.engineerDashboardDetailsUrl;
} }
} else { } else {
@ -299,22 +308,29 @@ class DashBoardProvider extends ChangeNotifier {
class CategoryTabs { class CategoryTabs {
String label; String label;
int tag; 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}) { static List<CategoryTabs> getTabs({required UsersTypes userType, required BuildContext context}) {
List<CategoryTabs> tabs = []; List<CategoryTabs> tabs = [];
if (userType == UsersTypes.engineer) { if (userType == UsersTypes.engineer) {
tabs.add(CategoryTabs('Upcoming', 0)); tabs.add(CategoryTabs(label: 'Upcoming',tag: 0,id: 0));
tabs.add(CategoryTabs('Open', 1)); // tabs.add(CategoryTabs('Open', 1));
tabs.add(CategoryTabs('In Progress', 2)); tabs.add(CategoryTabs(label: 'UnAssigned Open',tag: 1,id: 1));
tabs.add(CategoryTabs('Completed', 3)); 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; return tabs;
} }
tabs.add(CategoryTabs('Upcoming', 3)); tabs.add(CategoryTabs(label: 'Upcoming',tag: 3,id: 1));
tabs.add(CategoryTabs('Open Request', 1)); tabs.add(CategoryTabs(label: 'Open Request',tag: 1,id: 2));
tabs.add(CategoryTabs('In Progress', 2)); tabs.add(CategoryTabs(label: 'In Progress',tag: 2,id: 3));
tabs.add(CategoryTabs('Canceled', 6)); tabs.add(CategoryTabs(label: 'Canceled',tag: 6,id: 4));
return tabs; return tabs;
} }
} }

@ -49,10 +49,11 @@ class _DashboardViewState extends State<DashboardView> {
} }
void getRequests() { 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.getDashBoardCount(usersType: userProvider.user!.type!);
_dashBoardProvider.resetRequestDataList(); _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() { void getInitialData() {
@ -99,8 +100,10 @@ class _DashboardViewState extends State<DashboardView> {
_scrollController = ScrollController(); _scrollController = ScrollController();
_scrollController.addListener(() async { _scrollController.addListener(() async {
if (_scrollController.position.pixels == _scrollController.position.maxScrollExtent && !_dashBoardProvider.isDetailLoading) { if (_scrollController.position.pixels == _scrollController.position.maxScrollExtent && !_dashBoardProvider.isDetailLoading) {
print('handle scroll called..');
_dashBoardProvider.pageNum = _dashBoardProvider.pageNum + 1; _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 { onPressed: () async {
requestsProvider.currentListIndex = index; requestsProvider.currentListIndex = index;
requestsProvider.resetRequestDataList(); 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:google_api_availability/google_api_availability.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.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/service_requests_provider.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.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';
@ -115,22 +116,53 @@ class ServiceRequestUtils {
//add permission for andriod.. //add permission for andriod..
//add string in info.plist for ios... //add string in info.plist for ios...
//create event.. //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()); var currentLocation = getLocation(await FlutterTimezone.getLocalTimezone());
setLocalLocation(currentLocation); final calendarsResult = await DeviceCalendarPlugin().retrieveCalendars();
await Future.delayed(const Duration(seconds: 2)); calendarsResult.data?.forEach((element){
TZDateTime startDate = TZDateTime.from(start, currentLocation); print('calander element are ${element.toJson()}');
TZDateTime endDate = TZDateTime.from(end, currentLocation); });
var eventToCreate = Event( if (calendarsResult.data?.isNotEmpty ?? false) {
"1", setLocalLocation(currentLocation);
title: title, await Future.delayed(const Duration(seconds: 2));
description: "You have reminder for Visit", TZDateTime startDate = TZDateTime.from(start, currentLocation);
start: startDate, TZDateTime endDate = TZDateTime.from(end, currentLocation);
end: endDate, final calendarId = calendarsResult.data!.first.id; // Use the first calendar
); print('calander id i got is ${calendarId}');
print('title i got is ${eventToCreate.title}'); var eventToCreate = Event(
await DeviceCalendarPlugin().createOrUpdateEvent(eventToCreate); 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; // Map<String, dynamic> messageData = message.data;

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

Loading…
Cancel
Save