cm feedback points,

design_3.0_latest
Sikander Saleem 9 months ago
parent 28b30d9fa8
commit 58fb4b3829

@ -15,6 +15,7 @@ class AppFilledButton extends StatelessWidget {
final Color? textColor;
final bool showBorder;
final double radius;
final bool disableButton;
const AppFilledButton(
{this.onPressed,
@ -25,6 +26,7 @@ class AppFilledButton extends StatelessWidget {
this.fontSize,
this.loading = false,
this.showBorder = false,
this.disableButton = false,
this.buttonColor,
this.textColor,
this.radius = 10,
@ -39,7 +41,7 @@ class AppFilledButton extends StatelessWidget {
alignment: Alignment.center,
decoration: BoxDecoration(
borderRadius: BorderRadius.circular(10),
color: buttonColor ?? AppColor.blueStatus(context),
color: disableButton ? AppColor.neutral140 : (buttonColor ?? AppColor.blueStatus(context)),
border: showBorder ? Border.all(color: textColor ?? AppColor.background(context)) : null,
),
child: loading
@ -58,10 +60,10 @@ class AppFilledButton extends StatelessWidget {
label.heading6(context).custom(color: textColor ?? AppColor.background(context)),
])
: label.heading6(context).custom(
color: textColor ?? AppColor.background(context),
color: disableButton ? AppColor.neutral150 : (textColor ?? AppColor.background(context)),
align: TextAlign.center,
fontSize: fontSize ?? 16.toScreenWidth,
),
).onPress(onPressed);
).onPress(disableButton ? null : (loading ? null : onPressed));
}
}

