ppm improvement, recurrent task improvement

design_3.0_demo_module
Sikander Saleem 1 year ago
parent 2a6277ee76
commit 4a7f1eb037

@ -4,17 +4,14 @@ import 'dart:io';
import 'package:firebase_messaging/firebase_messaging.dart'; import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:google_api_availability/google_api_availability.dart'; import 'package:google_api_availability/google_api_availability.dart';
import 'package:huawei_push/huawei_push.dart' as h_push;
import 'package:test_sa/controllers/notification/notification_manger.dart'; import 'package:test_sa/controllers/notification/notification_manger.dart';
import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/device/asset_transfer.dart'; import 'package:test_sa/models/device/asset_transfer.dart';
import 'package:test_sa/models/new_models/gas_refill_model.dart'; import 'package:test_sa/models/new_models/gas_refill_model.dart';
import 'package:huawei_push/huawei_push.dart' as h_push;
import 'package:test_sa/models/service_request/service_request.dart';
import 'package:test_sa/service_request_latest/views/service_request_detail_main_view.dart'; import 'package:test_sa/service_request_latest/views/service_request_detail_main_view.dart';
import 'package:test_sa/views/pages/device_transfer/device_transfer_details.dart'; import 'package:test_sa/views/pages/device_transfer/device_transfer_details.dart';
import 'package:test_sa/views/pages/user/gas_refill/gas_refill_details.dart'; import 'package:test_sa/views/pages/user/gas_refill/gas_refill_details.dart';
import 'package:test_sa/views/pages/user/ppm/ppm_details_page.dart'; import 'package:test_sa/views/pages/user/ppm/ppm_details_page.dart';
import 'package:test_sa/views/pages/user/requests/service_request_details.dart';
@pragma('vm:entry-point') @pragma('vm:entry-point')
Future<void> firebaseMessagingBackgroundHandler(RemoteMessage message) async {} Future<void> firebaseMessagingBackgroundHandler(RemoteMessage message) async {}
@ -93,11 +90,7 @@ class FirebaseNotificationManger {
} else if (messageData["requestType"] == "Asset Transfer") { } else if (messageData["requestType"] == "Asset Transfer") {
serviceClass = DeviceTransferDetails(model: AssetTransfer(id: int.parse(messageData["requestNumber"].toString()))); serviceClass = DeviceTransferDetails(model: AssetTransfer(id: int.parse(messageData["requestNumber"].toString())));
} else if (messageData["requestType"] == "PPM") { } else if (messageData["requestType"] == "PPM") {
serviceClass = PpmDetailsPage( serviceClass = PpmDetailsPage(requestId: int.parse(messageData["requestNumber"].toString()));
request: RequestsDetails(
id: int.parse(messageData["requestNumber"].toString()),
priority: messageData["priority"],
));
} }
// else if (data["requestType"] == "WorkOrder") { // else if (data["requestType"] == "WorkOrder") {
// //
@ -110,7 +103,6 @@ class FirebaseNotificationManger {
} }
static initialized(BuildContext context) async { static initialized(BuildContext context) async {
//TOD0 add platform check here also //TOD0 add platform check here also
if (!(await isGoogleServicesAvailable())) { if (!(await isGoogleServicesAvailable())) {
var initialNotification = await h_push.Push.getInitialNotification(); var initialNotification = await h_push.Push.getInitialNotification();
@ -165,7 +157,6 @@ class FirebaseNotificationManger {
FirebaseMessaging.onMessage.listen((RemoteMessage message) { FirebaseMessaging.onMessage.listen((RemoteMessage message) {
print('notification i got is ${message.toMap()}'); print('notification i got is ${message.toMap()}');
if (Platform.isAndroid) { if (Platform.isAndroid) {
if (message.data["notificationType"] != 'NurseConfirmArrive') { if (message.data["notificationType"] != 'NurseConfirmArrive') {
NotificationManger.showNotification( NotificationManger.showNotification(
title: message.notification?.title ?? "", subtext: message.notification?.body ?? "", hashcode: int.tryParse("1234" ?? "") ?? 1, payload: json.encode(message.data), context: context); title: message.notification?.title ?? "", subtext: message.notification?.body ?? "", hashcode: int.tryParse("1234" ?? "") ?? 1, payload: json.encode(message.data), context: context);

@ -52,32 +52,32 @@ class PartsProvider extends ChangeNotifier {
/// return state code if request complete may be 200, 404 or 403 /// return state code if request complete may be 200, 404 or 403
/// for more details check http state manager /// for more details check http state manager
/// lib\controllers\http_status_manger\http_status_manger.dart /// lib\controllers\http_status_manger\http_status_manger.dart
Future<int> getParts({String? title}) async { // Future<int> getParts({String? title}) async {
if (_loading == true) return -2; // if (_loading == true) return -2;
_loading = true; // _loading = true;
notifyListeners(); // notifyListeners();
late Response response; // late Response response;
try { // try {
response = await ApiManager.instance.post(URLs.getPartNumber, body: {if (title != null && title.isNotEmpty) "partName": title}); // response = await ApiManager.instance.post(URLs.getPartNumber, body: {if (title != null && title.isNotEmpty) "partName": title});
_stateCode = response.statusCode; // _stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) { // if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received // // client's request was successfully received
List categoriesListJson = json.decode(utf8.decode(response.bodyBytes)); // List categoriesListJson = json.decode(utf8.decode(response.bodyBytes));
List<SparePart> page = categoriesListJson.map((part) => SparePart.fromJson(part)).toList(); // List<SparePart> page = categoriesListJson.map((part) => SparePart.fromJson(part)).toList();
_parts ??= []; // _parts ??= [];
_parts!.addAll(page.map((e) => SparePartsWorkOrders(sparePart: e)).toList()); // _parts!.addAll(page.map((e) => SparePartsWorkOrders(sparePart: e)).toList());
_nextPage = page.length >= pageItemNumber; // _nextPage = page.length >= pageItemNumber;
} // }
_loading = false; // _loading = false;
notifyListeners(); // notifyListeners();
return response.statusCode; // return response.statusCode;
} catch (error) { // } catch (error) {
_loading = false; // _loading = false;
_stateCode = -1; // _stateCode = -1;
notifyListeners(); // notifyListeners();
return -1; // return -1;
} // }
} // }
/// return -2 if request in progress /// return -2 if request in progress
/// return -1 if error happen when sending request /// return -1 if error happen when sending request

@ -6,6 +6,7 @@ import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/pages/land_page/requests/asset_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/asset_item_view.dart';
import 'package:test_sa/new_views/pages/land_page/requests/gas_refill_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/gas_refill_item_view.dart';
import 'package:test_sa/new_views/pages/land_page/requests/ppm_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/ppm_item_view.dart';
import 'package:test_sa/new_views/pages/land_page/requests/recurrent_wo_item_view.dart';
import 'package:test_sa/new_views/pages/land_page/requests/service_request_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/service_request_item_view.dart';
class RequestCategoryList extends StatelessWidget { class RequestCategoryList extends StatelessWidget {
@ -17,16 +18,17 @@ class RequestCategoryList extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ListView.builder( return ListView.separated(
itemCount: list.length < totalCount ? list.length + 1 : list.length, itemCount: list.length < totalCount ? list.length + 1 : list.length,
shrinkWrap: true, shrinkWrap: true,
padding: const EdgeInsets.all(16), padding: const EdgeInsets.all(16),
physics: const NeverScrollableScrollPhysics(), physics: const NeverScrollableScrollPhysics(),
separatorBuilder: (cxt, index) => 16.height,
itemBuilder: (context, index) { itemBuilder: (context, index) {
if (index == list.length) { if (index == list.length) {
return const CircularProgressIndicator(color: AppColor.primary10, strokeWidth: 1).center; return const CircularProgressIndicator(color: AppColor.primary10, strokeWidth: 1).center;
} }
return Padding(padding: EdgeInsets.symmetric(vertical: 10.toScreenHeight), child: _buildRequestItem(list[index])); return _buildRequestItem(list[index]);
}, },
); );
} }
@ -36,6 +38,7 @@ class RequestCategoryList extends StatelessWidget {
bool isGasRefill = request.transactionNo == 2; bool isGasRefill = request.transactionNo == 2;
bool isAssetTransfer = request.transactionNo == 3; bool isAssetTransfer = request.transactionNo == 3;
bool isPPMs = request.transactionNo == 4; bool isPPMs = request.transactionNo == 4;
bool isRecurrentTask = request.transactionNo == 5;
if (isServiceRequest) { if (isServiceRequest) {
return ServiceRequestItemView(requestData: request); return ServiceRequestItemView(requestData: request);
@ -45,6 +48,8 @@ class RequestCategoryList extends StatelessWidget {
return PpmItemView(requestData: request); return PpmItemView(requestData: request);
} else if (isAssetTransfer) { } else if (isAssetTransfer) {
return AssetItemView(requestData: request); return AssetItemView(requestData: request);
} else if (isRecurrentTask) {
return RecurrentWoItemView(requestData: request);
} else { } else {
return Container( return Container(
height: 100, height: 100,

@ -174,7 +174,7 @@ class WorkOrderData {
failureReasone: json["failureReasone"] == null ? null : Lookup.fromJson(json["failureReasone"]), failureReasone: json["failureReasone"] == null ? null : Lookup.fromJson(json["failureReasone"]),
faultDescription: json["faultDescription"] == null ? null : FaultDescription.fromJson(json["faultDescription"]), faultDescription: json["faultDescription"] == null ? null : FaultDescription.fromJson(json["faultDescription"]),
solution: json["solution"] == null ? null : Lookup.fromJson(json["solution"]), solution: json["solution"] == null ? null : Lookup.fromJson(json["solution"]),
totalWorkingHours: json["totalWorkingHours"], totalWorkingHours: (json["totalWorkingHours"] ??"").toString(),
workOrderHistory: json["workOrderHistory"] == null ? [] : List<WorkOrderHistory>.from(json["workOrderHistory"]!.map((x) => WorkOrderHistory.fromJson(x))), workOrderHistory: json["workOrderHistory"] == null ? [] : List<WorkOrderHistory>.from(json["workOrderHistory"]!.map((x) => WorkOrderHistory.fromJson(x))),
activities: json["activities"] == null ? [] : List<Activities>.from(json["activities"]!.map((x) => Activities.fromJson(x))), activities: json["activities"] == null ? [] : List<Activities>.from(json["activities"]!.map((x) => Activities.fromJson(x))),
needAVisitDateTime: DateTime.tryParse(json["needAVisitDateTime"] ?? ""), needAVisitDateTime: DateTime.tryParse(json["needAVisitDateTime"] ?? ""),

@ -67,7 +67,7 @@ class PpmItemView extends StatelessWidget {
), ),
], ],
).toShadowContainer(context, withShadow: showShadow).onPress(() { ).toShadowContainer(context, withShadow: showShadow).onPress(() {
// Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(request: request))); Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(requestId: requestData!.id!)));
}); });
} }
if (requestDetails != null) { if (requestDetails != null) {
@ -117,7 +117,7 @@ class PpmItemView extends StatelessWidget {
), ),
], ],
).toShadowContainer(context, withShadow: showShadow).onPress(() { ).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(request: requestDetails!))); Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(requestId: requestDetails!.id!)));
}); });
} }
return SizedBox(); return SizedBox();

@ -1,25 +1,75 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/all_requests_provider.dart';
import 'package:test_sa/extensions/context_extension.dart'; import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/extensions/string_extensions.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';
import 'package:test_sa/models/all_requests_and_count_model.dart'; import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/ppm/recurrent_wo.dart'; import 'package:test_sa/models/new_models/dashboard_detail.dart';
import 'package:test_sa/new_views/app_style/app_color.dart'; import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/views/pages/user/ppm/ppm_work_order/recurrent_wo/recurrent_work_order_view.dart'; import 'package:test_sa/views/pages/user/ppm/ppm_work_order/recurrent_wo/recurrent_work_order_view.dart';
import '../../../../views/widgets/requests/request_status.dart'; import '../../../../views/widgets/requests/request_status.dart';
class RecurrentWoItemView extends StatelessWidget { class RecurrentWoItemView extends StatelessWidget {
final Data? requestData;
final RequestsDetails? requestDetails; final RequestsDetails? requestDetails;
final bool showShadow; final bool showShadow;
const RecurrentWoItemView({Key? key, this.requestDetails, this.showShadow = true}) : super(key: key); const RecurrentWoItemView({Key? key, this.requestData, this.requestDetails, this.showShadow = true}) : super(key: key);
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
if (requestData != null) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
StatusLabel(
label: requestData!.priorityName!,
textColor: AppColor.getRequestStatusTextColorByName(context, requestData!.priorityName!),
backgroundColor: AppColor.getRequestStatusColorByName(context, requestData!.priorityName!),
),
8.width,
StatusLabel(
label: requestData!.statusName!,
textColor: AppColor.getRequestStatusTextColorByName(context, requestData!.statusName!),
backgroundColor: AppColor.getRequestStatusColorByName(context, requestData!.statusName!),
),
1.width.expanded,
Text(
requestData!.transactionDate?.toServiceRequestCardFormat ?? "",
textAlign: TextAlign.end,
style: AppTextStyles.tinyFont.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral50),
),
],
),
8.height,
(requestData?.typeTransaction ?? context.translation.ppmRequest).heading5(context),
8.height,
// '${context.translation.assetNumber}: ${requestData!.assetNumber}'.bodyText(context),
// '${context.translation.assetSN}: ${request.assetSN}'.bodyText(context),//todo ask ahmed
// '${context.translation.code}: ${request.code}'.bodyText(context),
'${context.translation.requestNo}: ${requestData!.requestNo}'.bodyText(context),
16.height,
Row(
mainAxisSize: MainAxisSize.min,
children: [
Text(
context.translation.viewDetails,
style: AppTextStyles.bodyText.copyWith(color: AppColor.blueStatus(context)),
),
4.width,
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
],
),
],
).toShadowContainer(context, withShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => RecurrentWorkOrderView(taskId: requestData!.id)));
});
}
if (requestDetails != null) { if (requestDetails != null) {
return Column( return Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,

@ -5,6 +5,7 @@ import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/new_views/pages/land_page/requests/asset_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/asset_item_view.dart';
import 'package:test_sa/new_views/pages/land_page/requests/gas_refill_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/gas_refill_item_view.dart';
import 'package:test_sa/new_views/pages/land_page/requests/ppm_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/ppm_item_view.dart';
import 'package:test_sa/new_views/pages/land_page/requests/recurrent_wo_item_view.dart';
import 'package:test_sa/new_views/pages/land_page/requests/service_request_item_view.dart'; import 'package:test_sa/new_views/pages/land_page/requests/service_request_item_view.dart';
class RequestPaginatedListview extends StatelessWidget { class RequestPaginatedListview extends StatelessWidget {
@ -17,12 +18,13 @@ class RequestPaginatedListview extends StatelessWidget {
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
print('count i got is ${totalCount}');
return ListView.builder( return ListView.separated(
itemCount: list.length < totalCount ? list.length + 1 : list.length, itemCount: list.length < totalCount ? list.length + 1 : list.length,
controller: scrollController, controller: scrollController,
shrinkWrap: true, shrinkWrap: true,
padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth), padding: const EdgeInsets.all(16),
separatorBuilder: (cxt, index) => 16.height,
itemBuilder: (context, index) { itemBuilder: (context, index) {
if (index == list.length) { if (index == list.length) {
return const ListTile( return const ListTile(
@ -37,7 +39,7 @@ class RequestPaginatedListview extends StatelessWidget {
), ),
); );
} }
return Padding(padding: EdgeInsets.symmetric(vertical: 10.toScreenHeight), child: _buildRequestItem(list[index])); return _buildRequestItem(list[index]);
}, },
); );
} }
@ -47,15 +49,21 @@ class RequestPaginatedListview extends StatelessWidget {
bool isGasRefill = request.transactionNo == 2; bool isGasRefill = request.transactionNo == 2;
bool isAssetTransfer = request.transactionNo == 3; bool isAssetTransfer = request.transactionNo == 3;
bool isPPMs = request.transactionNo == 4; bool isPPMs = request.transactionNo == 4;
bool isRecurrentTask = request.transactionNo == 5;
if (isServiceRequest) { if (isServiceRequest) {
return ServiceRequestItemView(requestData: request,refreshData: false,); return ServiceRequestItemView(
requestData: request,
refreshData: false,
);
} else if (isGasRefill) { } else if (isGasRefill) {
return GasRefillItemView(requestData: request); return GasRefillItemView(requestData: request);
} else if (isPPMs) { } else if (isPPMs) {
return PpmItemView(requestData: request); return PpmItemView(requestData: request);
} else if (isAssetTransfer) { } else if (isAssetTransfer) {
return AssetItemView(requestData: request); return AssetItemView(requestData: request);
} else if (isRecurrentTask) {
return RecurrentWoItemView(requestData: request);
} else { } else {
return Container( return Container(
height: 100, height: 100,

@ -51,6 +51,7 @@ class ServiceRequestItemView extends StatelessWidget {
), ),
8.height, 8.height,
(requestData?.typeTransaction ?? context.translation.correctiveMaintenance).heading5(context), (requestData?.typeTransaction ?? context.translation.correctiveMaintenance).heading5(context),
8.height,
'${context.translation.assetName}: ${requestData!.assetName?.cleanupWhitespace.capitalizeFirstOfEach}'.bodyText(context), '${context.translation.assetName}: ${requestData!.assetName?.cleanupWhitespace.capitalizeFirstOfEach}'.bodyText(context),
// '${context.translation.assetNumber}: ${request.assetNo}'.bodyText(context), // '${context.translation.assetNumber}: ${request.assetNo}'.bodyText(context),
// '${context.translation.requestType}: ${requestData!.requestTypeName}'.bodyText(context), // '${context.translation.requestType}: ${requestData!.requestTypeName}'.bodyText(context),
@ -108,6 +109,7 @@ class ServiceRequestItemView extends StatelessWidget {
), ),
8.height, 8.height,
(requestDetails!.nameOfType ?? context.translation.correctiveMaintenance).heading5(context), (requestDetails!.nameOfType ?? context.translation.correctiveMaintenance).heading5(context),
8.height,
'${context.translation.assetName}: ${requestDetails!.assetName?.cleanupWhitespace.capitalizeFirstOfEach}'.bodyText(context), '${context.translation.assetName}: ${requestDetails!.assetName?.cleanupWhitespace.capitalizeFirstOfEach}'.bodyText(context),
'${context.translation.assetNumber}: ${requestDetails!.assetNo}'.bodyText(context), '${context.translation.assetNumber}: ${requestDetails!.assetNo}'.bodyText(context),
'${context.translation.requestType}: ${requestDetails!.requestType}'.bodyText(context), '${context.translation.requestType}: ${requestDetails!.requestType}'.bodyText(context),

@ -70,6 +70,7 @@ class _RequestsListPageState extends State<RequestsListPage> {
if (snapshot.isDetailLoading || snapshot.requestDetailList == null) { if (snapshot.isDetailLoading || snapshot.requestDetailList == null) {
return ListView.builder( return ListView.builder(
itemCount: 6, itemCount: 6,
padding: const EdgeInsets.all(16),
itemBuilder: (context, index) { itemBuilder: (context, index) {
return Padding( return Padding(
padding: EdgeInsets.symmetric(vertical: 10.toScreenHeight, horizontal: 0), padding: EdgeInsets.symmetric(vertical: 10.toScreenHeight, horizontal: 0),

@ -64,7 +64,7 @@ class RequestItemViewList extends StatelessWidget {
// color: Colors.grey, // color: Colors.grey,
// ); // );
}, },
separatorBuilder: (cxt, index) => 8.height, separatorBuilder: (cxt, index) => 16.height,
itemCount: isLoading ? 6 : list.length); itemCount: isLoading ? 6 : list.length);
} }
} }

@ -53,6 +53,8 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return Consumer<ServiceRequestDetailProvider>(builder: (context, requestDetailProvider, child) { return Consumer<ServiceRequestDetailProvider>(builder: (context, requestDetailProvider, child) {
double totalWorkingHours = _requestDetailProvider?.activityMaintenanceHelperModel?.activityMaintenanceTimers double totalWorkingHours = _requestDetailProvider?.activityMaintenanceHelperModel?.activityMaintenanceTimers
?.fold(0.0, (sum, item) => (sum ?? 0) + DateTime.parse(item.endTime!).difference(DateTime.parse(item.startTime!)).inSeconds) ?? ?.fold(0.0, (sum, item) => (sum ?? 0) + DateTime.parse(item.endTime!).difference(DateTime.parse(item.startTime!)).inSeconds) ??
0; 0;
@ -242,11 +244,11 @@ class _InternalMaintenanceRequestState extends State<InternalMaintenanceRequest>
initialValue: requestDetailProvider.activityMaintenanceHelperModel?.travelHours?.toString(), initialValue: requestDetailProvider.activityMaintenanceHelperModel?.travelHours?.toString(),
textInputType: TextInputType.number, textInputType: TextInputType.number,
onChange: (value) { onChange: (value) {
requestDetailProvider.activityMaintenanceHelperModel?.travelHours = int.tryParse(value); requestDetailProvider.activityMaintenanceHelperModel?.travelHours = num.parse(value) ;// int.tryParse(value);
}, },
// contentPadding: EdgeInsets.symmetric(vertical: 18.toScreenHeight, horizontal: 16.toScreenWidth), // contentPadding: EdgeInsets.symmetric(vertical: 18.toScreenHeight, horizontal: 16.toScreenWidth),
onSaved: (value) { onSaved: (value) {
requestDetailProvider.activityMaintenanceHelperModel?.travelHours = value as int?; requestDetailProvider.activityMaintenanceHelperModel?.travelHours = value as num?;
}, },
), ),
16.height, 16.height,

@ -151,6 +151,7 @@ class _SparePartRequestState extends State<SparePartRequest> with TickerProvider
title: context.translation.partNo, title: context.translation.partNo,
staticData: _spareParts, staticData: _spareParts,
showShadow: false, showShadow: false,
showAsBottomSheet: true,
loading: _isLoading, loading: _isLoading,
initialValue: requestDetailProvider.sparePartHelperModel?.sparePart, initialValue: requestDetailProvider.sparePartHelperModel?.sparePart,
backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral90, backgroundColor: context.isDark ? AppColor.neutral20 : AppColor.neutral90,

@ -6,7 +6,6 @@ import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/extensions/string_extensions.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';
import 'package:test_sa/models/all_requests_and_count_model.dart';
import 'package:test_sa/models/plan_preventive_visit/plan_preventive_visit_model.dart'; import 'package:test_sa/models/plan_preventive_visit/plan_preventive_visit_model.dart';
import 'package:test_sa/new_views/common_widgets/default_app_bar.dart'; import 'package:test_sa/new_views/common_widgets/default_app_bar.dart';
import 'package:test_sa/views/pages/user/ppm/update_ppm/update_ppm.dart'; import 'package:test_sa/views/pages/user/ppm/update_ppm/update_ppm.dart';
@ -20,9 +19,11 @@ import '../../../widgets/requests/request_status.dart';
class PpmDetailsPage extends StatefulWidget { class PpmDetailsPage extends StatefulWidget {
static const String id = "/visit-details"; static const String id = "/visit-details";
final RequestsDetails request;
const PpmDetailsPage({Key? key, required this.request}) : super(key: key); // final RequestsDetails request;
final int requestId;
const PpmDetailsPage({Key? key, required this.requestId}) : super(key: key);
@override @override
_PpmDetailsPageState createState() { _PpmDetailsPageState createState() {
@ -48,7 +49,7 @@ class _PpmDetailsPageState extends State<PpmDetailsPage> {
Future<void> getVisitData() async { Future<void> getVisitData() async {
ppmProvider = Provider.of<PpmProvider>(context, listen: false); ppmProvider = Provider.of<PpmProvider>(context, listen: false);
await ppmProvider?.getPlanPreventiveVisitById(widget.request.id!); await ppmProvider?.getPlanPreventiveVisitById(widget.requestId);
} }
@override @override
@ -70,20 +71,20 @@ class _PpmDetailsPageState extends State<PpmDetailsPage> {
children: [ children: [
Row( Row(
children: [ children: [
if (widget.request.priority != null) // if (widget.request.priority != null)
StatusLabel( // StatusLabel(
label: widget.request.priority, // label: widget.request.priority,
textColor: AppColor.getRequestStatusTextColorByName(context, widget.request.priority!), // textColor: AppColor.getRequestStatusTextColorByName(context, widget.request.priority!),
backgroundColor: AppColor.getRequestStatusColorByName(context, widget.request.priority!), // backgroundColor: AppColor.getRequestStatusColorByName(context, widget.request.priority!),
), // ),
if (widget.request.priority != null) 8.width, // if (planPreventiveVisit?.visitStatus != null) 8.width,
StatusLabel( StatusLabel(
label: planPreventiveVisit?.visitStatus!.name!, label: planPreventiveVisit?.visitStatus!.name!,
id: planPreventiveVisit!.visitStatus!.id!, id: planPreventiveVisit!.visitStatus!.id!,
textColor: AppColor.getRequestStatusTextColorByName(context, planPreventiveVisit.visitStatus!.name!), textColor: AppColor.getRequestStatusTextColorByName(context, planPreventiveVisit.visitStatus!.name!),
backgroundColor: AppColor.getRequestStatusColorByName(context, planPreventiveVisit.visitStatus!.name!), backgroundColor: AppColor.getRequestStatusColorByName(context, planPreventiveVisit.visitStatus!.name!),
), ),
1.width.expanded, // 1.width.expanded,
], ],
), ),
8.height, 8.height,
@ -108,7 +109,7 @@ class _PpmDetailsPageState extends State<PpmDetailsPage> {
if (userProvider!.user!.type == UsersTypes.engineer && (planPreventiveVisit.visitStatus!.id! != 270 && planPreventiveVisit.visitStatus!.id! != 269)) if (userProvider!.user!.type == UsersTypes.engineer && (planPreventiveVisit.visitStatus!.id! != 270 && planPreventiveVisit.visitStatus!.id! != 269))
AppFilledButton( AppFilledButton(
onPressed: () async { onPressed: () async {
await Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdatePpm(ppm: null, planPreventiveVisit: planPreventiveVisit, details: widget.request))); await Navigator.of(context).push(MaterialPageRoute(builder: (_) => UpdatePpm(ppm: null, planPreventiveVisit: planPreventiveVisit)));
getVisitData(); getVisitData();
}, },
label: context.translation.updateRequest, label: context.translation.updateRequest,

@ -28,9 +28,8 @@ import 'wo_info_form.dart';
class UpdatePpm extends StatefulWidget { class UpdatePpm extends StatefulWidget {
final Ppm? ppm; final Ppm? ppm;
final PlanPreventiveVisit planPreventiveVisit; final PlanPreventiveVisit planPreventiveVisit;
final RequestsDetails? details;
const UpdatePpm({Key? key, this.ppm, required this.planPreventiveVisit, this.details}) : super(key: key); const UpdatePpm({Key? key, this.ppm, required this.planPreventiveVisit}) : super(key: key);
@override @override
State<UpdatePpm> createState() => _UpdatePpmState(); State<UpdatePpm> createState() => _UpdatePpmState();

@ -66,7 +66,7 @@ class PpmItem extends StatelessWidget {
Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14) Icon(Icons.arrow_forward, color: AppColor.blueStatus(context), size: 14)
], ],
).onPress(() { ).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(request: RequestsDetails(id: ppm.id!.toInt())))); Navigator.of(context).push(MaterialPageRoute(builder: (_) => PpmDetailsPage(requestId: ppm.id!.toInt())));
}), }),
], ],
).expanded, ).expanded,

Loading…
Cancel
Save