diff --git a/lib/controllers/api_routes/urls.dart b/lib/controllers/api_routes/urls.dart index 2136a925..9ef05cd5 100644 --- a/lib/controllers/api_routes/urls.dart +++ b/lib/controllers/api_routes/urls.dart @@ -75,6 +75,10 @@ class URLs { static get getSubWorkerInfoAccordingToPreviousStep => "$_baseUrl/WorkOrder/GetDataPreviousStep"; static get getPpmReasons => "$_baseUrl/Lookups/GetLookup?lookupEnum=522"; // get for ppm po reason, in mobile there is no use of it. + static get getPpmAssetAvailability => "$_baseUrl/Lookups/GetLookup?lookupEnum=1205"; // get for ppm po reason, in mobile there is no use of it. + static get getPpmElectricalSafety => "$_baseUrl/Lookups/GetLookup?lookupEnum=480"; // get for ppm po reason, in mobile there is no use of it. + static get getPpmTaskStatus => "$_baseUrl/Lookups/GetLookup?lookupEnum=403"; // get for ppm po reason, in mobile there is no use of it. + static get getPpmService => "$_baseUrl/Lookups/GetLookup?lookupEnum=34"; // get for ppm po reason, in mobile there is no use of it. static get getServiceReportReasons => "$_baseUrl/Lookups/GetLookupReason?lookupEnum=505"; // get // for service static get getServiceReportTypes => "$_baseUrl/Lookups/GetLookup?lookupEnum=501"; // get static get getServiceReportTypesForWO => "$_baseUrl/Lookups/GetLookup?lookupEnum=34"; // get diff --git a/lib/main.dart b/lib/main.dart index 05f9f0bb..3c346f7c 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -58,8 +58,12 @@ import 'package:test_sa/providers/gas_request_providers/gas_status_provider.dart import 'package:test_sa/providers/gas_request_providers/gas_types_provider.dart'; import 'package:test_sa/providers/gas_request_providers/site_provider.dart'; import 'package:test_sa/providers/loading_list_notifier.dart'; +import 'package:test_sa/providers/ppm_asset_availability_provider.dart'; import 'package:test_sa/providers/ppm_checklist_status_provider.dart'; import 'package:test_sa/providers/ppm_device_status_provider.dart'; +import 'package:test_sa/providers/ppm_electrical_safety_provider.dart'; +import 'package:test_sa/providers/ppm_service_provider.dart'; +import 'package:test_sa/providers/ppm_task_status_provider.dart'; import 'package:test_sa/providers/ppm_visit_status_provider.dart'; import 'package:test_sa/providers/service_request_providers/commissioning_status_provider.dart'; import 'package:test_sa/providers/service_request_providers/equipment_status_provider.dart'; @@ -204,6 +208,10 @@ class MyApp extends StatelessWidget { ChangeNotifierProvider(create: (_) => PPMVisitStatusProvider()), ChangeNotifierProvider(create: (_) => PentryTaskStatusProvider()), ChangeNotifierProvider(create: (_) => PPMDeviceStatusProvider()), + ChangeNotifierProvider(create: (_) => PpmAssetAvailabilityProvider()), + ChangeNotifierProvider(create: (_) => PpmTaskStatusProvider()), + ChangeNotifierProvider(create: (_) => PpmElectricalSafetyProvider()), + ChangeNotifierProvider(create: (_) => PpmServiceProvider()), ChangeNotifierProvider(create: (_) => CommentsProvider()), ChangeNotifierProvider(create: (_) => GasRefillCommentsProvider()), ChangeNotifierProvider(create: (_) => RequestStatusProvider()), diff --git a/lib/providers/ppm_asset_availability_provider.dart b/lib/providers/ppm_asset_availability_provider.dart new file mode 100644 index 00000000..46720dc1 --- /dev/null +++ b/lib/providers/ppm_asset_availability_provider.dart @@ -0,0 +1,35 @@ +import 'dart:convert'; + +import 'package:http/http.dart'; +import 'package:test_sa/models/lookup.dart'; + +import '../../controllers/api_routes/api_manager.dart'; +import '../../controllers/api_routes/urls.dart'; +import 'loading_list_notifier.dart'; + +class PpmAssetAvailabilityProvider extends LoadingListNotifier { + @override + Future getDate() async { + if (loading ?? false) return -2; + loading = true; + notifyListeners(); + Response response; + try { + response = await ApiManager.instance.get(URLs.getPpmAssetAvailability); + } catch (error) { + loading = false; + stateCode = -1; + notifyListeners(); + return -1; + } + stateCode = response.statusCode; + if (response.statusCode >= 200 && response.statusCode < 300) { + // client's request was successfully received + List listJson = json.decode(response.body)["data"]; + items = listJson.map((department) => Lookup.fromJson(department)).toList(); + } + loading = false; + notifyListeners(); + return response.statusCode; + } +} diff --git a/lib/providers/ppm_electrical_safety_provider.dart b/lib/providers/ppm_electrical_safety_provider.dart new file mode 100644 index 00000000..178588cc --- /dev/null +++ b/lib/providers/ppm_electrical_safety_provider.dart @@ -0,0 +1,35 @@ +import 'dart:convert'; + +import 'package:http/http.dart'; +import 'package:test_sa/models/lookup.dart'; + +import '../../controllers/api_routes/api_manager.dart'; +import '../../controllers/api_routes/urls.dart'; +import 'loading_list_notifier.dart'; + +class PpmElectricalSafetyProvider extends LoadingListNotifier { + @override + Future getDate() async { + if (loading ?? false) return -2; + loading = true; + notifyListeners(); + Response response; + try { + response = await ApiManager.instance.get(URLs.getPpmElectricalSafety); + } catch (error) { + loading = false; + stateCode = -1; + notifyListeners(); + return -1; + } + stateCode = response.statusCode; + if (response.statusCode >= 200 && response.statusCode < 300) { + // client's request was successfully received + List listJson = json.decode(response.body)["data"]; + items = listJson.map((department) => Lookup.fromJson(department)).toList(); + } + loading = false; + notifyListeners(); + return response.statusCode; + } +} diff --git a/lib/providers/ppm_service_provider.dart b/lib/providers/ppm_service_provider.dart new file mode 100644 index 00000000..64e7a23a --- /dev/null +++ b/lib/providers/ppm_service_provider.dart @@ -0,0 +1,35 @@ +import 'dart:convert'; + +import 'package:http/http.dart'; +import 'package:test_sa/models/lookup.dart'; + +import '../../controllers/api_routes/api_manager.dart'; +import '../../controllers/api_routes/urls.dart'; +import 'loading_list_notifier.dart'; + +class PpmServiceProvider extends LoadingListNotifier { + @override + Future getDate() async { + if (loading ?? false) return -2; + loading = true; + notifyListeners(); + Response response; + try { + response = await ApiManager.instance.get(URLs.getPpmService); + } catch (error) { + loading = false; + stateCode = -1; + notifyListeners(); + return -1; + } + stateCode = response.statusCode; + if (response.statusCode >= 200 && response.statusCode < 300) { + // client's request was successfully received + List listJson = json.decode(response.body)["data"]; + items = listJson.map((department) => Lookup.fromJson(department)).toList(); + } + loading = false; + notifyListeners(); + return response.statusCode; + } +} diff --git a/lib/providers/ppm_task_status_provider.dart b/lib/providers/ppm_task_status_provider.dart new file mode 100644 index 00000000..bebf462a --- /dev/null +++ b/lib/providers/ppm_task_status_provider.dart @@ -0,0 +1,35 @@ +import 'dart:convert'; + +import 'package:http/http.dart'; +import 'package:test_sa/models/lookup.dart'; + +import '../../controllers/api_routes/api_manager.dart'; +import '../../controllers/api_routes/urls.dart'; +import 'loading_list_notifier.dart'; + +class PpmTaskStatusProvider extends LoadingListNotifier { + @override + Future getDate() async { + if (loading ?? false) return -2; + loading = true; + notifyListeners(); + Response response; + try { + response = await ApiManager.instance.get(URLs.getPpmTaskStatus); + } catch (error) { + loading = false; + stateCode = -1; + notifyListeners(); + return -1; + } + stateCode = response.statusCode; + if (response.statusCode >= 200 && response.statusCode < 300) { + // client's request was successfully received + List listJson = json.decode(response.body)["data"]; + items = listJson.map((department) => Lookup.fromJson(department)).toList(); + } + loading = false; + notifyListeners(); + return response.statusCode; + } +} diff --git a/lib/views/widgets/pentry/pentry_tbs_form.dart b/lib/views/widgets/pentry/pentry_tbs_form.dart index ce5871f1..f8fb4f89 100644 --- a/lib/views/widgets/pentry/pentry_tbs_form.dart +++ b/lib/views/widgets/pentry/pentry_tbs_form.dart @@ -7,6 +7,10 @@ import 'package:test_sa/extensions/int_extensions.dart'; import 'package:test_sa/extensions/string_extensions.dart'; import 'package:test_sa/models/ppm/ppm.dart'; import 'package:test_sa/models/ppm/ppm_attachment.dart'; +import 'package:test_sa/providers/ppm_asset_availability_provider.dart'; +import 'package:test_sa/providers/ppm_electrical_safety_provider.dart'; +import 'package:test_sa/providers/ppm_service_provider.dart'; +import 'package:test_sa/providers/ppm_task_status_provider.dart'; import '../../../models/lookup.dart'; import '../../../new_views/common_widgets/app_text_form_field.dart'; @@ -81,6 +85,61 @@ class _PentryTBSFormState extends State { }, ), 8.height, + SingleItemDropDownMenu( + context: context, + initialValue: widget.model.taskStatusId == null ? null : Lookup(name: widget.model.taskStatusName ?? "", id: widget.model.taskStatusId), + title: context.translation.taskStatus, + onSelect: (value) { + if (value != null) { + widget.model.taskStatusId = value.id; + widget.model.taskStatusName = value.name; + } + }, + ), + 8.height, + SingleItemDropDownMenu( + context: context, + initialValue: widget.model.assetAvailabilityId == null ? null : Lookup(name: widget.model.assetAvailabilityName ?? "", id: widget.model.assetAvailabilityId), + title: "Asset Availability", + onSelect: (value) { + if (value != null) { + widget.model.assetAvailabilityId = value.id; + widget.model.assetAvailabilityName = value.name; + } + }, + ), + 8.height, + + SingleItemDropDownMenu( + context: context, + initialValue: widget.model.typeOfServiceId == null ? null : Lookup(name: widget.model.typeOfServiceName ?? "", id: widget.model.typeOfServiceId), + title: context.translation.serviceType, + onSelect: (value) { + if (value != null) { + widget.model.typeOfServiceId = value.id; + widget.model.typeOfServiceName = value.name; + widget.model.safetyId = null; + widget.model.safetyName = null; + setState(() {}); + } + }, + ), + 8.height, + if(widget.model?.typeOfServiceId !=66)...[ + SingleItemDropDownMenu( + context: context, + initialValue: widget.model.safetyId == null ? null : Lookup(name: widget.model.safetyName ?? "", id: widget.model.safetyId), + title: "Electrical Safety", + onSelect: (value) { + if (value != null) { + widget.model.safetyId = value.id; + widget.model.safetyName = value.name; + } + }, + ), + 8.height, + ], + ADatePicker( label: context.translation.actualVisitDate, date: DateTime.tryParse(widget.model.actualDate ?? ""),