@ -55,10 +55,11 @@ class _AllRequestsFilterPageState extends State<AllRequestsFilterPage> {
search!.searchBySelectedValue = search?.requestNumber;
}
final types = {
context.translation.serviceRequest: 1,
context.translation.correctiveMaintenance: 1,
context.translation.gasRefill: 2,
context.translation.deviceTransfer: 3,
context.translation.preventiveMaintenance: 4,
context.translation.recurrentWo: 5,
};
final statuses = {
context.translation.allRequests: 0,

@ -176,8 +176,9 @@ class FooterActionButton {
label: context.translation.markAsCompleted,
// maxWidth: true,
buttonColor: AppColor.green70,
onPressed: () async {
ServiceRequestBottomSheet.feedBackBottomSheet(context: context);
onPressed: () {
bool isValid = ServiceRequestBottomSheet.validateAssetSituation(Provider.of<ServiceRequestDetailProvider>(context, listen: false));
if (isValid) ServiceRequestBottomSheet.feedBackBottomSheet(context: context);
},
),
]

@ -54,6 +54,8 @@ class _ActivitiesListViewState extends State<ActivitiesListView> {
List<Activities> activities = [];
bool disableNewActivity = false;
@override
Widget build(BuildContext context) {
UserProvider userProvider = Provider.of<UserProvider>(context);
@ -66,11 +68,11 @@ class _ActivitiesListViewState extends State<ActivitiesListView> {
//backgroundColor: const Color(0xfff8f9fb),
body: Consumer<ServiceRequestDetailProvider>(builder: (context, ServiceRequestDetailProvider requestDetailProvider, child) {
activities = requestDetailProvider.currentWorkOrder!.data!.activities;
// if (showReorderView && reOrderActivities.isEmpty) {
// reOrderActivities = requestDetailProvider.currentWorkOrder!.data!.activities;
// } else {
//
// }
if (activities.isNotEmpty && (activities.last.activityStatus!.value == 14 || activities.last.activityStatus!.value == 19)) {
disableNewActivity = true;
} else {
disableNewActivity = false;
}
return Column(
children: [
@ -126,6 +128,7 @@ class _ActivitiesListViewState extends State<ActivitiesListView> {
maxWidth: true,
buttonColor: AppColor.primary10,
loading: requestDetailProvider.isLoading,
disableButton: disableNewActivity,
onPressed: () async {
// if (showReorderView) {
// // requestDetailProvider.currentWorkOrder!.data!.activities = reOrderActivities;

@ -3,6 +3,7 @@ import 'dart:developer';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/app_strings/app_asset.dart';
import 'package:test_sa/extensions/context_extension.dart';
@ -300,7 +301,7 @@ class ServiceRequestBottomSheet {
requestDetailProvider.engineerUpdateNeedVisit();
try {
DateTime visitDateTime = requestDetailProvider.needVisitHelperModel!.visitDate!;
int ?reminderMinutes = requestDetailProvider.currentWorkOrder!.data!.setReminder?.value;
int? reminderMinutes = requestDetailProvider.currentWorkOrder!.data!.setReminder?.value;
DateTime updatedDateTime = visitDateTime.subtract(Duration(minutes: reminderMinutes ?? 0));
if (updatedDateTime.isAfter(DateTime.now())) {
// ServiceRequestUtils.scheduleNotification(context: context, scheduleDateTime: updatedDateTime);
@ -310,8 +311,7 @@ class ServiceRequestBottomSheet {
end: visitDateTime,
title: context.translation.needAVisit,
workOrderNumber: requestDetailProvider.currentWorkOrder!.data!.workOrderNo!);
}
else{
} else {
// "Visit date is before the reminder time selected".showToast;
}
} catch (e) {
@ -446,9 +446,7 @@ class ServiceRequestBottomSheet {
workOrderNumber: requestDetailProvider.currentWorkOrder!.data!.workOrderNo!);
// uncommit this to add schedule notification need to confirm what to do in case of update....
// ServiceRequestUtils.scheduleOrUpdateNotification(context: context, scheduleDateTime: updatedDateTime,workOrderId: requestDetailProvider.currentWorkOrder!.data!.workOrderNo!);
}
else{
} else {
"Visit date is before the reminder time selected".showToast;
}
} catch (e) {
@ -837,7 +835,20 @@ class ServiceRequestBottomSheet {
);
}
static bool validateAssetSituation(ServiceRequestDetailProvider requestDetailProvider) {
if (requestDetailProvider.engineerUpdateWorkOrderHelperModel!.equipmentStatus != null) {
if (requestDetailProvider.engineerUpdateWorkOrderHelperModel!.equipmentStatus!.value == 1 || requestDetailProvider.engineerUpdateWorkOrderHelperModel!.equipmentStatus!.value == 2) {
if (requestDetailProvider.engineerUpdateWorkOrderHelperModel!.returnToService == null) {
Fluttertoast.showToast(msg: "Return to service is required ", toastLength: Toast.LENGTH_LONG);
return false;
}
}
}
return true;
}
static Future feedBackBottomSheet({required BuildContext context}) {
String feedback = '';
TextEditingController _commentController = TextEditingController();
return buildBottomSheetParent(
@ -1068,7 +1079,6 @@ class ServiceRequestBottomSheet {
static Future nurseVerifyArrivalBottomSheet({required BuildContext context}) {
return buildBottomSheetParent(
context: context,
childWidget: Consumer<ServiceRequestDetailProvider>(builder: (context, ServiceRequestDetailProvider requestDetailProvider, child) {
return Column(
crossAxisAlignment: CrossAxisAlignment.center,
@ -1131,7 +1141,7 @@ class ServiceRequestBottomSheet {
context: context,
isDismissible: false,
childWidget: Consumer<ServiceRequestDetailProvider>(builder: (context, ServiceRequestDetailProvider requestDetailProvider, child) {
return WillPopScope(
return WillPopScope(
onWillPop: () async {
// Return `false` to block back navigation
@ -1147,12 +1157,9 @@ class ServiceRequestBottomSheet {
"Waiting...".heading4(context),
Container(
padding: EdgeInsets.all(5.toScreenHeight),
decoration: const BoxDecoration(
shape: BoxShape.circle,
color: AppColor.neutral80
),
decoration: const BoxDecoration(shape: BoxShape.circle, color: AppColor.neutral80),
child: const Icon(Icons.close),
).onPress((){
).onPress(() {
Navigator.pop(context);
}),
],

@ -191,7 +191,7 @@ class ServiceRequestDetailView extends StatelessWidget {
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
),
Text(
'${context.translation.date}: ${workOrder.requestedDate!.toString().toServiceRequestDetailsFormat}',
'Date/Time: ${workOrder.requestedDate!.toString().toServiceRequestDetailsFormat}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral120),
),
const Divider().defaultStyle(context),
@ -203,11 +203,7 @@ class ServiceRequestDetailView extends StatelessWidget {
),
8.height,
Text(
'${context.translation.serviceType}: ${workOrder.serviceType?.name ?? '-'}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
),
Text(
'${context.translation.assignedEmployee}: ${workOrder.assignedEmployee?.userName ?? '-'}',
'${context.translation.assignedTo}: ${workOrder.assignedEmployee?.userName ?? '-'}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral120),
),
@ -225,7 +221,7 @@ class ServiceRequestDetailView extends StatelessWidget {
const Divider().defaultStyle(context),
8.height,
Text(
context.translation.callComments,
"Call Comment",
style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
),
8.height,

@ -118,6 +118,7 @@ class _AssetRetiredState extends State<AssetRetired> with TickerProviderStateMix
child: AppFilledButton(
label: context.translation.submit,
buttonColor: AppColor.primary10,
loading: requestDetailProvider.isLoading,
onPressed: () async {
requestDetailProvider.assetRetiredHelperModel?.activityAssetToBeRetiredAttachments = [];
for (var file in _files) {

@ -253,14 +253,14 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
if (!widget.isEdit) {
return true;
}
if (requestDetailProvider.engineerUpdateWorkOrderHelperModel!.equipmentStatus != null) {
if (requestDetailProvider.engineerUpdateWorkOrderHelperModel!.equipmentStatus!.value == 1 || requestDetailProvider.engineerUpdateWorkOrderHelperModel!.equipmentStatus!.value == 2) {
if (requestDetailProvider.engineerUpdateWorkOrderHelperModel!.returnToService == null) {
Fluttertoast.showToast(msg: "Return to service is required ", toastLength: Toast.LENGTH_LONG);
return false;
}
}
}
// if (requestDetailProvider.engineerUpdateWorkOrderHelperModel!.equipmentStatus != null) {
// if (requestDetailProvider.engineerUpdateWorkOrderHelperModel!.equipmentStatus!.value == 1 || requestDetailProvider.engineerUpdateWorkOrderHelperModel!.equipmentStatus!.value == 2) {
// if (requestDetailProvider.engineerUpdateWorkOrderHelperModel!.returnToService == null) {
// Fluttertoast.showToast(msg: "Return to service is required ", toastLength: Toast.LENGTH_LONG);
// return false;
// }
// }
// }
return isValid;
}

@ -17,7 +17,7 @@ class NotificationsList extends StatelessWidget {
@override
Widget build(BuildContext context) {
if (notifications.isEmpty) {
return NoDataFound(message: context.translation.notificationsNotFound);
return NoDataFound(message: context.translation.notificationsNotFound).center;
}
return LazyLoading(
nextPage: nextPage,

Loading…
Cancel
Save