Merge remote-tracking branch 'origin/zaid_development_new' into zaid_development_new

merge-requests/27/head
zaid_daoud 3 years ago
commit 62dcae610d

@ -79,6 +79,7 @@ class DeviceTransferProvider extends ChangeNotifier {
List<DeviceTransfer> itemsPage = listJson.map((request) => DeviceTransfer.fromJson(request)).toList(); List<DeviceTransfer> itemsPage = listJson.map((request) => DeviceTransfer.fromJson(request)).toList();
items ??= []; items ??= [];
items.addAll(itemsPage); items.addAll(itemsPage);
print(listJson);
if (itemsPage.length == pageItemNumber) { if (itemsPage.length == pageItemNumber) {
nextPage = true; nextPage = true;
} else { } else {
@ -153,11 +154,27 @@ class DeviceTransferProvider extends ChangeNotifier {
"senderWorkingHours": newModel.workingHours, "senderWorkingHours": newModel.workingHours,
"senderTravelingHours": newModel.travelingHours, "senderTravelingHours": newModel.travelingHours,
"senderAttachmentName": "${newModel.signature}.png", "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{ }else{
body.addAll( 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, "destSiteId": newModel.client.id,
"destDepartmentId": newModel.department.id, "destDepartmentId": newModel.department.id,
"receiverAssignedEmployeeId": newModel.userId, "receiverAssignedEmployeeId": newModel.userId,
@ -170,7 +187,11 @@ class DeviceTransferProvider extends ChangeNotifier {
); );
} }
print(body["senderWorkingHours"]);
body.addAll(newModel.toJson(isSender)); body.addAll(newModel.toJson(isSender));
print(body);
Response response; Response response;
try{ try{
response = await ApiManager.instance.put( response = await ApiManager.instance.put(

@ -11,17 +11,19 @@ import 'package:test_sa/models/user.dart';
class DevicesProvider extends ChangeNotifier { class DevicesProvider extends ChangeNotifier {
//reset provider data //reset provider data
void reset() { void reset() {
_devices = null; _devices = [];
_stateCode = null; _stateCode = null;
} }
final pageItemNumber = 10;
bool nextPage = true;
// state code of current request to defied error message // state code of current request to defied error message
// like 400 customer request failed // like 400 customer request failed
// 500 service not available // 500 service not available
int _stateCode; int _stateCode;
int get stateCode => _stateCode; int get stateCode => _stateCode;
List<Device> _devices; List<Device> _devices=[];
List<Device> get devices => _devices; List<Device> get devices => _devices;
// when categories in-process _loading = true // when categories in-process _loading = true
@ -52,7 +54,8 @@ class DevicesProvider extends ChangeNotifier {
Response response; Response response;
try { try {
response = await ApiManager.instance.post(URLs.getEquipment, body: { response = await ApiManager.instance.post(URLs.getEquipment, body: {
"pageSize": 50, "pageSize": pageItemNumber ,
"pageNumber":devices.length ~/ pageItemNumber + 1,
"siteId": hospitalId, "siteId": hospitalId,
if (serialNumber?.isEmpty == false) "assetSerialNumber": serialNumber, if (serialNumber?.isEmpty == false) "assetSerialNumber": serialNumber,
if (number?.isEmpty == false) "assetNo": number, if (number?.isEmpty == false) "assetNo": number,
@ -67,8 +70,12 @@ class DevicesProvider extends ChangeNotifier {
if (response.statusCode >= 200 && response.statusCode < 300) { if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received // client's request was successfully received
List equipmentListJson = json.decode(response.body)["data"]; List equipmentListJson = json.decode(response.body)["data"];
_devices = equipmentListJson.map<Device>((device) => Device.fromJson(device)).toList(); _devices.addAll(equipmentListJson.map<Device>((device) => Device.fromJson(device)).toList());
} nextPage = true;
}else
{
nextPage = false;
}
_loading = false; _loading = false;
notifyListeners(); notifyListeners();
return response.statusCode; return response.statusCode;
@ -89,8 +96,9 @@ class DevicesProvider extends ChangeNotifier {
Response response; Response response;
try { try {
response = await ApiManager.instance.post(URLs.getEquipment, body: { response = await ApiManager.instance.post(URLs.getEquipment, body: {
"pageSize": 50, "pageSize": pageItemNumber,
"siteId": hospitalId, "pageNumber":devices.length ~/ pageItemNumber + 1,
"siteId": devices.length ~/ pageItemNumber + 1,
if (serialNumber?.isEmpty == false) "assetSerialNumber": serialNumber, if (serialNumber?.isEmpty == false) "assetSerialNumber": serialNumber,
if (number?.isEmpty == false) "assetNo": number, if (number?.isEmpty == false) "assetNo": number,
}); });
@ -105,6 +113,8 @@ class DevicesProvider extends ChangeNotifier {
// client's request was successfully received // client's request was successfully received
List equipmentListJson = json.decode(response.body)["data"]; List equipmentListJson = json.decode(response.body)["data"];
page = equipmentListJson.map((device) => Device.fromJson(device)).toList(); page = equipmentListJson.map((device) => Device.fromJson(device)).toList();
_devices.addAll(equipmentListJson.map<Device>((device) => Device.fromJson(device)).toList());
notifyListeners();
} }
return page; return page;
} catch (error) { } catch (error) {

@ -31,7 +31,7 @@ class DeviceTransferInfo{
if(comment != null && comment.isNotEmpty) body["${baseKey}comment"] = comment; if(comment != null && comment.isNotEmpty) body["${baseKey}comment"] = comment;
if(workingHours != null && workingHours.isNotEmpty) body["${baseKey}working_hours"] = workingHours; 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(status != null) body["${baseKey}status"] = status.id.toString();
if(signature != null && signature.isNotEmpty) body["${baseKey}image"] = signature; if(signature != null && signature.isNotEmpty) body["${baseKey}image"] = signature;
return body; return body;

@ -114,7 +114,7 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
onPressed: (){ onPressed: (){
Navigator.of(context).push( Navigator.of(context).push(
MaterialPageRoute( MaterialPageRoute(
builder: (_)=> UpdateDeviceTransfer(model: widget.model,isSender: _isSender,) builder: (_)=> UpdateDeviceTransfer(model: widget.model,isSender: true,)
) )
); );
}, },
@ -140,7 +140,7 @@ class _DeviceTransferDetailsState extends State<DeviceTransferDetails> {
onPressed: (){ onPressed: (){
Navigator.of(context).push( Navigator.of(context).push(
MaterialPageRoute( MaterialPageRoute(
builder: (_)=> UpdateDeviceTransfer(model: widget.model,isSender: _isSender,) builder: (_)=> UpdateDeviceTransfer(model: widget.model,isSender: false,)
) )
); );
}, },

@ -68,16 +68,17 @@ class _RequestDeviceTransferState extends State<RequestDeviceTransfer> {
_isLoading = false; _isLoading = false;
setState(() {}); setState(() {});
if (status >= 200 && status < 300) { if (status >= 200 && status < 300) {
Fluttertoast.showToast( // Fluttertoast.showToast(
msg: _subtitle.requestCompleteSuccessfully, // msg: _subtitle.requestCompleteSuccessfully,
); // );
Navigator.of(context).pop(); 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 @override

@ -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/device/device.dart';
import 'package:test_sa/models/subtitle.dart'; import 'package:test_sa/models/subtitle.dart';
import 'package:test_sa/views/widgets/equipment/device_item.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/loading_manager.dart';
import 'package:test_sa/views/widgets/loaders/no_item_found.dart'; import 'package:test_sa/views/widgets/loaders/no_item_found.dart';
@ -68,7 +69,6 @@ class _SingleDevicePickerState extends State<SingleDevicePicker> {
if (_firstTime && _devicesProvider.devices != null) { if (_firstTime && _devicesProvider.devices != null) {
_searchableList.clear(); _searchableList.clear();
_searchableList.addAll(_devicesProvider.devices); _searchableList.addAll(_devicesProvider.devices);
_firstTime = false;
} }
_subtitle = AppLocalization.of(context).subtitle; _subtitle = AppLocalization.of(context).subtitle;
return Scaffold( return Scaffold(
@ -123,23 +123,33 @@ class _SingleDevicePickerState extends State<SingleDevicePicker> {
), ),
), ),
Expanded( Expanded(
child: _searchableList.isEmpty child: _searchableList.isEmpty ?
? NoItemFound( NoItemFound(message: _subtitle.noDeviceFound,):
message: _subtitle.noDeviceFound, LazyLoading(
) nextPage: _devicesProvider.nextPage,
: ListView.builder( onLazyLoad: () async {
padding: EdgeInsets.zero, await _devicesProvider.getDevicesList(
shrinkWrap: true, user: _userProvider.user,
itemCount: _searchableList.length, host: _settingProvider.host,
itemBuilder: (listContext, itemIndex) { hospitalId: _userProvider.user.hospital?.id,
return DeviceItem( serialNumber: snController.text,
device: _searchableList[itemIndex], number: numberController.text
onPressed: (device) { );
Navigator.of(context).pop(device); },
}, 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);
}, },
), );
},
),
)
), ),
], ],
), ),

@ -27,12 +27,10 @@ class _LazyLoadingState extends State<LazyLoading> with TickerProviderStateMixin
_scrollListener() async { _scrollListener() async {
if (!_animationController.isAnimating && !_animationController.isCompleted && widget.nextPage) { if (!_animationController.isAnimating && !_animationController.isCompleted && widget.nextPage) {
_animationController.forward(); //_animationController.forward();
setState(() {});
await widget.onLazyLoad(); await widget.onLazyLoad();
await Future.delayed(Duration(milliseconds: 600)); await Future.delayed(Duration(milliseconds: 600));
setState(() {}); // _animationController.reverse();
_animationController.reverse();
} }
} }

Loading…
Cancel
Save