diff --git a/assets/subtitles/ar_subtitle.json b/assets/subtitles/ar_subtitle.json index 2ed3e577..e08d914f 100644 --- a/assets/subtitles/ar_subtitle.json +++ b/assets/subtitles/ar_subtitle.json @@ -74,10 +74,9 @@ "details": "تفاصيل", "device": "جهاز", "deviceArName": "اسم الجهاز بعربي", - "deviceEnName": "اسم الجهاز بالانجليزية", + "deviceName": "اسم الجهاز", "deviceImages": "صور الجهاز", "deviceModel": "مركة الجهاز", - "deviceName": "اسم الجهاز", "deviceRequired": "الجهاز مطلوب", "deviceSN": "رقم تسلسلي للجهاز", "engineerName": "اسم المهندس", @@ -182,7 +181,7 @@ "reportType": "نوع التقرير", "callId": "رقم الطلب", "requiredWord": "مطلوب", - "serviceType": "نوع الخدمة", + "AssetType": "نوع الاصل", "workPreformed": "العمل المنجز", "alert": "تنبيه", "duplicateAlert": "تنبيه التكرار", diff --git a/assets/subtitles/en_subtitle.json b/assets/subtitles/en_subtitle.json index ed6f5917..44e03fa6 100644 --- a/assets/subtitles/en_subtitle.json +++ b/assets/subtitles/en_subtitle.json @@ -73,10 +73,9 @@ "details": "Details", "device": "Asset", "deviceArName": "Asset Ar Name", - "deviceEnName": "Asset En Name", + "deviceName": "Asset Name", "deviceImages": "Asset Images", "deviceModel": "Asset Model", - "deviceName": "Asset Name", "deviceRequired": "Asset Required", "deviceSN": "Asset SN", "engineerName": "Engineer Name", @@ -181,7 +180,7 @@ "reportType": "Report Type", "callId": "Call Id", "requiredWord": "required", - "serviceType": "Service Type", + "AssetType": "asset type", "workPreformed": "Work Preformed", "orderWorkNumber": "Order Work Number", "assignedEmployee": "Assigned Employee", diff --git a/lib/controllers/providers/api/hospitals_provider.dart b/lib/controllers/providers/api/hospitals_provider.dart index eb9e3ae9..a52a750e 100644 --- a/lib/controllers/providers/api/hospitals_provider.dart +++ b/lib/controllers/providers/api/hospitals_provider.dart @@ -115,13 +115,13 @@ class HospitalsProvider extends ChangeNotifier { } } - Future> getHospitalsListByVal({String searchVal=""}) async { + Future> getHospitalsListByVal({String searchVal = ""}) async { Response response; try { - if(searchVal.isNotEmpty) { + if (searchVal.isNotEmpty) { searchVal = "?searchText=$searchVal"; } - response = await ApiManager.instance.get(URLs.getHospitalsAutoComplete+searchVal); + response = await ApiManager.instance.get(URLs.getHospitalsAutoComplete + searchVal); // response = await get( // Uri.parse(host + URLs.getHospitals // + ( title == null || title.isEmpty ? "" : "?name=$title" )), diff --git a/lib/controllers/providers/api/status_drop_down/report/service_report_last_calls_provider.dart b/lib/controllers/providers/api/status_drop_down/report/service_report_last_calls_provider.dart index 3e4741b9..7551ad57 100644 --- a/lib/controllers/providers/api/status_drop_down/report/service_report_last_calls_provider.dart +++ b/lib/controllers/providers/api/status_drop_down/report/service_report_last_calls_provider.dart @@ -57,7 +57,7 @@ class ServiceReportLastCallsProvider extends ChangeNotifier { try { // todo request new api from backend to make filter work response = await ApiManager.instance.get( - "${URLs.getServiceReportLastCalls}?parentWOId=${woId??id}&isAdd=true&id=${id ?? 0}&typeTransaction=$typeName", + "${URLs.getServiceReportLastCalls}?parentWOId=${woId ?? id}&isAdd=true&id=${id ?? 0}&typeTransaction=$typeName", ); // response = await get( // Uri.parse( diff --git a/lib/models/device/device.dart b/lib/models/device/device.dart index 72f9d120..113e928e 100644 --- a/lib/models/device/device.dart +++ b/lib/models/device/device.dart @@ -34,21 +34,21 @@ class Device { factory Device.fromJson(Map parsedJson) { return Device( - id: parsedJson["id"], - serialNumber: parsedJson["assetSerialNo"], - number: parsedJson["assetNumber"], - modelDefinition: ModelDefinition.fromJson(parsedJson["modelDefinition"]), - hospital: Hospital.fromJson(parsedJson["site"]), - destBuildingName: parsedJson["destBuildingName"], - destDepartmentName: parsedJson["destDepartmentName"], - destRoom: parsedJson["destRoom"], - destFloor: parsedJson["destFloor"], - destSiteName:parsedJson['destSiteName'] - // parsedJson["modelDefinition"] == null ? "" : - // parsedJson["modelDefinition"]["manufacturerName"], - // model: parsedJson["modelDefinition"] == null ? "" : - // parsedJson["modelDefinition"]["modelName"], - ); + id: parsedJson["id"], + serialNumber: parsedJson["assetSerialNo"], + number: parsedJson["assetNumber"], + modelDefinition: ModelDefinition.fromJson(parsedJson["modelDefinition"]), + hospital: Hospital.fromJson(parsedJson["site"]), + destBuildingName: parsedJson["destBuildingName"], + destDepartmentName: parsedJson["destDepartmentName"], + destRoom: parsedJson["destRoom"], + destFloor: parsedJson["destFloor"], + destSiteName: parsedJson['destSiteName'] + // parsedJson["modelDefinition"] == null ? "" : + // parsedJson["modelDefinition"]["manufacturerName"], + // model: parsedJson["modelDefinition"] == null ? "" : + // parsedJson["modelDefinition"]["modelName"], + ); } factory Device.fromDevice(Device device) { diff --git a/lib/models/engineer.dart b/lib/models/engineer.dart index ffedca72..e53b0af5 100644 --- a/lib/models/engineer.dart +++ b/lib/models/engineer.dart @@ -8,9 +8,9 @@ class Engineer { }); factory Engineer.fromJson(Map parsedJson) { - if(parsedJson==null) return Engineer(); + if (parsedJson == null) return Engineer(); return Engineer( - id: parsedJson["userId"] ?? parsedJson["id"], + id: parsedJson["userId"] ?? parsedJson["id"], name: parsedJson["userName"] ?? parsedJson["name"], ); } diff --git a/lib/models/fault_description.dart b/lib/models/fault_description.dart index ecc99f7f..4858e55f 100644 --- a/lib/models/fault_description.dart +++ b/lib/models/fault_description.dart @@ -1,9 +1,10 @@ class FaultDescription { FaultDescription({ - this.id, - this.defectName, - this.workPerformed, - this.estimatedTime,}); + this.id, + this.defectName, + this.workPerformed, + this.estimatedTime, + }); FaultDescription.fromJson(dynamic json) { id = json['id']; @@ -15,15 +16,18 @@ class FaultDescription { String defectName; String workPerformed; String estimatedTime; -FaultDescription copyWith({ num id, - String defectName, - String workPerformed, - String estimatedTime, -}) => FaultDescription( id: id ?? this.id, - defectName: defectName ?? this.defectName, - workPerformed: workPerformed ?? this.workPerformed, - estimatedTime: estimatedTime ?? this.estimatedTime, -); + FaultDescription copyWith({ + num id, + String defectName, + String workPerformed, + String estimatedTime, + }) => + FaultDescription( + id: id ?? this.id, + defectName: defectName ?? this.defectName, + workPerformed: workPerformed ?? this.workPerformed, + estimatedTime: estimatedTime ?? this.estimatedTime, + ); Map toJson() { final map = {}; map['id'] = id; @@ -32,5 +36,4 @@ FaultDescription copyWith({ num id, map['estimatedTime'] = estimatedTime; return map; } - -} \ No newline at end of file +} diff --git a/lib/models/subtitle.dart b/lib/models/subtitle.dart index b5b84e48..09f6a4de 100644 --- a/lib/models/subtitle.dart +++ b/lib/models/subtitle.dart @@ -112,7 +112,6 @@ class Subtitle { String unite; String unitRequired; String deviceArName; - String deviceEnName; String details; String general; String serviceRequestInformation; @@ -197,7 +196,7 @@ class Subtitle { String customer; String reportType; String requiredWord; - String serviceType; + String AssetType; String reportStatus; String callLastSituation; String invoiceNumber; @@ -238,7 +237,6 @@ class Subtitle { String room; String actions; - void setIssues(List issues) { issues.clear(); issues.add(reason1); @@ -352,7 +350,6 @@ class Subtitle { @required this.twitter, @required this.add, @required this.code, - @required this.deviceEnName, @required this.deviceName, @required this.serialNumber, @required this.policy, @@ -424,7 +421,7 @@ class Subtitle { @required this.reasons, @required this.reportStatus, @required this.reportType, - @required this.serviceType, + @required this.AssetType, @required this.workPreformed, @required this.alert, @required this.duplicateAlert, @@ -522,7 +519,6 @@ class Subtitle { details: parsedJson["details"], device: parsedJson["device"], deviceArName: parsedJson["deviceArName"], - deviceEnName: parsedJson["deviceEnName"], deviceImages: parsedJson["deviceImages"], deviceModel: parsedJson["deviceModel"], deviceName: parsedJson["deviceName"], @@ -629,7 +625,7 @@ class Subtitle { reportType: parsedJson["reportType"], callId: parsedJson["callId"], requiredWord: parsedJson["requiredWord"], - serviceType: parsedJson["serviceType"], + AssetType: parsedJson["serviceType"], workPreformed: parsedJson["workPreformed"], alert: parsedJson["alert"], duplicateAlert: parsedJson["duplicateAlert"], diff --git a/lib/models/visits/visit.dart b/lib/models/visits/visit.dart index f3faed08..2ad5a3d6 100644 --- a/lib/models/visits/visit.dart +++ b/lib/models/visits/visit.dart @@ -61,8 +61,8 @@ class Visit { deviceSerialNumber: parsedJson["assetSerialNo"], deviceEnglishName: parsedJson["assetName"], deviceArabicName: parsedJson["assetName"], - employId: parsedJson["assignedToId"].toString(), - employName: parsedJson["assignedToName"], + employId: parsedJson["assignedEmployeeId"].toString(), + employName: parsedJson["assignedEmployeeName"], expectDate: parsedJson["expectedDate"].toString().split("T").first, actualDate: parsedJson["actualDate"].toString().split("T").first, modelAndBrand: "${parsedJson["modelName"]} / ${parsedJson["manufacturerName"]}", diff --git a/lib/views/pages/device_transfer/request_device_transfer.dart b/lib/views/pages/device_transfer/request_device_transfer.dart index 3d0cb755..5ec58012 100644 --- a/lib/views/pages/device_transfer/request_device_transfer.dart +++ b/lib/views/pages/device_transfer/request_device_transfer.dart @@ -245,7 +245,7 @@ class _RequestDeviceTransferState extends State { departments: _deviceTransferProvider?.floor?.departments, onSelect: (status) { _deviceTransferProvider.department = status; - _formModel.receiver.department = Department(id: status.id, name: status.name) ; + _formModel.receiver.department = Department(id: status.id, name: status.name); setState(() {}); }, ), @@ -261,7 +261,7 @@ class _RequestDeviceTransferState extends State { validator: (value) => Validator.isNumeric(value) ? null : "allow numbers only", textInputType: TextInputType.number, onSaved: (value) { - _deviceTransferProvider.room=value; + _deviceTransferProvider.room = value; }, ), 12.height, diff --git a/lib/views/pages/login.dart b/lib/views/pages/login.dart index e77b67da..a6fba23d 100644 --- a/lib/views/pages/login.dart +++ b/lib/views/pages/login.dart @@ -115,14 +115,13 @@ class _LoginState extends State { host: _settingProvider.host, ); if (status >= 200 && status < 300) { - if(_userProvider.user.isAuthenticated ?? false) { + if (_userProvider.user.isAuthenticated ?? false) { _settingProvider.setUser(_userProvider.user); Navigator.of(context).pushNamed(LandPage.id); } else { Fluttertoast.showToast(msg: _userProvider.user.message); } - // if (_userProvider.user.isActive) // else diff --git a/lib/views/pages/sub_workorder/search_sub_workorder_page.dart b/lib/views/pages/sub_workorder/search_sub_workorder_page.dart index 952c831e..32fcec04 100644 --- a/lib/views/pages/sub_workorder/search_sub_workorder_page.dart +++ b/lib/views/pages/sub_workorder/search_sub_workorder_page.dart @@ -87,7 +87,7 @@ class _SearchSubWorkOrderPageState extends State { crossAxisAlignment: CrossAxisAlignment.start, children: [ ATextFormField( - labelText: "Caller ID", + labelText: "Call ID", onSaved: (value) { _callerId = value; }, @@ -135,12 +135,10 @@ class _SearchSubWorkOrderPageState extends State { ), const SizedBox(height: 16), HospitalAutoCompleteField( - initialValue:_site, + initialValue: _site, onSearch: (value) { _site = value.name; - setState(() { - - }); + setState(() {}); }, ), const SizedBox(height: 16), diff --git a/lib/views/pages/sub_workorder/workorder_update.dart b/lib/views/pages/sub_workorder/workorder_update.dart index 9d9c5d6b..3970aeaa 100644 --- a/lib/views/pages/sub_workorder/workorder_update.dart +++ b/lib/views/pages/sub_workorder/workorder_update.dart @@ -55,7 +55,9 @@ class _WorkOrderUpdateState extends State { ], ), ), - WorkOrderDetails(item: widget.item,) + WorkOrderDetails( + item: widget.item, + ) ], ), ), diff --git a/lib/views/pages/user/land_page.dart b/lib/views/pages/user/land_page.dart index e6e9d608..3aa625e1 100644 --- a/lib/views/pages/user/land_page.dart +++ b/lib/views/pages/user/land_page.dart @@ -212,14 +212,14 @@ class _LandPageState extends State { Navigator.of(context).pushNamed(TrackDeviceTransferPage.id); }, ), - if (_userProvider?.user != null && _userProvider?.user?.type != UsersTypes.normal_user) - LandPageItem( - text: "Search Work Order", - svgPath: "assets/images/sub_workorder_icon.svg", - onPressed: () { - Navigator.of(context).pushNamed(SearchSubWorkOrderPage.id); - }, - ), + if (_userProvider?.user != null && _userProvider?.user?.type != UsersTypes.normal_user) + LandPageItem( + text: "Search Work Order", + svgPath: "assets/images/sub_workorder_icon.svg", + onPressed: () { + Navigator.of(context).pushNamed(SearchSubWorkOrderPage.id); + }, + ), ], ), ], diff --git a/lib/views/pages/user/requests/report/create_service_report.dart b/lib/views/pages/user/requests/report/create_service_report.dart index 23c96a74..b8fa12e9 100644 --- a/lib/views/pages/user/requests/report/create_service_report.dart +++ b/lib/views/pages/user/requests/report/create_service_report.dart @@ -281,7 +281,7 @@ class _CreateServiceReportState extends State with TickerPr const SizedBox( height: 8, ), - ASubTitle(_subtitle.serviceType), + ASubTitle(_subtitle.AssetType), _validate && _serviceReport.assetType == null ? ASubTitle( _subtitle.requiredWord, @@ -320,7 +320,7 @@ class _CreateServiceReportState extends State with TickerPr const SizedBox( height: 8, ), - // Report status and Service Type + // Report status and Asset Type Row( children: [ // report status @@ -459,7 +459,7 @@ class _CreateServiceReportState extends State with TickerPr ), ), - // Report status and Service Type + // Report status and Asset Type if (_showCommentField) const SizedBox( diff --git a/lib/views/pages/user/requests/report/edit_service_report.dart b/lib/views/pages/user/requests/report/edit_service_report.dart index 4a30278e..7cd53f7a 100644 --- a/lib/views/pages/user/requests/report/edit_service_report.dart +++ b/lib/views/pages/user/requests/report/edit_service_report.dart @@ -278,7 +278,7 @@ class _EditServiceReportState extends State with TickerProvid ), ), const SizedBox(height: 8), - ASubTitle(_subtitle.serviceType), + ASubTitle(_subtitle.AssetType), _validate && _serviceReport.assetType == null ? ASubTitle( _subtitle.requiredWord, diff --git a/lib/views/pages/user/requests/report/future_service_report.dart b/lib/views/pages/user/requests/report/future_service_report.dart index c391b669..cb39a6e3 100644 --- a/lib/views/pages/user/requests/report/future_service_report.dart +++ b/lib/views/pages/user/requests/report/future_service_report.dart @@ -31,8 +31,7 @@ class _FutureServiceReportState extends State { _userProvider = Provider.of(context); _settingProvider = Provider.of(context); Subtitle _subtitle = AppLocalization.of(context).subtitle; - ServiceRequestsProvider().getSingleServiceReport(reportId: widget.workOrder.id, user: _userProvider.user, host: _settingProvider.host, subtitle: _subtitle) - ; + ServiceRequestsProvider().getSingleServiceReport(reportId: widget.workOrder.id, user: _userProvider.user, host: _settingProvider.host, subtitle: _subtitle); return Scaffold( body: FutureBuilder( future: ServiceRequestsProvider().getSingleServiceReport(reportId: widget.workOrder.id, user: _userProvider.user, host: _settingProvider.host, subtitle: _subtitle), diff --git a/lib/views/pages/user/requests/request_details.dart b/lib/views/pages/user/requests/request_details.dart index 03ef6573..18b4700f 100644 --- a/lib/views/pages/user/requests/request_details.dart +++ b/lib/views/pages/user/requests/request_details.dart @@ -247,7 +247,7 @@ class RequestDetailsPage extends StatelessWidget { // content: serviceRequest.deviceArName, // ), RequestInfoRow( - title: _subtitle.deviceEnName, + title: _subtitle.deviceName, content: serviceRequest.deviceEnName, ), RequestInfoRow( @@ -345,7 +345,7 @@ class RequestDetailsPage extends StatelessWidget { title: _subtitle.visitDate, info: workOrders[index].visitDate, ), - RequestInfoRow(title: _subtitle.assignedEmployee, info: workOrders[index].assignedEmployee?.name??""), + RequestInfoRow(title: _subtitle.assignedEmployee, info: workOrders[index].assignedEmployee?.name ?? ""), RequestInfoRow( title: _subtitle.assetSN, info: workOrders[index].callRequest.asset.assetSerialNo, @@ -420,7 +420,7 @@ class RequestDetailsPage extends StatelessWidget { child: Padding( padding: const EdgeInsets.all(32), child: AButton( - text: "Create Report", + text: "Create Work Order", onPressed: () { Navigator.of(context).push(MaterialPageRoute(builder: (_) => CreateServiceReport(request: serviceRequest))); }, diff --git a/lib/views/pages/user/visits/visit_details.dart b/lib/views/pages/user/visits/visit_details.dart index 145dd68c..73cb60d4 100644 --- a/lib/views/pages/user/visits/visit_details.dart +++ b/lib/views/pages/user/visits/visit_details.dart @@ -14,6 +14,8 @@ import 'package:test_sa/views/widgets/requests/info_row.dart'; import 'package:test_sa/views/widgets/visits/visit_status.dart'; import '../../../../controllers/providers/api/regular_visits_provider.dart'; +import '../../../../controllers/providers/api/user_provider.dart'; +import '../../../../models/enums/user_types.dart'; class VisitDetailsPage extends StatelessWidget { static final String id = "/visit-details"; @@ -24,6 +26,8 @@ class VisitDetailsPage extends StatelessWidget { Widget build(BuildContext context) { Subtitle _subtitle = AppLocalization.of(context).subtitle; final regularVisitsProvider = Provider.of(context); + UserProvider _userProvider = Provider.of(context); + return Scaffold( body: SafeArea( child: Column( @@ -42,19 +46,20 @@ class VisitDetailsPage extends StatelessWidget { ), ), ), - AIconButton( - iconData: Icons.edit, - color: AColors.white, - buttonSize: 42, - backgroundColor: AColors.green, - onPressed: () async { - Navigator.of(context).push(MaterialPageRoute( - builder: (_) => EditPentry( - visit: visit, - pentry: visit.pentry, - ))); - }, - ), + if (_userProvider?.user?.type == UsersTypes.engineer) + AIconButton( + iconData: Icons.edit, + color: AColors.white, + buttonSize: 42, + backgroundColor: AColors.green, + onPressed: () async { + Navigator.of(context).push(MaterialPageRoute( + builder: (_) => EditPentry( + visit: visit, + pentry: visit.pentry, + ))); + }, + ), SizedBox(width: 42) ], ), @@ -152,11 +157,7 @@ class VisitDetailsPage extends StatelessWidget { content: visit.hospitalName, ), RequestInfoRow( - title: _subtitle.deviceArName, - content: visit.deviceArabicName, - ), - RequestInfoRow( - title: _subtitle.deviceEnName, + title: _subtitle.deviceName, content: visit.deviceEnglishName, ), ], diff --git a/lib/views/widgets/date_and_time/time_picker.dart b/lib/views/widgets/date_and_time/time_picker.dart index 036766e4..63648225 100644 --- a/lib/views/widgets/date_and_time/time_picker.dart +++ b/lib/views/widgets/date_and_time/time_picker.dart @@ -20,7 +20,7 @@ class ADateTimePicker extends StatelessWidget { ), ), child: Text( - date == null ? "Pick Time" : date.toString().substring(0,date.toString().lastIndexOf(":")), + date == null ? "Pick Time" : date.toString().substring(0, date.toString().lastIndexOf(":")), textScaleFactor: AppStyle.getScaleFactor(context), ), onPressed: () async { diff --git a/lib/views/widgets/equipment/single_device_picker.dart b/lib/views/widgets/equipment/single_device_picker.dart index 6166ea27..722d2f21 100644 --- a/lib/views/widgets/equipment/single_device_picker.dart +++ b/lib/views/widgets/equipment/single_device_picker.dart @@ -1,4 +1,5 @@ import 'package:flutter/material.dart'; +import 'package:fluttertoast/fluttertoast.dart'; import 'package:provider/provider.dart'; import 'package:test_sa/controllers/localization/localization.dart'; import 'package:test_sa/controllers/providers/api/devices_provider.dart'; @@ -90,8 +91,8 @@ class _SingleDevicePickerState extends State { child: Column( children: [ ATextFormField( - hintText: _subtitle.searchBySn, - controller: snController, + hintText: "Search by Asset Number", + controller: numberController, style: Theme.of(context).textTheme.subtitle1, suffixIcon: const Icon(Icons.search_rounded), textInputAction: TextInputAction.search, @@ -107,8 +108,8 @@ class _SingleDevicePickerState extends State { height: 8, ), ATextFormField( - hintText: "Search by Number", - controller: numberController, + hintText: _subtitle.searchBySn, + controller: snController, style: Theme.of(context).textTheme.subtitle1, suffixIcon: const Icon(Icons.search_rounded), textInputAction: TextInputAction.search, diff --git a/lib/views/widgets/status/report/fault_desc_menu.dart b/lib/views/widgets/status/report/fault_desc_menu.dart index 5229aff5..a2b670de 100644 --- a/lib/views/widgets/status/report/fault_desc_menu.dart +++ b/lib/views/widgets/status/report/fault_desc_menu.dart @@ -44,10 +44,8 @@ class _SingleStatusMenuState extends State { @override void initState() { - if (widget.initialStatus != null) { final result = widget.statuses?.where((element) { - return element.id == widget.initialStatus.id; }); if (result.isNotEmpty) _selectedStatus = result.first;