snag list remaining 4 points resolved & improvements.

main_design2.0
Sikander Saleem 2 years ago
parent 58f5fbab5e
commit adba86b10e

@ -78,7 +78,8 @@ class URLs {
static get getSubWorkerInfoAccordingToPreviousStep => "$_baseUrl/WorkOrder/GetDataPreviousStep";
static get getServiceReportReasons => "$_baseUrl/Lookups/GetLookup?lookupEnum=522"; // get
static get getPpmReasons => "$_baseUrl/Lookups/GetLookup?lookupEnum=522"; // get for ppm po reason, in mobile there is no use of it.
static get getServiceReportReasons => "$_baseUrl/Lookups/GetLookup?lookupEnum=505"; // get // for service
static get getServiceReportTypes => "$_baseUrl/Lookups/GetLookup?lookupEnum=501"; // get
static get getServiceReportTypesForWO => "$_baseUrl/Lookups/GetLookup?lookupEnum=34"; // get
static get getServiceReportStatus => "$_baseUrl/Lookups/GetLookup?lookupEnum=521"; // get

@ -161,6 +161,7 @@ class GasRefillProvider extends ChangeNotifier {
"department": department?.toJson(),
"engSignature": newModel.engSignature,
"nurseSignature": newModel.nurseSignature,
"comment": newModel.comment,
};
body["gazRefillDetails"] = newModel.gazRefillDetails

@ -49,7 +49,7 @@ class NotificationsProvider extends ChangeNotifier {
notifyListeners();
Response response;
try {
final Map<String, dynamic> body = {"pageSize": pageItemNumber, "pageNumber": notifications.length ~/ pageItemNumber + 1};
final Map<String, dynamic> body = {"pageSize": pageItemNumber, "pageNumber": notifications.length ~/ pageItemNumber + 1, "userId": user.userID};
response = await ApiManager.instance.post(URLs.getSystemNotifications, body: body);
stateCode = response.statusCode;

@ -345,6 +345,10 @@ class ServiceReport {
await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.callLastSituation}");
return false;
}
if (reason == null) {
await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.reason}");
return false;
}
// if (sparePartsWorkOrders?.isEmpty ?? true) {
// await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.partNo}");
// return false;

@ -11,9 +11,11 @@ class SystemNotificationModel {
int id;
String createdOn;
String modifiedOn;
String priorityName;
String statusName;
SystemNotificationModel(
{this.userId, this.userName, this.title, this.text, this.referenceId, this.sourceId, this.sourceName, this.readed, this.readingDate, this.id, this.createdOn, this.modifiedOn});
{this.userId, this.userName, this.title, this.text, this.referenceId, this.sourceId, this.sourceName, this.readed, this.readingDate, this.id, this.createdOn, this.modifiedOn, this.priorityName, this.statusName});
SystemNotificationModel.fromJson(Map<String, dynamic> json) {
userId = json['userId'];
@ -28,6 +30,8 @@ class SystemNotificationModel {
id = json['id'];
createdOn = json['createdOn'];
modifiedOn = json['modifiedOn'];
priorityName = json['priorityName'];
statusName = json['statusName'];
}
Map<String, dynamic> toNotificationJson() {
@ -44,8 +48,9 @@ class SystemNotificationModel {
data['id'] = this.id;
data['createdOn'] = this.createdOn;
data['modifiedOn'] = this.modifiedOn;
data['priority'] = "Low Priority";
data['priorityName'] = this.priorityName;
data['priority'] = this.priorityName;
data['statusName'] = this.statusName;
return data;
}
@ -63,6 +68,8 @@ class SystemNotificationModel {
data['id'] = this.id;
data['createdOn'] = this.createdOn;
data['modifiedOn'] = this.modifiedOn;
data['priorityName'] = this.priorityName;
data['statusName'] = this.statusName;
return data;
}
}

@ -3,6 +3,7 @@ import 'package:provider/provider.dart';
import 'package:test_sa/controllers/notification/firebase_notification_manger.dart';
import 'package:test_sa/controllers/providers/api/all_requests_provider.dart';
import 'package:test_sa/controllers/providers/api/notifications_provider.dart';
import 'package:test_sa/controllers/providers/api/user_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';
@ -21,7 +22,7 @@ class RecentActivitiesFragment extends StatelessWidget {
return RefreshIndicator(
onRefresh: () {
Provider.of<AllRequestsProvider>(context, listen: false).getRequests();
_notificationsProvider.getSystemNotifications();
_notificationsProvider.getSystemNotifications(user: Provider.of<UserProvider>(context, listen: false).user);
return Future.delayed(const Duration(microseconds: 250));
},
child: SingleChildScrollView(

@ -3,6 +3,7 @@ import 'package:provider/provider.dart';
import 'package:test_sa/controllers/api_routes/api_manager.dart';
import 'package:test_sa/controllers/providers/api/all_requests_provider.dart';
import 'package:test_sa/controllers/providers/api/notifications_provider.dart';
import 'package:test_sa/controllers/providers/api/user_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';
@ -24,7 +25,7 @@ class RequestsFragment extends StatelessWidget {
builder: (context, snapshot, _) => RefreshIndicator(
onRefresh: () {
snapshot.getRequests();
Provider.of<NotificationsProvider>(context, listen: false).getSystemNotifications();
Provider.of<NotificationsProvider>(context, listen: false).getSystemNotifications(user: Provider.of<UserProvider>(context, listen: false).user);
return Future.delayed(const Duration(microseconds: 250));
},
child: GridView(

@ -38,7 +38,7 @@ class _DashboardPageState extends State<DashboardPage> {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
Provider.of<AllRequestsProvider>(context, listen: false).getRequests();
Provider.of<NotificationsProvider>(context, listen: false).getSystemNotifications();
Provider.of<NotificationsProvider>(context, listen: false).getSystemNotifications(user: Provider.of<UserProvider>(context, listen: false).user);
});
}

@ -171,14 +171,13 @@ class _NewGasRefillRequestPageState extends State<NewGasRefillRequestPage> {
buttonColor: context.isDark ? AppColor.neutral60 : AppColor.neutral50,
onPressed: _add,
),
24.height,
ListView.builder(
shrinkWrap: true,
itemCount: _gasModel.gazRefillDetails?.length,
padding: const EdgeInsets.only(top: 12, bottom: 24),
physics: const NeverScrollableScrollPhysics(),
itemBuilder: (context, index) {
return Card(
child: Column(
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
@ -215,24 +214,26 @@ class _NewGasRefillRequestPageState extends State<NewGasRefillRequestPage> {
("${context.translation.floor}: ${_gasModel.floor?.name}").bodyText(context),
("${context.translation.department}: ${_gasModel.department?.departmentName}").bodyText(context),
],
).paddingAll(16),
);
},
),
8.height,
AppTextFormField(
labelText: context.translation.comments,
textInputType: TextInputType.multiline,
alignLabelWithHint: true,
onChange: (text) {
_gasModel.comment = text;
).toShadowContainer(context);
},
),
40.height,
// 8.height,
// // todo sikander, check it with FM
// AppTextFormField(
// labelText: context.translation.comments,
// textInputType: TextInputType.multiline,
// alignLabelWithHint: true,
// onChange: (text) {
// _gasModel.comment = text;
// },
// ),
//40.height,
],
),
),
).expanded,
16.height,
AppFilledButton(label: context.translation.submitRequest, maxWidth: true, onPressed: _submit),
],
).paddingOnly(start: 16, end: 16, bottom: 24),

