ppm flow added.

main_design2.0
Sikander Saleem 2 years ago
parent c6115e5938
commit f8ba08a44b

@ -103,6 +103,31 @@ class RegularVisitsProvider extends ChangeNotifier {
return response.statusCode; return response.statusCode;
} }
Future<Visit> getVisitObjectById(num id) async {
try {
Map<String, dynamic> body = {};
body.addAll(visitsSearch.toMap());
body["pageNumber"] = 1;
body["pageSize"] = 3;
body["id"] = id;
Response response = await ApiManager.instance.post(
URLs.getRegularVisits,
body: body,
);
if (response.statusCode >= 200 && response.statusCode < 300) {
List requestsListJson = json.decode(response.body)["data"];
List<Visit> visits = requestsListJson.map((request) => Visit.fromJson(request)).toList();
return visits?.first;
} else {
return null;
}
} catch (error) {
return null;
}
}
/// 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
/// return state code if request complete may be 200, 404 or 403 /// return state code if request complete may be 200, 404 or 403

@ -65,6 +65,8 @@ class PpmItemView extends StatelessWidget {
], ],
), ),
], ],
).toShadowContainer(context, showShadow: showShadow).onPress(() {}); ).toShadowContainer(context, showShadow: showShadow).onPress(() {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => VisitDetailsPage(visit: Visit(id: request.id))));
});
} }
} }

@ -1,5 +1,6 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/regular_visits_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';
@ -8,6 +9,8 @@ import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/models/visits/visit.dart'; import 'package:test_sa/models/visits/visit.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/visits/pantry/edit_pentry.dart'; import 'package:test_sa/views/pages/user/visits/pantry/edit_pentry.dart';
import 'package:test_sa/views/widgets/loaders/app_loading.dart';
import 'package:test_sa/views/widgets/loaders/no_item_found.dart';
import '../../../../controllers/providers/api/user_provider.dart'; import '../../../../controllers/providers/api/user_provider.dart';
import '../../../../models/enums/user_types.dart'; import '../../../../models/enums/user_types.dart';
@ -25,58 +28,69 @@ class VisitDetailsPage extends StatelessWidget {
Widget build(BuildContext context) { Widget build(BuildContext context) {
UserProvider userProvider = Provider.of<UserProvider>(context); UserProvider userProvider = Provider.of<UserProvider>(context);
RegularVisitsProvider _visitsProvider = Provider.of<RegularVisitsProvider>(context);
return Scaffold( return Scaffold(
appBar: DefaultAppBar(title: context.translation.preventiveMaintenance), appBar: DefaultAppBar(title: context.translation.preventiveMaintenance),
body: SafeArea( body: SafeArea(
child: Column( child: FutureBuilder(
children: [ future: _visitsProvider.getVisitObjectById(visit.id),
SingleChildScrollView( builder: (context, snap) {
child: Column( if (snap.connectionState == ConnectionState.waiting) {
//mainAxisSize: MainAxisSize.min, return const ALoading();
crossAxisAlignment: CrossAxisAlignment.start, } else if (snap.hasData) {
children: [ Visit visit = snap.data;
Row(
children: [ return Column(children: [
// StatusLabel( SingleChildScrollView(
// label: visit.priority.name, child: Column(
// id: visit.priority.id, //mainAxisSize: MainAxisSize.min,
// textColor: AColors.getPriorityStatusTextColor(visit.priority.id), crossAxisAlignment: CrossAxisAlignment.start,
// backgroundColor: AColors.getPriorityStatusColor(visit.priority.id)), children: [
// 8.width, Row(
StatusLabel( children: [
label: visit.status.name, // StatusLabel(
id: visit.status.id, // label: visit.priority.name,
textColor: AColors.getRequestStatusTextColorByName(visit.status.name), // id: visit.priority.id,
backgroundColor: AColors.getRequestStatusColorByName(visit.status.name), // textColor: AColors.getPriorityStatusTextColor(visit.priority.id),
), // backgroundColor: AColors.getPriorityStatusColor(visit.priority.id)),
1.width.expanded, // 8.width,
], StatusLabel(
), label: visit.status.name,
8.height, id: visit.status.id,
visit.deviceEnglishName.heading5(context), textColor: AColors.getRequestStatusTextColorByName(visit.status.name),
8.height, backgroundColor: AColors.getRequestStatusColorByName(visit.status.name),
'${context.translation.assetNumber}: ${visit.deviceNumber}'.bodyText(context), ),
'${context.translation.assetSN}: ${visit.deviceSerialNumber}'.bodyText(context), 1.width.expanded,
'${context.translation.code}: ${visit.serialNumber}'.bodyText(context), ],
const Divider().defaultStyle(context), ),
'${context.translation.expectDate}: ${visit.expectDate?.toServiceRequestDetailsFormat}'.bodyText(context), 8.height,
'${context.translation.actualDate}: ${visit.actualDate?.toServiceRequestDetailsFormat}'.bodyText(context), visit.deviceEnglishName.heading5(context),
const Divider().defaultStyle(context), 8.height,
'${context.translation.assignedTo}: ${visit.assignTo}'.bodyText(context), '${context.translation.assetNumber}: ${visit.deviceNumber}'.bodyText(context),
'${context.translation.engineerName}: ${visit.employName}'.bodyText(context), '${context.translation.assetSN}: ${visit.deviceSerialNumber}'.bodyText(context),
'${context.translation.site}: ${visit.hospitalName}'.bodyText(context), '${context.translation.code}: ${visit.serialNumber}'.bodyText(context),
], const Divider().defaultStyle(context),
).toShadowContainer(context).paddingAll(16), '${context.translation.expectDate}: ${visit.expectDate?.toServiceRequestDetailsFormat}'.bodyText(context),
).expanded, '${context.translation.actualDate}: ${visit.actualDate?.toServiceRequestDetailsFormat}'.bodyText(context),
if (userProvider.user.type == UsersTypes.engineer && visit.status.id != 270) const Divider().defaultStyle(context),
AppFilledButton( '${context.translation.assignedTo}: ${visit.assignTo}'.bodyText(context),
onPressed: () { '${context.translation.engineerName}: ${visit.employName}'.bodyText(context),
Navigator.of(context).push(MaterialPageRoute(builder: (_) => EditPentry(visit: visit, pentry: visit.pentry))); '${context.translation.site}: ${visit.hospitalName}'.bodyText(context),
}, ],
label: context.translation.updateRequest, ).toShadowContainer(context).paddingAll(16),
).paddingAll(16), ).expanded,
], if (userProvider.user.type == UsersTypes.engineer && visit.status.id != 270)
), AppFilledButton(
onPressed: () {
Navigator.of(context).push(MaterialPageRoute(builder: (_) => EditPentry(visit: visit, pentry: visit.pentry)));
},
label: context.translation.updateRequest,
).paddingAll(16)
]);
}
return NoItemFound(message: context.translation.noDataFound);
}),
), ),
); );
} }

Loading…
Cancel
Save