diff --git a/lib/controllers/providers/api/device_transfer_provider.dart b/lib/controllers/providers/api/device_transfer_provider.dart index ffb84856..359a98d9 100644 --- a/lib/controllers/providers/api/device_transfer_provider.dart +++ b/lib/controllers/providers/api/device_transfer_provider.dart @@ -79,6 +79,7 @@ class DeviceTransferProvider extends ChangeNotifier { List itemsPage = listJson.map((request) => DeviceTransfer.fromJson(request)).toList(); items ??= []; items.addAll(itemsPage); + print(listJson); if (itemsPage.length == pageItemNumber) { nextPage = true; } else { @@ -153,11 +154,27 @@ class DeviceTransferProvider extends ChangeNotifier { "senderWorkingHours": newModel.workingHours, "senderTravelingHours": newModel.travelingHours, "senderAttachmentName": "${newModel.signature}.png", + "destSiteId": oldModel.receiver.client.id, + "destDepartmentId": oldModel.receiver.department.id, + "receiverAssignedEmployeeId": oldModel.receiver.userId, + "receiverMachineStatusId": oldModel.receiver.status.id??"", + "receiverComment": oldModel.receiver.comment, + "receiverWorkingHours": oldModel.receiver.workingHours, + "receiverTravelingHours": oldModel.receiver.travelingHours, + "receiverAttachmentName": "${oldModel.receiver.signature}.png", } ); }else{ body.addAll( { + "senderSiteId": oldModel.sender.client.id, + "senderDepartmentId": oldModel.sender.department.id, + "senderAssignedEmployeeId": oldModel.sender.userId, + "senderMachineStatusId": oldModel.sender.status.id, + "senderComment": oldModel.sender.comment, + "senderWorkingHours": oldModel.sender.workingHours, + "senderTravelingHours": oldModel.sender.travelingHours, + "senderAttachmentName": "${oldModel.sender.signature}.png", "destSiteId": newModel.client.id, "destDepartmentId": newModel.department.id, "receiverAssignedEmployeeId": newModel.userId, @@ -170,7 +187,11 @@ class DeviceTransferProvider extends ChangeNotifier { ); } + print(body["senderWorkingHours"]); + + body.addAll(newModel.toJson(isSender)); + print(body); Response response; try{ response = await ApiManager.instance.put( diff --git a/lib/controllers/providers/api/devices_provider.dart b/lib/controllers/providers/api/devices_provider.dart index 7674b2d7..5bbd281f 100644 --- a/lib/controllers/providers/api/devices_provider.dart +++ b/lib/controllers/providers/api/devices_provider.dart @@ -11,17 +11,19 @@ import 'package:test_sa/models/user.dart'; class DevicesProvider extends ChangeNotifier { //reset provider data void reset() { - _devices = null; + _devices = []; _stateCode = null; } + final pageItemNumber = 10; + bool nextPage = true; // state code of current request to defied error message // like 400 customer request failed // 500 service not available int _stateCode; int get stateCode => _stateCode; - List _devices; + List _devices=[]; List get devices => _devices; // when categories in-process _loading = true @@ -52,7 +54,8 @@ class DevicesProvider extends ChangeNotifier { Response response; try { response = await ApiManager.instance.post(URLs.getEquipment, body: { - "pageSize": 50, + "pageSize": pageItemNumber , + "pageNumber":devices.length ~/ pageItemNumber + 1, "siteId": hospitalId, if (serialNumber?.isEmpty == false) "assetSerialNumber": serialNumber, if (number?.isEmpty == false) "assetNo": number, @@ -67,8 +70,12 @@ 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 = equipmentListJson.map((device) => Device.fromJson(device)).toList(); - } + _devices.addAll(equipmentListJson.map((device) => Device.fromJson(device)).toList()); + nextPage = true; + }else + { + nextPage = false; + } _loading = false; notifyListeners(); return response.statusCode; @@ -89,8 +96,9 @@ class DevicesProvider extends ChangeNotifier { Response response; try { response = await ApiManager.instance.post(URLs.getEquipment, body: { - "pageSize": 50, - "siteId": hospitalId, + "pageSize": pageItemNumber, + "pageNumber":devices.length ~/ pageItemNumber + 1, + "siteId": devices.length ~/ pageItemNumber + 1, if (serialNumber?.isEmpty == false) "assetSerialNumber": serialNumber, if (number?.isEmpty == false) "assetNo": number, }); @@ -105,6 +113,8 @@ class DevicesProvider extends ChangeNotifier { // client's request was successfully received List equipmentListJson = json.decode(response.body)["data"]; page = equipmentListJson.map((device) => Device.fromJson(device)).toList(); + _devices.addAll(equipmentListJson.map((device) => Device.fromJson(device)).toList()); + notifyListeners(); } return page; } catch (error) { diff --git a/lib/models/device/device_transfer_info.dart b/lib/models/device/device_transfer_info.dart index 05e877f5..31cae58f 100644 --- a/lib/models/device/device_transfer_info.dart +++ b/lib/models/device/device_transfer_info.dart @@ -31,7 +31,7 @@ class DeviceTransferInfo{ if(comment != null && comment.isNotEmpty) body["${baseKey}comment"] = comment; if(workingHours != null && workingHours.isNotEmpty) body["${baseKey}working_hours"] = workingHours; - if(travelingHours != null && travelingHours.isNotEmpty) body["${baseKey}travel_hours"] = comment; + if(travelingHours != null && travelingHours.isNotEmpty) body["${baseKey}travel_hours"] = travelingHours; if(status != null) body["${baseKey}status"] = status.id.toString(); if(signature != null && signature.isNotEmpty) body["${baseKey}image"] = signature; return body; diff --git a/lib/views/pages/device_transfer/device_transfer_details.dart b/lib/views/pages/device_transfer/device_transfer_details.dart index 6975304b..ee45e92c 100644 --- a/lib/views/pages/device_transfer/device_transfer_details.dart +++ b/lib/views/pages/device_transfer/device_transfer_details.dart @@ -114,7 +114,7 @@ class _DeviceTransferDetailsState extends State { onPressed: (){ Navigator.of(context).push( MaterialPageRoute( - builder: (_)=> UpdateDeviceTransfer(model: widget.model,isSender: _isSender,) + builder: (_)=> UpdateDeviceTransfer(model: widget.model,isSender: true,) ) ); }, @@ -140,7 +140,7 @@ class _DeviceTransferDetailsState extends State { onPressed: (){ Navigator.of(context).push( MaterialPageRoute( - builder: (_)=> UpdateDeviceTransfer(model: widget.model,isSender: _isSender,) + builder: (_)=> UpdateDeviceTransfer(model: widget.model,isSender: false,) ) ); }, diff --git a/lib/views/pages/device_transfer/request_device_transfer.dart b/lib/views/pages/device_transfer/request_device_transfer.dart index c92c4929..9deba1eb 100644 --- a/lib/views/pages/device_transfer/request_device_transfer.dart +++ b/lib/views/pages/device_transfer/request_device_transfer.dart @@ -68,16 +68,17 @@ class _RequestDeviceTransferState extends State { _isLoading = false; setState(() {}); if (status >= 200 && status < 300) { - Fluttertoast.showToast( - msg: _subtitle.requestCompleteSuccessfully, - ); + // Fluttertoast.showToast( + // msg: _subtitle.requestCompleteSuccessfully, + // ); Navigator.of(context).pop(); - } else { - String errorMessage = HttpStatusManger.getStatusMessage(status: status, subtitle: _subtitle); - ScaffoldMessenger.of(context).showSnackBar(SnackBar( - content: Text(errorMessage), - )); } + // else { + // String errorMessage = HttpStatusManger.getStatusMessage(status: status, subtitle: _subtitle); + // ScaffoldMessenger.of(context).showSnackBar(SnackBar( + // content: Text(errorMessage), + // )); + // } } @override diff --git a/lib/views/widgets/equipment/single_device_picker.dart b/lib/views/widgets/equipment/single_device_picker.dart index 3af9e58e..35d7de20 100644 --- a/lib/views/widgets/equipment/single_device_picker.dart +++ b/lib/views/widgets/equipment/single_device_picker.dart @@ -8,6 +8,7 @@ import 'package:test_sa/controllers/providers/settings/setting_provider.dart'; import 'package:test_sa/models/device/device.dart'; import 'package:test_sa/models/subtitle.dart'; import 'package:test_sa/views/widgets/equipment/device_item.dart'; +import 'package:test_sa/views/widgets/loaders/lazy_loading.dart'; import 'package:test_sa/views/widgets/loaders/loading_manager.dart'; import 'package:test_sa/views/widgets/loaders/no_item_found.dart'; @@ -68,7 +69,6 @@ class _SingleDevicePickerState extends State { if (_firstTime && _devicesProvider.devices != null) { _searchableList.clear(); _searchableList.addAll(_devicesProvider.devices); - _firstTime = false; } _subtitle = AppLocalization.of(context).subtitle; return Scaffold( @@ -123,23 +123,33 @@ class _SingleDevicePickerState extends State { ), ), Expanded( - child: _searchableList.isEmpty - ? NoItemFound( - message: _subtitle.noDeviceFound, - ) - : ListView.builder( - padding: EdgeInsets.zero, - shrinkWrap: true, - itemCount: _searchableList.length, - itemBuilder: (listContext, itemIndex) { - return DeviceItem( - device: _searchableList[itemIndex], - onPressed: (device) { - Navigator.of(context).pop(device); - }, - ); + child: _searchableList.isEmpty ? + NoItemFound(message: _subtitle.noDeviceFound,): + LazyLoading( + nextPage: _devicesProvider.nextPage, + onLazyLoad: () async { + await _devicesProvider.getDevicesList( + user: _userProvider.user, + host: _settingProvider.host, + hospitalId: _userProvider.user.hospital?.id, + serialNumber: snController.text, + number: numberController.text + ); + }, + child:ListView.builder( + padding: EdgeInsets.zero, + shrinkWrap: true, + itemCount: _searchableList.length, + itemBuilder: (listContext,itemIndex){ + return DeviceItem( + device: _searchableList[itemIndex], + onPressed: (device){ + Navigator.of(context).pop(device); }, - ), + ); + }, + ), + ) ), ], ), diff --git a/lib/views/widgets/loaders/lazy_loading.dart b/lib/views/widgets/loaders/lazy_loading.dart index d5e5f2ed..f59871e3 100644 --- a/lib/views/widgets/loaders/lazy_loading.dart +++ b/lib/views/widgets/loaders/lazy_loading.dart @@ -27,12 +27,10 @@ class _LazyLoadingState extends State with TickerProviderStateMixin _scrollListener() async { if (!_animationController.isAnimating && !_animationController.isCompleted && widget.nextPage) { - _animationController.forward(); - setState(() {}); + //_animationController.forward(); await widget.onLazyLoad(); await Future.delayed(Duration(milliseconds: 600)); - setState(() {}); - _animationController.reverse(); + // _animationController.reverse(); } }