@ -63,6 +63,7 @@ class _RequestGasRefillState extends State<RequestGasRefill> {
super.initState();
if (widget.gasRefillModel != null) {
_formModel.fromGasRefillModel(widget.gasRefillModel);
_commentController.text = _formModel.comment ?? "";
}
}
@ -90,7 +91,7 @@ class _RequestGasRefillState extends State<RequestGasRefill> {
setState(() {});
_formKey.currentState.save();
_formModel.comment = _commentController.text;
int status = widget.gasRefillModel == null
? null /*await _gasRefillProvider.createModel(
user: _userProvider.user,
@ -137,7 +138,7 @@ class _RequestGasRefillState extends State<RequestGasRefill> {
// Scrollable.ensureVisible(_DetailsKey.currentContext);
_deliveredQuantityController.clear();
_workingHoursController.clear();
_commentController.clear();
//_commentController.clear();
_currentDetails = GasRefillDetails();
setState(() {});
return true;
@ -207,6 +208,7 @@ class _RequestGasRefillState extends State<RequestGasRefill> {
/// TBD
'${context.translation.gasRequest}: ${widget.gasRefillModel.gazRefillDetails[0].gasType.name}'.bodyText(context),
'${context.translation.cylinderType}: ${widget.gasRefillModel.gazRefillDetails[0].cylinderType.name}'.bodyText(context),
'${context.translation.cylinderSize}: ${widget.gasRefillModel.gazRefillDetails[0].cylinderSize.name}'.bodyText(context),
'${context.translation.quantity}: ${widget.gasRefillModel.gazRefillDetails[0].requestedQty ?? 0}'.bodyText(context),
'${context.translation.site}: ${widget.gasRefillModel.site?.name}'.bodyText(context),
@ -225,7 +227,7 @@ class _RequestGasRefillState extends State<RequestGasRefill> {
8.height,
SingleItemDropDownMenu<Lookup, GasStatusProvider>(
context: context,
title: context.translation.reportStatus,
title: context.translation.requestStatus,
initialValue: _formModel.status,
onSelect: (value) {
if (value?.value == 0) {
@ -233,8 +235,9 @@ class _RequestGasRefillState extends State<RequestGasRefill> {
setState(() {});
return;
}
if(value!=null) {
_formModel.status = value;
}
},
),
8.height,

@ -231,6 +231,11 @@ class _ServiceRequestDetailsPageState extends State<ServiceRequestDetailsPage> {
body: SafeArea(
child: loading
? const ALoading().center
: serviceRequest == null
? Text(
context.translation.noDataFound,
style: AppTextStyles.bodyText.copyWith(color: context.isDark ? AppColor.neutral10 : AppColor.neutral20),
).center
: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
@ -239,7 +244,7 @@ class _ServiceRequestDetailsPageState extends State<ServiceRequestDetailsPage> {
child: informationCard(serviceRequest),
).expanded,
if (_userProvider.user.type == UsersTypes.engineer || (serviceRequest.statusValue == 5 || serviceRequest.statusValue == 3))
(serviceRequest.firstAction == null
(serviceRequest?.firstAction == null
? AppFilledButton(
label: context.translation.firstAction,
maxWidth: true,

@ -46,8 +46,9 @@ class ADatePicker extends StatelessWidget {
padding: EdgeInsets.symmetric(horizontal: 16.toScreenWidth, vertical: 8.toScreenHeight),
child: Row(
children: [
enable
? Column(
// enable
// ?
Column(
crossAxisAlignment: CrossAxisAlignment.stretch,
mainAxisSize: MainAxisSize.min,
children: [
@ -58,8 +59,8 @@ class ADatePicker extends StatelessWidget {
.bodyText(context)
.custom(color: context.isDark ? AppColor.neutral30 : AppColor.neutral50),
],
).expanded
: label.bodyText(context).paddingOnly(top: 8, bottom: 8),
).expanded,
//: label.bodyText(context).paddingOnly(top: 8, bottom: 8),
enable ? 16.width : const Spacer(),
"calender".toSvgAsset(width: 20, color: context.isDark ? AppColor.neutral10 : null),
],

@ -6,6 +6,7 @@ import 'package:test_sa/extensions/text_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/system_notification_model.dart';
import 'package:test_sa/new_views/app_style/app_color.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
class NotificationItem extends StatelessWidget {
final SystemNotificationModel notification;
@ -20,6 +21,24 @@ class NotificationItem extends StatelessWidget {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
if (notification.priorityName != null)
StatusLabel(
label: notification.priorityName,
textColor: AppColor.getRequestStatusTextColorByName(context, notification.priorityName),
backgroundColor: AppColor.getRequestStatusColorByName(context, notification.priorityName),
).toShimmer(isShow: isLoading),
8.width,
if((notification.statusName ?? "").isNotEmpty && notification.sourceName!="Asset Transfer")
StatusLabel(
label: notification.statusName ?? "",
textColor: AppColor.getRequestStatusTextColorByName(context, notification.statusName ?? ""),
backgroundColor: AppColor.getRequestStatusColorByName(context, notification.statusName ?? ""),
).toShimmer(isShow: isLoading),
],
),
8.height,
Row(
crossAxisAlignment: CrossAxisAlignment.start,
children: [

@ -93,6 +93,7 @@ class _PentryTBSFormState extends State<PentryTBSForm> {
label: context.translation.expectedVisitDate,
date: DateTime.tryParse(widget.model.expectedDate ?? ""),
from: DateTime.now().subtract(const Duration(days: 30)),
enable: false,
onDatePicker: (date) {
if (date == null) return;
widget.model.expectedDate = date?.toIso8601String();

@ -1,38 +1,38 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_reasons_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/models/lookup.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
import 'package:test_sa/views/widgets/status/single_status_menu.dart';
class ServiceReportReasonsMenu extends StatelessWidget {
final Lookup initialValue;
final Function(Lookup) onSelect;
const ServiceReportReasonsMenu({Key key, this.onSelect, this.initialValue}) : super(key: key);
@override
Widget build(BuildContext context) {
SettingProvider _settingProvider = Provider.of<SettingProvider>(context);
UserProvider _userProvider = Provider.of<UserProvider>(context);
ServiceReportReasonsProvider _menuProvider = Provider.of<ServiceReportReasonsProvider>(context);
return LoadingManager(
isLoading: _menuProvider.isLoading,
isFailedLoading: _menuProvider.reasons == null,
stateCode: _menuProvider.stateCode,
onRefresh: () async {
_menuProvider.reset();
await _menuProvider.getTypes(
user: _userProvider.user,
host: _settingProvider.host,
);
},
child: SingleStatusMenu(
initialStatus: initialValue,
statuses: _menuProvider.reasons,
onSelect: onSelect,
));
}
}
// import 'package:flutter/material.dart';
// import 'package:provider/provider.dart';
// import 'package:test_sa/controllers/providers/api/status_drop_down/report/service_report_reasons_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/models/lookup.dart';
// import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
// import 'package:test_sa/views/widgets/status/single_status_menu.dart';
//
// class ServiceReportReasonsMenu extends StatelessWidget {
// final Lookup initialValue;
// final Function(Lookup) onSelect;
//
// const ServiceReportReasonsMenu({Key key, this.onSelect, this.initialValue}) : super(key: key);
//
// @override
// Widget build(BuildContext context) {
// SettingProvider _settingProvider = Provider.of<SettingProvider>(context);
// UserProvider _userProvider = Provider.of<UserProvider>(context);
// ServiceReportReasonsProvider _menuProvider = Provider.of<ServiceReportReasonsProvider>(context);
// return LoadingManager(
// isLoading: _menuProvider.isLoading,
// isFailedLoading: _menuProvider.reasons == null,
// stateCode: _menuProvider.stateCode,
// onRefresh: () async {
// _menuProvider.reset();
// await _menuProvider.getTypes(
// user: _userProvider.user,
// host: _settingProvider.host,
// );
// },
// child: SingleStatusMenu(
// initialStatus: initialValue,
// statuses: _menuProvider.reasons,
// onSelect: onSelect,
// ));
// }
// }

Loading…
Cancel
Save