implement changes mentioned in testing document

design_3.0_latest
WaseemAbbasi22 1 week ago
parent 7f563e8292
commit da664e957b

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

@ -62,6 +62,13 @@ class DashBoardProvider extends ChangeNotifier {
_requestDetailList = null;
dashboardCount = null;
}
void refreshDashboard({required UsersTypes userType,required BuildContext context}) {
setTabs(userType:userType,context: context);
getDashBoardCount(usersType: userType);
resetRequestDataList();
getRequestDetail(usersType: userType, status: tabs[currentListIndex].tag);
// notifyListeners();
}
void resetRequestDataList() {
pageNum = 1;
@ -222,7 +229,7 @@ class CategoryTabs {
static List<CategoryTabs> getTabs({required UsersTypes userType, required BuildContext context}) {
List<CategoryTabs> tabs = [];
if (userType == UsersTypes.engineer) {
tabs.add(CategoryTabs('New Request', 1));
tabs.add(CategoryTabs('Open Request', 1));
tabs.add(CategoryTabs('In Progress', 2));
tabs.add(CategoryTabs('Completed', 3));
return tabs;
@ -230,7 +237,7 @@ class CategoryTabs {
tabs.add(CategoryTabs('Open Request', 1));
tabs.add(CategoryTabs('In Progress', 2));
tabs.add(CategoryTabs('Acknowledged', 3));
tabs.add(CategoryTabs('Rejected', 6));
tabs.add(CategoryTabs('Canceled', 6));
return tabs;
}
}

@ -114,7 +114,6 @@ class _DashboardViewState extends State<DashboardView> {
@override
Widget build(BuildContext context) {
bool isNurse = (Provider.of<UserProvider>(context, listen: false).user!.type) == UsersTypes.normal_user;
print('user data is ${Provider.of<UserProvider>(context, listen: false).user?.toJson()}');
return Scaffold(
// backgroundColor: AppColor.background(context),
appBar: PreferredSize(

@ -19,7 +19,7 @@ class RequestCategoryFragment extends StatelessWidget {
Widget build(BuildContext context) {
return Consumer<DashBoardProvider>(builder: (context, dashboardProvider, child) {
return Column(mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: <Widget>[
context.translation.allRequests.heading4(context).paddingOnly(start: 16, end: 16),
context.translation.allWorkOrder.heading4(context).paddingOnly(start: 16, end: 16),
getTabs(
requestsProvider: dashboardProvider,
context: context,

@ -34,7 +34,7 @@ class RequestsFragment extends StatelessWidget {
context.isDark ? AppColor.redStatus(context) : AppColor.red30,
),
listItem(snapshot.dashboardCount?.data?.countOverdue ?? 0, "overdue", context.translation.overdue, context, snapshot.isAllCountLoading, 1, AppColor.yellowIcon(context)),
listItem(snapshot.dashboardCount?.data?.countOpen ?? 0, "new_request", ApiManager.instance.user!.type == UsersTypes.engineer ? context.translation.inProgress : context.translation.newR,
listItem(snapshot.dashboardCount?.data?.countOpen ?? 0, "new_request", ApiManager.instance.user?.type == UsersTypes.engineer ? context.translation.inProgress : context.translation.newR,
context, snapshot.isAllCountLoading, 2, AppColor.primary10),
listItem(snapshot.dashboardCount?.data?.countComplete ?? 0, "complete_request", context.translation.completed, context, snapshot.isAllCountLoading, 3, AppColor.greenStatus(context)),
],

@ -149,6 +149,13 @@
"reason2": "يقوم المهندس بتغيير موعد الزيارة دون التنسيق معي",
"reason3": "لم يحضر المهندس في التاريخ / الوقت",
"reason4": "لا يمكنني الوصول إلى المهندس عن طريق الهاتف أو الرسائل القصيرة",
"requestSparePart": "طلب قطعة غيار",
"selectAction": "اختر إجراء",
"requestSparePartForYourAsset": "اطلب قطعة غيار لأصلك",
"addNewActivity": "أضف نشاطًا جديدًا",
"addNewActivityToYourWorkOrder": "أضف نشاطًا جديدًا إلى أمر العمل الخاص بك",
"markAsCompleted": "وضع علامة كمكتمل",
"cmNumber": "رقم الصيانة التصحيحية",
"reason5": "هناك تأخير في إحضار قطع الغيار",
"repaired": "تم الاصلاح",
"repeated": "معاد",
@ -158,6 +165,11 @@
"serviceRequestInformation": "معلومات طلب الخدمة",
"serviceRequests": "طلبات الخدمة",
"correctiveMaintenance": "الصيانة التصحيحية",
"cmDetails": "تفاصيل الصيانة التصحيحية",
"assetInformation": "معلومات الأصول",
"callDetails": "تفاصيل الاتصال",
"assetStatus": "حالة الأصول",
"selectWorkOrder": "اختر أمر العمل",
"shareAntherIssue": "مشاركة قضية أخرى",
"shareApp": "مشاركة التطبيق",
"sn": "الرقم التسلسلي",
@ -464,6 +476,7 @@
"trackAssetTransfer" : "تتبع نقل اجهزة",
"total" : "مجموع",
"allRequests" : "كل الطلبات",
"allWorkOrders": "جميع أوامر العمل",
"requestStatus" : "حالة الطلب",
"createSubWorkOrder" : "إنشاء أمر عمل فرعي",
"mrNumber" : "MR Number",

@ -328,12 +328,17 @@
"firstAction" : "First Action",
"rejectionReason" : "Rejection Reason",
"workOrder" : "Work Order",
"cmDetails": "CM Details",
"assetInformation": "Asset Information",
"callDetails": "Call Details",
"assetStatus": "Asset Status",
"workOrders" : "Work Orders",
"viewWorkOrder" : "View All Work Order",
"createWorkOrder" : "Create Work Order",
"serviceDetails": "Service Details",
"setVisitDate": "Set Date Of Visit",
"verifyArrival": "Verify Arrival",
"selectWorkOrder": "Select Work Order",
"scanQr": "Scan QR",
"scanQrDetail": "Scan QR Code of the device",
"askRequester": "Ask Requester to Verify",
@ -345,6 +350,13 @@
"lastSituationStatus": "Last Situation Status",
"priority" : "Request Priority",
"equipmentStatus" : "Equipment Status",
"requestSparePart": "Request Spare Part",
"selectAction": "Select Action",
"requestSparePartForYourAsset": "Request spare part for your asset",
"addNewActivity": "Add New Activity",
"addNewActivityToYourWorkOrder": "Add new activity to your work order",
"markAsCompleted": "Mark As Completed",
"cmNumber": "CM Number",
"jopStatus" : "Jop Status",
"attachImage" : "Attach Image",
"callComments" : "Call Comments",
@ -464,6 +476,7 @@
"createSubWorkOrder" : "Create Sub Work Order",
"mrNumber" : "MR Number",
"vendorEng" : "Vendor Engineer",
"allWorkOrder": "All Work Orders",
"vendorName" : "Vendor Name",
"reset" : "Reset",
"solution" : "Solution",

@ -89,6 +89,7 @@ class EngineerUpdateWorkOrderHelperModel {
Map<String, dynamic> toJson() {
final Map<String, dynamic> data = <String, dynamic>{};
data['workOrderId'] = workOrderId;
data['equipmentStatusId'] = equipmentStatus?.id;
data['returnToService'] = returnToService;

@ -27,7 +27,7 @@ class AppBottomNavigationBar extends StatelessWidget {
backgroundColor: Colors.white,
items: <BottomNavigationBarItem>[
navBarItem(context, index: 0, iconName: "overview", label: context.translation.overview),
navBarItem(context, index: 1, iconName: "request_icon", label: context.translation.request),
navBarItem(context, index: 1, iconName: "request_icon", label: context.translation.workOrder),
if (!isEngineer) navBarItem(context, index: 2, iconName: "add_icon", label: context.translation.calendar, showLabel: false),
navBarItem(context, index: !isEngineer ? 3 : 2, iconName: "assets", label: context.translation.assets),
navBarItem(context, index: !isEngineer ? 4 : 3, iconName: "contact", label: context.translation.contact),

@ -19,7 +19,7 @@ class CreateRequestTypeBottomSheet extends StatelessWidget {
mainAxisSize: MainAxisSize.min,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
"Select Request".heading4(context),
context.translation.selectWorkOrder.heading4(context),
16.height,
GridView(
padding: EdgeInsets.all(0),
@ -30,7 +30,7 @@ class CreateRequestTypeBottomSheet extends StatelessWidget {
listCard(
context: context,
icon: 'add_icon',
label: '${context.translation.create}\n${context.translation.serviceRequest}',
label: context.translation.correctiveMaintenance,
onTap: () {
Navigator.pushReplacementNamed(context, CreateNewRequest.id);
},
@ -38,7 +38,7 @@ class CreateRequestTypeBottomSheet extends StatelessWidget {
listCard(
context: context,
icon: 'add_icon',
label: '${context.translation.create}\n${context.translation.gasRefill}',
label: context.translation.gasRefill,
onTap: () {
//NewGasRefillRequestPage.routeName)
Navigator.pushReplacementNamed(context, NewGasRefillRequestPage.routeName);
@ -47,7 +47,7 @@ class CreateRequestTypeBottomSheet extends StatelessWidget {
listCard(
context: context,
icon: 'add_icon',
label: '${context.translation.create}\n${context.translation.deviceTransfer}',
label: context.translation.deviceTransfer,
onTap: () async {
Navigator.pushReplacementNamed(context, RequestDeviceTransfer.id);
},

@ -32,8 +32,8 @@ class _MyRequestsPageState extends State<MyRequestsPage> {
Widget build(BuildContext context) {
if (_provider == null) {
requestsList = [
context.translation.allRequests,
context.translation.serviceRequest,
context.translation.allWorkOrder,
context.translation.correctiveMaintenance,
context.translation.gasRefillRequest,
context.translation.deviceTransferRequest,
context.translation.preventiveMaintenance,

@ -46,10 +46,10 @@ class ServiceRequestItemView extends StatelessWidget {
],
),
8.height,
(requestData!.typeTransaction ?? context.translation.serviceRequest).heading5(context),
(requestData!.typeTransaction ?? context.translation.correctiveMaintenance).heading5(context),
'${context.translation.assetName}: ${requestData!.assetName?.cleanupWhitespace.capitalizeFirstOfEach}'.bodyText(context),
// '${context.translation.assetNumber}: ${request.assetNo}'.bodyText(context),
'${context.translation.requestType}: ${requestData!.requestTypeName}'.bodyText(context),
// '${context.translation.requestType}: ${requestData!.requestTypeName}'.bodyText(context),
'${context.translation.requestNo}: ${requestData!.requestNo}'.bodyText(context),
8.height,
Row(
@ -97,7 +97,7 @@ class ServiceRequestItemView extends StatelessWidget {
],
),
8.height,
(requestDetails!.nameOfType ?? context.translation.serviceRequest).heading5(context),
(requestDetails!.nameOfType ?? context.translation.correctiveMaintenance).heading5(context),
'${context.translation.assetName}: ${requestDetails!.assetName?.cleanupWhitespace?.capitalizeFirstOfEach}'.bodyText(context),
'${context.translation.assetNumber}: ${requestDetails!.assetNo}'.bodyText(context),
'${context.translation.requestType}: ${requestDetails!.requestType}'.bodyText(context),

@ -217,18 +217,13 @@ class _LoginPageState extends State<LoginPage> {
mainAxisAlignment: MainAxisAlignment.start,
children: [
SizedBox(
height: 146.toScreenHeight,
height: 100.toScreenHeight,
),
// RoundedBackButton(
// icon: Icons.arrow_back_ios,
// onPressed: () {
// ///There is no previous screen
// },
// backgroundColor: context.isDark ? AppColor.primary80 : AppColor.primary80),
"logo_white".toPngAsset(),
25.height,
context.translation.signInToYour.customHeadingText(context).custom(color: Colors.white, fontSize: 27, fontWeight: FontWeight.w500),
context.translation.account.customHeadingText(context).custom(color: Colors.white, fontSize: 27, fontWeight: FontWeight.w500),
25.height,
15.height,
context.translation.letSignInToAccount.customHeadingText(context).custom(color: Colors.white, fontWeight: FontWeight.w500, fontSize: 12),
],
),

@ -157,7 +157,7 @@ class FooterActionButton {
if (showMarkAsFixedButton) ...[
8.height,
AppFilledButton(
label: context.translation.markAsFixed,
label: context.translation.markAsCompleted,
// maxWidth: true,
buttonColor: AppColor.green70,
onPressed: () async {

@ -364,8 +364,8 @@ class ServiceRequestBottomSheet {
static Future activityTypeBottomSheet({required BuildContext context}) {
final List<Map<String, String>> items = [
{'heading': context.translation.sparePartRequest, 'subHeading': context.translation.sparePartRequestDetail, 'icon': AppAsset.sparePartIcon},
{'heading': context.translation.maintenanceRequest, 'subHeading': context.translation.sparePartRequestDetail, 'icon': AppAsset.maintenanceIcon},
{'heading': context.translation.requestSparePart, 'subHeading': context.translation.requestSparePartForYourAsset, 'icon': AppAsset.sparePartIcon},
{'heading': context.translation.addNewActivity, 'subHeading': context.translation.addNewActivityToYourWorkOrder, 'icon': AppAsset.maintenanceIcon},
];
Widget customListItem({
required BuildContext context,
@ -449,7 +449,7 @@ class ServiceRequestBottomSheet {
8.height,
Align(
alignment: AlignmentDirectional.centerStart,
child: context.translation.selectActivityType.bottomSheetHeadingTextStyle(context),
child: context.translation.selectAction.bottomSheetHeadingTextStyle(context),
),
16.height,
ListView.builder(

@ -31,7 +31,6 @@ class WorkOrderDetailView extends StatelessWidget {
Widget build(BuildContext context) {
UserProvider _userProvider = Provider.of<UserProvider>(context, listen: false);
return Consumer<RequestDetailProvider>(builder: (pContext, requestProvider, _) {
return requestProvider.isLoading
? const CircularProgressIndicator(color: AppColor.primary10).center
: requestProvider.currentWorkOrder == null
@ -118,7 +117,7 @@ class WorkOrderDetailView extends StatelessWidget {
],
),
Text(
context.translation.assetDetails,
context.translation.assetInformation,
style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
),
8.height,
@ -173,7 +172,7 @@ class WorkOrderDetailView extends StatelessWidget {
//... request details starts here....
Text(
context.translation.requestDetail,
context.translation.callDetails,
style: AppTextStyles.heading4.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
),
8.height,
@ -193,13 +192,18 @@ class WorkOrderDetailView extends StatelessWidget {
'${context.translation.date}: ${workOrder.requestedDate!.toString().toServiceRequestDetailsFormat}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral120),
),
//TODO confirm the value...
Text(
'${context.translation.cmNumber}: ${workOrder.workOrderNo}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral30 : AppColor.neutral120),
),
8.height,
if ((workOrder.comments ?? "").isNotEmpty) ...[
const Divider().defaultStyle(context),
8.height,
Text(
workOrder.comments!,
'${context.translation.callComments}: ${workOrder.comments!}',
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
),
],
@ -319,28 +323,27 @@ class WorkOrderDetailView extends StatelessWidget {
}
}
}
Widget assetDetailCard({required RequestDetailProvider requestDetailProvider, required UserProvider userProvider}) {
//TODO add proper check to hide and show that widget
// if (requestDetailProvider.currentWorkOrder!.data!.needAVisitDateTime != null &&
// userProvider.user?.type == UsersTypes.engineer &&
// requestDetailProvider.currentWorkOrder?.data?.nextStep!.workOrderNextStepEnum == WorkOrderNextStepEnum.verifyAssetDetail) {
WorkOrderData currentWorkOrderData = requestDetailProvider.currentWorkOrder!.data!;
requestDetailProvider.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel(
workOrderId: currentWorkOrderData.requestId,
equipmentStatus: currentWorkOrderData.equipmentStatus,
loanAvailability: currentWorkOrderData.loanAvailablity,
failureReason: currentWorkOrderData.failureReasone,
// faultDescription: currentWorkOrderData.fa,
solution: currentWorkOrderData.solution?.name,
returnToService: currentWorkOrderData.returnToService,
serviceType: currentWorkOrderData.serviceType,
);
// requestDetailProvider.updateNeedVisitHelperModel(requestDetailProvider.needVisitHelperModel);
return const AssetDetailCard();
// }
// else {
// return const SizedBox();
// }
if (userProvider.user?.type == UsersTypes.engineer &&
requestDetailProvider.currentWorkOrder?.data?.nextStep!.workOrderNextStepEnum == WorkOrderNextStepEnum.activity) {
WorkOrderData currentWorkOrderData = requestDetailProvider.currentWorkOrder!.data!;
requestDetailProvider.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel(
workOrderId: currentWorkOrderData.requestId,
equipmentStatus: currentWorkOrderData.equipmentStatus,
loanAvailability: currentWorkOrderData.loanAvailablity,
failureReason: currentWorkOrderData.failureReasone,
// faultDescription: currentWorkOrderData.fa,
solution: currentWorkOrderData.solution?.name,
returnToService: currentWorkOrderData.returnToService,
serviceType: currentWorkOrderData.serviceType,
);
return const AssetDetailCard();
}
else {
return const SizedBox();
}
}
}

@ -53,10 +53,11 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
@override
void initState() {
super.initState();
assignValues();
}
Future<void> getFaultDescription() async {
Provider.of<FaultDescriptionProvider>(context, listen: false).getFaultDescriptionList(assetId: _requestDetailProvider?.currentWorkOrder?.data?.asset?.id).then((List<FaultDescription>? data) {
Future<void> getFaultDescription({required int? assetId}) async {
Provider.of<FaultDescriptionProvider>(context, listen: false).getFaultDescriptionList(assetId: assetId).then((List<FaultDescription>? data) {
if (data?.isNotEmpty ?? false) {
_faults = data!;
setState(() {});
@ -64,6 +65,22 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
});
}
void assignValues() {
RequestDetailProvider requestDetailProvider = Provider.of<RequestDetailProvider>(context, listen: false);
WorkOrderData currentWorkOrderData = requestDetailProvider.currentWorkOrder!.data!;
requestDetailProvider.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel(
workOrderId: currentWorkOrderData.requestId,
equipmentStatus: currentWorkOrderData.equipmentStatus,
loanAvailability: currentWorkOrderData.loanAvailablity,
failureReason: currentWorkOrderData.failureReasone,
// faultDescription: currentWorkOrderData.fa,
solution: currentWorkOrderData.solution?.name,
returnToService: currentWorkOrderData.returnToService,
serviceType: currentWorkOrderData.serviceType,
);
getFaultDescription(assetId: requestDetailProvider.currentWorkOrder?.data?.asset?.id);
}
@override
Widget build(BuildContext context) {
if (_requestDetailProvider == null) {
@ -79,25 +96,14 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
_equipmentStatusProvider!.getDate();
});
_reasonProvider?.serviceRequestId = _requestDetailProvider?.currentWorkOrder!.data!.requestId.toString();
WorkOrderData currentWorkOrderData = _requestDetailProvider!.currentWorkOrder!.data!;
_requestDetailProvider?.engineerUpdateWorkOrderHelperModel = EngineerUpdateWorkOrderHelperModel(
workOrderId: currentWorkOrderData.requestId,
equipmentStatus: currentWorkOrderData.equipmentStatus,
loanAvailability: currentWorkOrderData.loanAvailablity,
failureReason: currentWorkOrderData.failureReasone,
// faultDescription: currentWorkOrderData.fa,
solution: currentWorkOrderData.solution?.name,
returnToService: currentWorkOrderData.returnToService,
serviceType: currentWorkOrderData.serviceType,
);
// _requestDetailProvider?.updateEngineerUpdateWorkOrderHelperModel(_requestDetailProvider?.engineerUpdateWorkOrderHelperModel);
getFaultDescription();
}
return Scaffold(
key: _scaffoldKey,
appBar: DefaultAppBar(title: context.translation.verify_asset_details),
body: Consumer<RequestDetailProvider>(builder: (context, RequestDetailProvider requestDetailProvider, child) {
print('description model i got is ${requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription?.toJson()}');
return Column(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
@ -193,10 +199,14 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
showShadow: false,
initialValue: requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription,
onSelect: (fault) {
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription = fault;
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution = fault?.workPerformed;
if (mounted) {
requestDetailProvider.updateEngineerUpdateWorkOrderHelperModel(requestDetailProvider.engineerUpdateWorkOrderHelperModel);
if (fault != null) {
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription = fault;
requestDetailProvider.engineerUpdateWorkOrderHelperModel?.solution = fault.workPerformed;
if (mounted) {
print('model updated...');
requestDetailProvider.updateEngineerUpdateWorkOrderHelperModel(requestDetailProvider.engineerUpdateWorkOrderHelperModel);
}
print('description i got is ${requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription?.toJson()}');
}
},
),
@ -215,11 +225,12 @@ class _VerifyAssetDetailsState extends State<VerifyAssetDetails> with TickerProv
label: context.translation.verify_asset_details,
buttonColor: AppColor.primary10,
onPressed: () async {
//TODO add loader..
showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
await requestDetailProvider.engineerUpdateWorkOrder();
Navigator.pop(context);
Navigator.pop(context);
print('description model i got is ${requestDetailProvider.engineerUpdateWorkOrderHelperModel?.faultDescription?.toJson()}');
print('update model i got is ${requestDetailProvider.engineerUpdateWorkOrderHelperModel?.toJson()}');
// showDialog(context: context, barrierDismissible: false, builder: (context) => const AppLazyLoading());
// await requestDetailProvider.engineerUpdateWorkOrder();
// Navigator.pop(context);
// Navigator.pop(context);
},
),
),

@ -7,10 +7,12 @@ import 'package:test_sa/controllers/providers/api/devices_provider.dart';
import 'package:test_sa/controllers/providers/api/service_requests_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/dashboard_latest/dashboard_provider.dart';
import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_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';
import 'package:test_sa/models/helper_data_models/workorder/work_order_helper_models.dart';
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/service_request/pending_service_request_model.dart';
@ -43,7 +45,6 @@ class CreateNewRequest extends StatefulWidget {
//TODO remove unnecessary code
class _CreateNewRequestState extends State<CreateNewRequest> with TickerProviderStateMixin {
AssetProvider? _devicesProvider;
late TextEditingController _commentController;
late UserProvider _userProvider;
late SettingProvider _settingProvider;
@ -108,7 +109,7 @@ class _CreateNewRequestState extends State<CreateNewRequest> with TickerProvider
Widget build(BuildContext context) {
return Scaffold(
key: _scaffoldKey,
appBar: DefaultAppBar(title: context.translation.createNewRequest),
appBar: DefaultAppBar(title: context.translation.createWorkOrder),
body: Consumer<ServiceRequestsProvider>(builder: (context, serviceRequestProvider, child) {
return SafeArea(
child: LoadingManager(
@ -146,7 +147,7 @@ class _CreateNewRequestState extends State<CreateNewRequest> with TickerProvider
21.height,
highPriorityWidget(),
20.height,
equipmentStatusWidget(context),
assetStatusWidget(context),
24.height,
MultiFilesPicker(
label: context.translation.attachImage,
@ -168,7 +169,7 @@ class _CreateNewRequestState extends State<CreateNewRequest> with TickerProvider
buttonColor: AppColor.primary10,
label: (pendingAssetServiceRequest != null && (pendingAssetServiceRequest!.details?.isNotEmpty ?? false))
? context.translation.duplicateRequest
: context.translation.createNewRequest,
: context.translation.createWorkOrder,
onPressed: checkPendingRequest ? null : _submit,
// buttonColor: AppColor.primary10,
),
@ -182,7 +183,7 @@ class _CreateNewRequestState extends State<CreateNewRequest> with TickerProvider
);
}
Widget equipmentStatusWidget(BuildContext context) {
Widget assetStatusWidget(BuildContext context) {
return Consumer<EquipmentStatusProvider>(builder: (cxt, snapshot, _) {
try {
_serviceRequest.defectType ??= snapshot.items.first;
@ -194,7 +195,7 @@ class _CreateNewRequestState extends State<CreateNewRequest> with TickerProvider
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisSize: MainAxisSize.min,
children: [
context.translation.equipmentStatus.bodyText(context).custom(color: AppColor.black20),
context.translation.assetStatus.bodyText(context).custom(color: AppColor.black20),
8.height,
Wrap(
runSpacing: 8,
@ -209,10 +210,12 @@ class _CreateNewRequestState extends State<CreateNewRequest> with TickerProvider
height: 24,
child: Radio(
value: element,
activeColor: Colors.red,
activeColor:AppColor.primary10,
fillColor: WidgetStateColor.resolveWith((states) {
if (states.contains(WidgetState.selected)) return AppColor.primary10;
return AppColor.neutral130;
if (states.contains(WidgetState.selected)) {
return AppColor.primary10; // Thumb color when selected
}
return Colors.grey; // Thumb color when unselected (grey)
}),
groupValue: _serviceRequest.defectType,
onChanged: (state) {
@ -258,7 +261,7 @@ class _CreateNewRequestState extends State<CreateNewRequest> with TickerProvider
_serviceRequest.priority ??= snapshot.items.firstWhere((element) => element.value == 0, orElse: () => Lookup());
}
return CupertinoSwitch(
thumbColor: AppColor.red70,
thumbColor:_serviceRequest.priority?.value != 0? AppColor.red70:AppColor.neutral10,
activeColor: AppColor.red30.withOpacity(0.4),
value: _serviceRequest.priority?.value != 0,
onChanged: (state) {
@ -359,7 +362,8 @@ class _CreateNewRequestState extends State<CreateNewRequest> with TickerProvider
int status = await _requestDetailProvider.createWorkOrder();
if(status==200){
//pop dialoge...
DashBoardProvider dashBoardProvider = Provider.of<DashBoardProvider>(context,listen: false);
dashBoardProvider.refreshDashboard(context: context,userType: UsersTypes.nurse);
Navigator.pop(context);
Navigator.pop(context);
}

@ -67,7 +67,7 @@ class _RequestDetailMainState extends State<RequestDetailMain> {
}),
10.width,
Text(
context.translation.serviceDetails ,
context.translation.cmDetails ,
style: AppTextStyles.heading3.copyWith(fontWeight: FontWeight.w500, color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
).expanded,
],
@ -96,7 +96,7 @@ class _RequestDetailMainState extends State<RequestDetailMain> {
// setState(() {});
},
tabs: [
Tab(text: context.translation.requestDetail, height: 57.toScreenHeight),
Tab(text: context.translation.details, height: 57.toScreenHeight),
Tab(text: context.translation.historyLogs, height: 57.toScreenHeight),
],
),

@ -49,7 +49,6 @@ class _ServiceRequestDetailsPageState extends State<ServiceRequestDetailsPage> {
WidgetsFlutterBinding.ensureInitialized().addPostFrameCallback((timeStamp) async {
Provider.of<CommentsProvider>(context, listen: false).reset();
serviceRequest = await Provider.of<ServiceRequestsProvider>(context, listen: false).getServiceRequestObjectById(requestId: widget.serviceRequest.id!);
print('service request i got is ${serviceRequest?.id}');
loading = false;
setState(() {});
});

@ -4,6 +4,7 @@
"signInToYour",
"overdue",
"newR",
"noDataFound"
"noDataFound",
"allWorkOrder"
]
}

Loading…
Cancel
Save