diff --git a/lib/controllers/providers/api/devices_provider.dart b/lib/controllers/providers/api/devices_provider.dart index 4908b573..03a8228f 100644 --- a/lib/controllers/providers/api/devices_provider.dart +++ b/lib/controllers/providers/api/devices_provider.dart @@ -52,6 +52,7 @@ class DevicesProvider extends ChangeNotifier { @required int hospitalId, String serialNumber, String number, + bool isQr = false, }) async { if (_loading == true) return -2; _loading = true; @@ -75,7 +76,15 @@ class DevicesProvider extends ChangeNotifier { if (response.statusCode >= 200 && response.statusCode < 300) { // client's request was successfully received List equipmentListJson = json.decode(response.body)["data"]; - _devices.addAll(equipmentListJson.map((device) => Device.fromJson(device, startKeyWithDest: false)).toList()); + var dList = equipmentListJson.map((device) => Device.fromJson(device, startKeyWithDest: false)).toList(); + try { + if (isQr) { + dList = dList.where((element) => number?.toLowerCase() == element?.number?.toLowerCase())?.toList() ?? []; + } + } catch (e) { + print(e); + } + _devices.addAll(dList); nextPage = true; } else { nextPage = false; diff --git a/lib/views/pages/user/land_page.dart b/lib/views/pages/user/land_page.dart index e249206d..a01fbc0b 100644 --- a/lib/views/pages/user/land_page.dart +++ b/lib/views/pages/user/land_page.dart @@ -152,14 +152,14 @@ class _LandPageState extends State { mainAxisSpacing: 12, childAspectRatio: 1, children: [ - if (_userProvider.user != null && _userProvider.user.type == UsersTypes.normal_user) - LandPageItem( - text: _subtitle.newServiceRequest, - icon: FontAwesomeIcons.tools, - onPressed: () { - Navigator.of(context).pushNamed(CreateRequestPage.id); - }, - ), + // if (_userProvider.user != null && _userProvider.user.type == UsersTypes.normal_user) + LandPageItem( + text: _subtitle.newServiceRequest, + icon: FontAwesomeIcons.tools, + onPressed: () { + Navigator.of(context).pushNamed(CreateRequestPage.id); + }, + ), LandPageItem( text: _subtitle.trackServiceRequest, icon: FontAwesomeIcons.tasks, diff --git a/lib/views/widgets/equipment/single_device_picker.dart b/lib/views/widgets/equipment/single_device_picker.dart index d8627652..eb5ad724 100644 --- a/lib/views/widgets/equipment/single_device_picker.dart +++ b/lib/views/widgets/equipment/single_device_picker.dart @@ -34,12 +34,19 @@ class _SingleDevicePickerState extends State { TextEditingController numberController = TextEditingController(); TextEditingController snController = TextEditingController(); - _getDevice(String result) async { + _getDevice(String result, {bool isQr = false}) async { print(result); if (result == null) return; // List devices = await _devicesProvider.getDevicesListBySN(host: _settingProvider.host, user: _userProvider.user, hospitalId: _userProvider.user.clientId, sn: result); _devicesProvider.reset(); - await _devicesProvider.getEquipment(user: _userProvider.user, host: _settingProvider.host, hospitalId: _userProvider.user.clientId, serialNumber: "", number: result); + await _devicesProvider.getEquipment( + user: _userProvider.user, + host: _settingProvider.host, + hospitalId: _userProvider.user.clientId, + serialNumber: "", + number: result, + isQr: isQr, + ); _searchableList.clear(); _searchableList.addAll(_devicesProvider.devices); // Navigator.of(context).pop(); @@ -164,7 +171,7 @@ class _SingleDevicePickerState extends State { String result = await Navigator.of(context).push( MaterialPageRoute(builder: (_) => const ScanQr()), ) as String; - _getDevice(result); + _getDevice(result, isQr: true); }, ), );