diff --git a/assets/images/qr.svg b/assets/images/qr.svg
new file mode 100644
index 00000000..d3d3e11f
--- /dev/null
+++ b/assets/images/qr.svg
@@ -0,0 +1,3 @@
+
diff --git a/lib/controllers/providers/api/device_transfer_provider.dart b/lib/controllers/providers/api/asset_transfer_provider.dart
similarity index 51%
rename from lib/controllers/providers/api/device_transfer_provider.dart
rename to lib/controllers/providers/api/asset_transfer_provider.dart
index 52434818..9b92436b 100644
--- a/lib/controllers/providers/api/device_transfer_provider.dart
+++ b/lib/controllers/providers/api/asset_transfer_provider.dart
@@ -5,18 +5,16 @@ import 'package:flutter/cupertino.dart';
import 'package:http/http.dart';
import 'package:test_sa/controllers/api_routes/api_manager.dart';
import 'package:test_sa/controllers/api_routes/urls.dart';
-import 'package:test_sa/models/device/device_transfer.dart';
-import 'package:test_sa/models/device/device_transfer_info.dart';
-import 'package:test_sa/models/device/device_transfer_search.dart';
+import 'package:test_sa/models/asset/asset_transfer.dart';
import 'package:test_sa/models/user.dart';
import '../../../models/hospital.dart';
-class DeviceTransferProvider extends ChangeNotifier {
+class AssetTransferProvider extends ChangeNotifier {
// number of items call in each request
final pageItemNumber = 12;
- DeviceTransferSearch deviceTransferSearch = DeviceTransferSearch();
+ AssetTransfer transferModel = AssetTransfer();
//reset provider data
void reset() {
@@ -41,7 +39,7 @@ class DeviceTransferProvider extends ChangeNotifier {
bool nextPage = true;
// list of user requests
- List items;
+ List items;
// when requests in-process _loading = true
// done _loading = true
@@ -73,7 +71,7 @@ class DeviceTransferProvider extends ChangeNotifier {
Map body = {};
body["pageNumber"] = (items?.length ?? 0) ~/ pageItemNumber + 1;
body["pageSize"] = pageItemNumber;
- body.addAll(deviceTransferSearch.toMap());
+ body.addAll(transferModel.toJson());
response = await ApiManager.instance.post(URLs.getDeviceTransfer, body: body);
@@ -81,7 +79,7 @@ class DeviceTransferProvider extends ChangeNotifier {
if (stateCode >= 200 && stateCode < 300) {
// client's request was successfully received
List listJson = json.decode(response.body)["data"];
- List itemsPage = listJson.map((request) => DeviceTransfer.fromJson(request)).toList();
+ List itemsPage = listJson.map((request) => AssetTransfer.fromJson(request)).toList();
items ??= [];
items.addAll(itemsPage.toSet().toList());
notifyListeners();
@@ -102,7 +100,7 @@ class DeviceTransferProvider extends ChangeNotifier {
}
}
- Future getRequestById({int assetTransferId}) async {
+ Future getRequestById({int assetTransferId}) async {
Response response;
try {
response = await ApiManager.instance.get(
@@ -110,7 +108,7 @@ class DeviceTransferProvider extends ChangeNotifier {
enableToastMessage: false,
);
if (response.statusCode >= 200 && response.statusCode < 300) {
- return DeviceTransfer.fromJson(json.decode(response.body)["data"]);
+ return AssetTransfer.fromJson(json.decode(response.body)["data"]);
}
return null;
} catch (error) {
@@ -122,27 +120,27 @@ class DeviceTransferProvider extends ChangeNotifier {
Future createRequest({
@required String host,
@required User user,
- @required DeviceTransfer model,
+ @required AssetTransfer model,
}) async {
Map body = {
"id": 0,
- "assetId": model.device.id ?? "",
+ // "assetId": model.device.id ?? "",
"destSiteId": hospital.id ?? "",
"destDepartmentId": department.id ?? "",
- "senderSiteId": model.sender.client.id ?? "",
+ // "senderSiteId": model.sender.client.id ?? "",
// "transferNo": 0,
// "transferCode": "string",
"destBuildingId": building?.id,
"destFloorId": floor.id,
"destRoom": room,
/////
- "senderBuildingId": model.device.destBuildingId,
- "senderFloorId": model.device.destFloorId,
- "senderDepartmentId": model.device.destDepartmentId,
- "senderRoom": model.device.destRoom,
- if (model?.sender?.attachments?.isNotEmpty ?? false)
- "senderAttachments":
- model?.sender?.attachments?.map((file) => {"attachmentName": _isLocalUrl(file.path) ? ("${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}") : file.path})?.toList(),
+ // "senderBuildingId": model.device.destBuildingId,
+ // "senderFloorId": model.device.destFloorId,
+ // "senderDepartmentId": model.device.destDepartmentId,
+ // "senderRoom": model.device.destRoom,
+ // if (model?.sender?.attachments?.isNotEmpty ?? false)
+ // "senderAttachments":
+ // model?.sender?.attachments?.map((file) => {"attachmentName": _isLocalUrl(file.path) ? ("${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}") : file.path})?.toList(),
// "senderAssignedEmployeeId": "string",
// "senderMachineStatusId": 0,
// "senderComment": "string",
@@ -167,7 +165,7 @@ class DeviceTransferProvider extends ChangeNotifier {
stateCode = response.statusCode;
if (response.statusCode >= 200 && response.statusCode < 300) {
if (items != null) {
- items.insert(0, DeviceTransfer.fromJson(json.decode(utf8.decode(response.bodyBytes))[0]));
+ items.insert(0, AssetTransfer.fromJson(json.decode(utf8.decode(response.bodyBytes))[0]));
reset();
notifyListeners();
}
@@ -183,81 +181,81 @@ class DeviceTransferProvider extends ChangeNotifier {
@required User user,
@required bool isSender,
@required int requestId,
- @required DeviceTransfer oldModel,
- @required DeviceTransferInfo newModel,
+ @required AssetTransfer oldModel,
+ @required AssetTransfer newModel,
}) async {
Map body = {
"id": oldModel.id,
- "assetId": oldModel.device.id ?? "",
- "senderSiteId": oldModel.sender.client.id,
- "destSiteId": oldModel.receiver.client.id,
- "destDepartmentId": oldModel.receiver.department.id,
+ // "assetId": oldModel.device.id ?? "",
+ // "senderSiteId": oldModel.sender.client.id,
+ // "destSiteId": oldModel.receiver.client.id,
+ // "destDepartmentId": oldModel.receiver.department.id,
};
if (isSender) {
body.addAll({
- "senderSiteId": newModel.client.id,
- "senderDepartmentId": newModel.department.id,
- "senderAssignedEmployeeId": newModel.userId,
- "senderMachineStatusId": newModel.status.id,
- "senderComment": newModel.comment,
- "senderWorkingHours": newModel.workingHours,
- "senderStartDate": newModel.timer?.startAt?.toIso8601String(),
- "senderEndDate": newModel.timer?.endAt?.toIso8601String(),
- "senderTravelingHours": newModel.travelingHours,
- "senderEngSignature": newModel.engSignature,
- if (newModel?.attachments?.isNotEmpty ?? false)
- "senderAttachments":
- newModel?.attachments?.map((file) => {"attachmentName": _isLocalUrl(file.path) ? ("${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}") : file.path})?.toList(),
- "destSiteId": oldModel.receiver.client?.id,
- "destDepartmentId": oldModel.receiver.department?.id,
- "destBuildingId": oldModel.device?.destBuildingId,
- "destFloorId": oldModel.device?.destFloorId,
- "destRoom": oldModel.device?.destRoom,
- "receiverAssignedEmployeeId": oldModel.receiver.userId,
- "receiverMachineStatusId": oldModel.receiver.status.id ?? "",
- "receiverComment": oldModel.receiver.comment,
- "receiverWorkingHours": oldModel.receiver.workingHours,
- "receiverStartDate": oldModel.receiver.timer?.startAt?.toIso8601String(),
- "receiverEndDate": oldModel.receiver.timer?.endAt?.toIso8601String(),
- "receiverTravelingHours": oldModel.receiver?.travelingHours,
- "receiverEngSignature": oldModel.receiver?.engSignature,
- if (oldModel.receiver?.attachments?.isNotEmpty ?? false)
- "receiverAttachments": oldModel.receiver?.attachments
- ?.map((file) => {"attachmentName": _isLocalUrl(file.path) ? ("${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}") : file.path})
- ?.toList(),
+ // "senderSiteId": newModel.client.id,
+ // "senderDepartmentId": newModel.department.id,
+ // "senderAssignedEmployeeId": newModel.userId,
+ // "senderMachineStatusId": newModel.status.id,
+ // "senderComment": newModel.comment,
+ // "senderWorkingHours": newModel.workingHours,
+ // "senderStartDate": newModel.timer?.startAt?.toIso8601String(),
+ // "senderEndDate": newModel.timer?.endAt?.toIso8601String(),
+ // "senderTravelingHours": newModel.travelingHours,
+ // "senderEngSignature": newModel.engSignature,
+ // if (newModel?.attachments?.isNotEmpty ?? false)
+ // "senderAttachments":
+ // newModel?.attachments?.map((file) => {"attachmentName": _isLocalUrl(file.path) ? ("${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}") : file.path})?.toList(),
+ // "destSiteId": oldModel.receiver.client?.id,
+ // "destDepartmentId": oldModel.receiver.department?.id,
+ // "destBuildingId": oldModel.device?.destBuildingId,
+ // "destFloorId": oldModel.device?.destFloorId,
+ // "destRoom": oldModel.device?.destRoom,
+ // "receiverAssignedEmployeeId": oldModel.receiver.userId,
+ // "receiverMachineStatusId": oldModel.receiver.status.id ?? "",
+ // "receiverComment": oldModel.receiver.comment,
+ // "receiverWorkingHours": oldModel.receiver.workingHours,
+ // "receiverStartDate": oldModel.receiver.timer?.startAt?.toIso8601String(),
+ // "receiverEndDate": oldModel.receiver.timer?.endAt?.toIso8601String(),
+ // "receiverTravelingHours": oldModel.receiver?.travelingHours,
+ // "receiverEngSignature": oldModel.receiver?.engSignature,
+ // if (oldModel.receiver?.attachments?.isNotEmpty ?? false)
+ // "receiverAttachments": oldModel.receiver?.attachments
+ // ?.map((file) => {"attachmentName": _isLocalUrl(file.path) ? ("${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}") : file.path})
+ // ?.toList(),
});
} 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,
- "senderStartDate": oldModel.sender.timer?.startAt?.toIso8601String(),
- "senderEndDate": oldModel.sender.timer?.endAt?.toIso8601String(),
- "senderTravelingHours": oldModel.sender?.travelingHours,
- "senderEngSignature": oldModel.sender?.engSignature,
- if (oldModel.sender?.attachments?.isNotEmpty ?? false)
- "senderAttachments":
- oldModel.sender?.attachments?.map((file) => {"attachmentName": _isLocalUrl(file.path) ? ("${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}") : file.path})?.toList(),
- "destSiteId": newModel.client?.id,
- "destDepartmentId": newModel.department?.id,
- "destBuildingId": oldModel.device?.destBuildingId,
- "destFloorId": oldModel.device?.destFloorId,
- "destRoom": oldModel.device?.destRoom,
- "receiverAssignedEmployeeId": newModel.userId,
- "receiverMachineStatusId": newModel.status?.id ?? "",
- "receiverComment": newModel.comment,
- "receiverWorkingHours": newModel.workingHours,
- "receiverStartDate": newModel.timer?.startAt?.toIso8601String(),
- "receiverEndDate": newModel.timer?.endAt?.toIso8601String(),
- "receiverTravelingHours": newModel.travelingHours,
- "receiverEngSignature": newModel.engSignature,
- if (newModel?.attachments?.isNotEmpty ?? false)
- "receiverAttachments":
- newModel?.attachments?.map((file) => {"attachmentName": _isLocalUrl(file.path) ? ("${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}") : file.path})?.toList(),
+ // "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,
+ // "senderStartDate": oldModel.sender.timer?.startAt?.toIso8601String(),
+ // "senderEndDate": oldModel.sender.timer?.endAt?.toIso8601String(),
+ // "senderTravelingHours": oldModel.sender?.travelingHours,
+ // "senderEngSignature": oldModel.sender?.engSignature,
+ // if (oldModel.sender?.attachments?.isNotEmpty ?? false)
+ // "senderAttachments":
+ // oldModel.sender?.attachments?.map((file) => {"attachmentName": _isLocalUrl(file.path) ? ("${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}") : file.path})?.toList(),
+ // "destSiteId": newModel.client?.id,
+ // "destDepartmentId": newModel.department?.id,
+ // "destBuildingId": oldModel.device?.destBuildingId,
+ // "destFloorId": oldModel.device?.destFloorId,
+ // "destRoom": oldModel.device?.destRoom,
+ // "receiverAssignedEmployeeId": newModel.userId,
+ // "receiverMachineStatusId": newModel.status?.id ?? "",
+ // "receiverComment": newModel.comment,
+ // "receiverWorkingHours": newModel.workingHours,
+ // "receiverStartDate": newModel.timer?.startAt?.toIso8601String(),
+ // "receiverEndDate": newModel.timer?.endAt?.toIso8601String(),
+ // "receiverTravelingHours": newModel.travelingHours,
+ // "receiverEngSignature": newModel.engSignature,
+ // if (newModel?.attachments?.isNotEmpty ?? false)
+ // "receiverAttachments":
+ // newModel?.attachments?.map((file) => {"attachmentName": _isLocalUrl(file.path) ? ("${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}") : file.path})?.toList(),
});
}
//body.addAll(newModel.toJson(isSender));
@@ -267,7 +265,7 @@ class DeviceTransferProvider extends ChangeNotifier {
response = await ApiManager.instance.put(URLs.updateDeviceTransfer, body: body);
print(response.body);
- print("${newModel.engSignature}.png");
+ // print("${newModel.engSignature}.png");
// response = await post(
// Uri.parse("$host${URLs.updateDeviceTransfer}/$requestId"),
// body: body,
diff --git a/lib/controllers/providers/api/devices_provider.dart b/lib/controllers/providers/api/devices_provider.dart
index 03a8228f..f30f9f8c 100644
--- a/lib/controllers/providers/api/devices_provider.dart
+++ b/lib/controllers/providers/api/devices_provider.dart
@@ -4,11 +4,12 @@ import 'package:flutter/cupertino.dart';
import 'package:http/http.dart';
import 'package:test_sa/controllers/api_routes/api_manager.dart';
import 'package:test_sa/controllers/api_routes/urls.dart';
-import 'package:test_sa/models/device/device.dart';
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/models/user.dart';
-class DevicesProvider extends ChangeNotifier {
+import '../../../models/asset/asset.dart';
+
+class AssetProvider extends ChangeNotifier {
//reset provider data
void reset() {
_devices = [];
@@ -25,9 +26,9 @@ class DevicesProvider extends ChangeNotifier {
int get stateCode => _stateCode;
- List _devices = [];
+ List _devices = [];
- List get devices => _devices;
+ List get devices => _devices;
// when categories in-process _loading = true
// done _loading = true
@@ -76,10 +77,10 @@ class DevicesProvider extends ChangeNotifier {
if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received
List equipmentListJson = json.decode(response.body)["data"];
- var dList = equipmentListJson.map((device) => Device.fromJson(device, startKeyWithDest: false)).toList();
+ var dList = equipmentListJson.map((asset) => Asset.fromJson(asset)).toList();
try {
if (isQr) {
- dList = dList.where((element) => number?.toLowerCase() == element?.number?.toLowerCase())?.toList() ?? [];
+ dList = dList.where((element) => number?.toLowerCase() == element?.assetNumber?.toLowerCase())?.toList() ?? [];
}
} catch (e) {
print(e);
@@ -99,7 +100,7 @@ class DevicesProvider extends ChangeNotifier {
/// return state code if request complete may be 200, 404 or 403
/// for more details check http state manager
/// lib\controllers\http_status_manger\http_status_manger.dart
- Future> getDevicesList({
+ Future> getDevicesList({
@required String host,
@required User user,
@required int hospitalId,
@@ -121,12 +122,12 @@ class DevicesProvider extends ChangeNotifier {
// "${number?.isEmpty == false ? "&assetNo=$number" : ""}"
// ),
// );
- List page = [];
+ List page = [];
if (response.statusCode >= 200 && response.statusCode < 300) {
// client's request was successfully received
List equipmentListJson = json.decode(response.body)["data"];
- page = equipmentListJson.map((device) => Device.fromJson(device, startKeyWithDest: false)).toList();
- _devices.addAll(equipmentListJson.map((device) => Device.fromJson(device, startKeyWithDest: false)).toList());
+ page = equipmentListJson.map((asset) => Asset.fromJson(asset)).toList();
+ _devices.addAll(equipmentListJson.map((asset) => Asset.fromJson(asset)).toList());
notifyListeners();
}
return page;
diff --git a/lib/controllers/providers/api/gas_refill_provider.dart b/lib/controllers/providers/api/gas_refill_provider.dart
index 5b631d5d..f85e5cd6 100644
--- a/lib/controllers/providers/api/gas_refill_provider.dart
+++ b/lib/controllers/providers/api/gas_refill_provider.dart
@@ -107,13 +107,13 @@ class GasRefillProvider extends ChangeNotifier {
if (timer?.endAt != null) "endTime": timer.endAt.toIso8601String(),
"department": model.department?.toJson(),
"GazRefillNo": "GR-${DateTime.now().toString().split(" ").first}",
- "status": model.status?.toMap(),
+ "status": model.status?.toJson(),
};
body["gazRefillDetails"] = model.gazRefillDetails
.map((model) => {
- "gasType": model.gasType.toMap(),
- "cylinderSize": model.cylinderSize.toMap(),
- "cylinderType": model.cylinderType.toMap(),
+ "gasType": model.gasType.toJson(),
+ "cylinderSize": model.cylinderSize.toJson(),
+ "cylinderType": model.cylinderType.toJson(),
"requestedQty": model.requestedQty,
})
.toList();
@@ -144,7 +144,7 @@ class GasRefillProvider extends ChangeNotifier {
Map body = {
"id": newModel.id,
"gazRefillNo": newModel.title ?? "",
- "status": newModel.status.toMap(),
+ "status": newModel.status.toJson(),
//"expectedDate": newModel.expectedDate?.toIso8601String(),
"expectedTime": newModel.expectedDate?.toIso8601String(),
if (timer?.startAt != null) "startDate": timer.startAt.toIso8601String(),
@@ -164,9 +164,9 @@ class GasRefillProvider extends ChangeNotifier {
body["gazRefillDetails"] = newModel.details
.map((model) => {
- "gasType": model.type.toMap(),
- "cylinderSize": model.cylinderSize.toMap(),
- "cylinderType": model.cylinderType.toMap(),
+ "gasType": model.type.toJson(),
+ "cylinderSize": model.cylinderSize.toJson(),
+ "cylinderType": model.cylinderType.toJson(),
"requestedQty": model.requestedQuantity,
"deliverdQty": model.deliveredQuantity,
})
diff --git a/lib/controllers/providers/api/service_requests_provider.dart b/lib/controllers/providers/api/service_requests_provider.dart
index 5aee9c12..afba7fc5 100644
--- a/lib/controllers/providers/api/service_requests_provider.dart
+++ b/lib/controllers/providers/api/service_requests_provider.dart
@@ -146,10 +146,10 @@ class ServiceRequestsProvider extends ChangeNotifier {
"client": user.clientId,
"callComments": serviceRequest.callComments,
if (serviceRequest.devicePhotos.isNotEmpty) "attachmentsCallRequest": serviceRequest.devicePhotos.map((e) => {"name": e}).toList(),
- "priority": serviceRequest.priority?.toMap(),
- "defectType": serviceRequest.defectType?.toMap(),
- "typeofRequest": serviceRequest.type?.toMap(),
- "requestedThrough": serviceRequest.requestedThrough?.toMap(),
+ "priority": serviceRequest.priority?.toJson(),
+ "defectType": serviceRequest.defectType?.toJson(),
+ "typeofRequest": serviceRequest.type?.toJson(),
+ "requestedThrough": serviceRequest.requestedThrough?.toJson(),
"reviewComment": null,
if (serviceRequest.audio != null) "voiceNote": serviceRequest.audio,
"callSiteContactPerson": [
@@ -188,7 +188,7 @@ class ServiceRequestsProvider extends ChangeNotifier {
serviceRequests.insert(0, ServiceRequest.fromJson(data[0]));
} else {
if (data["data"] != null && data["data"] == true) {
- // serviceRequests.insert(0, ServiceRequest.fromJson(data[0]));
+ // serviceRequests.insert(0, ServiceRequest.fromJson(data[0]));
}
}
}
@@ -239,10 +239,10 @@ class ServiceRequestsProvider extends ChangeNotifier {
"callCreatedBy": serviceRequest['callCreatedBy'],
"requestedDate": request.date ?? "",
"requestedTime": request.date ?? "",
- "priority": request.priority?.toMap(),
- "defectType": request.defectType?.toMap(),
- "typeofRequest": request.type?.toMap(),
- "requestedThrough": request.requestedThrough?.toMap(),
+ "priority": request.priority?.toJson(),
+ "defectType": request.defectType?.toJson(),
+ "typeofRequest": request.type?.toJson(),
+ "requestedThrough": request.requestedThrough?.toJson(),
"voiceNote": request.audio,
"assets": request.deviceId == null ? [] : [request.deviceId],
"attachmentsCallRequest": request.devicePhotos?.map((e) => {"name": e})?.toList(),
@@ -272,8 +272,8 @@ class ServiceRequestsProvider extends ChangeNotifier {
"value": request.statusValue,
},
"callLastSituation": null,
- "firstAction": request.firstAction?.toMap(),
- "loanAvailablity": request.loanAvailability?.toMap(),
+ "firstAction": request.firstAction?.toJson(),
+ "loanAvailablity": request.loanAvailability?.toJson(),
"comments": request.reviewComment,
"firstActionDate": date?.toIso8601String(),
"visitDate": date?.toIso8601String() ?? "",
@@ -313,7 +313,7 @@ class ServiceRequestsProvider extends ChangeNotifier {
"callRequest": {
"id": request.id,
},
- "assetType": report.assetType?.toMap(),
+ "assetType": report.assetType?.toJson(),
"assignedEmployee": {"id": report.engineer?.id, "name": report.engineer?.name ?? ""},
"visitDate": report.returnToService?.toIso8601String() ?? "",
// "assistantEmployees": [
@@ -333,10 +333,10 @@ class ServiceRequestsProvider extends ChangeNotifier {
"contactUserId": user.userID,
}
],
- "calllastSituation": report.callLastSituation?.toMap(),
+ "calllastSituation": report.callLastSituation?.toJson(),
"currentSituation": null,
- "repairLocation": report.repairLocation?.toMap(),
- "reason": report.reason?.toMap(),
+ "repairLocation": report.repairLocation?.toJson(),
+ "reason": report.reason?.toJson(),
"startofWorkTime": report.timer?.startAt?.toIso8601String() ?? "",
"endofWorkTime": report.timer?.endAt?.toIso8601String() ?? "",
"workingHours": report?.workingHours,
@@ -355,7 +355,7 @@ class ServiceRequestsProvider extends ChangeNotifier {
"reviewComment": "",
"comment": report.comment,
"attachmentsWorkOrder": request.devicePhotos?.map((e) => {"name": e})?.toList(),
- "equipmentStatus": report.equipmentStatus?.toMap(),
+ "equipmentStatus": report.equipmentStatus?.toJson(),
"suppEngineerWorkOrders": null,
"engSignature": report.signatureEngineer,
"nurseSignature": report.signatureNurse,
@@ -671,14 +671,14 @@ class ServiceRequestsProvider extends ChangeNotifier {
if (search.assetType != null) "assetSerialNo": search.assetType?.name,
if (search.workOrderNo != null) "workOrderNo": search.workOrderNo,
if (search.id != null) "workOrderNo": search.id?.toString(),
- if (search.calllastSituation != null) "callslastSituationWO": search.calllastSituation.toMap(),
+ if (search.calllastSituation != null) "callslastSituationWO": search.calllastSituation.toJson(),
if (search.assignedEmployee != null)
"assignedEmployees": [
search.assignedEmployee.id,
],
// "statusWO": [],
if (site?.isNotEmpty ?? false) "site": site,
- if (search.visitDate != null && dateOperator != null) "visitDateSymbol": dateOperator?.toMap(),
+ if (search.visitDate != null && dateOperator != null) "visitDateSymbol": dateOperator?.toJson(),
if (search.visitDate != null && dateOperator != null) "visitDateFrom": search.visitDate,
};
print(body);
diff --git a/lib/extensions/widget_extensions.dart b/lib/extensions/widget_extensions.dart
index 54f92475..9ba4acd3 100644
--- a/lib/extensions/widget_extensions.dart
+++ b/lib/extensions/widget_extensions.dart
@@ -15,8 +15,8 @@ extension WidgetExtensions on Widget {
Widget paddingAll(double value) => Padding(padding: EdgeInsets.all(value), child: this);
- Widget paddingOnly({int left = 0, int right = 0, int top = 0, int bottom = 0}) =>
- Padding(padding: EdgeInsets.only(left: left.toScreenWidth, right: right.toScreenWidth, top: top.toScreenHeight, bottom: bottom.toScreenHeight), child: this);
+ Widget paddingOnly({int start = 0, int end = 0, int top = 0, int bottom = 0}) =>
+ Padding(padding: EdgeInsetsDirectional.only(start: start.toScreenWidth, end: end.toScreenWidth, top: top.toScreenHeight, bottom: bottom.toScreenHeight), child: this);
Widget toExpanded({int flex = 1}) => Expanded(flex: flex, child: this);
}
diff --git a/lib/main.dart b/lib/main.dart
index 7b023a2a..3e0be7e3 100644
--- a/lib/main.dart
+++ b/lib/main.dart
@@ -7,8 +7,8 @@ import 'package:flutter_localizations/flutter_localizations.dart';
import 'package:localization/localization.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/localization/localization.dart';
+import 'package:test_sa/controllers/providers/api/asset_transfer_provider.dart';
import 'package:test_sa/controllers/providers/api/departments_provider.dart';
-import 'package:test_sa/controllers/providers/api/device_transfer_provider.dart';
import 'package:test_sa/controllers/providers/api/devices_provider.dart';
import 'package:test_sa/controllers/providers/api/gas_refill_provider.dart';
import 'package:test_sa/controllers/providers/api/hospitals_provider.dart';
@@ -47,7 +47,6 @@ import 'package:test_sa/controllers/providers/api/status_drop_down/service_reqes
import 'package:test_sa/new_views/app_style/app_themes.dart';
import 'package:test_sa/new_views/pages/land_page/land_page.dart';
import 'package:test_sa/new_views/pages/login_page.dart';
-import 'package:test_sa/new_views/pages/new_service_request_page.dart';
import 'package:test_sa/new_views/pages/new_transfer_request_page.dart';
import 'package:test_sa/new_views/pages/splash_page.dart';
import 'package:test_sa/providers/department_provider.dart';
@@ -119,10 +118,8 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider(create: (_) => CylinderSizeProvider()),
ChangeNotifierProvider(create: (_) => DepartmentProvider()),
ChangeNotifierProvider(create: (_) => SiteProvider()),
-
-
ChangeNotifierProvider(create: (_) => HospitalsProvider()),
- ChangeNotifierProvider(create: (_) => DevicesProvider()),
+ ChangeNotifierProvider(create: (_) => AssetProvider()),
ChangeNotifierProvider(create: (_) => ServiceRequestsProvider()),
ChangeNotifierProvider(create: (_) => DepartmentsProvider()),
ChangeNotifierProvider(create: (_) => NotificationsProvider()),
@@ -140,7 +137,7 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider(create: (_) => GasStatusProvider()),
ChangeNotifierProvider(create: (_) => GasTypesProvider()),
ChangeNotifierProvider(create: (_) => GasRefillProvider()),
- ChangeNotifierProvider(create: (_) => DeviceTransferProvider()),
+ ChangeNotifierProvider(create: (_) => AssetTransferProvider()),
ChangeNotifierProvider(create: (_) => AssignedToProvider()),
ChangeNotifierProvider(create: (_) => PentryTaskStatusProvider()),
ChangeNotifierProvider(create: (_) => PentryVisitStatusProvider()),
@@ -159,11 +156,6 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider(create: (_) => ServiceReportMaintenanceSituationProvider()),
ChangeNotifierProvider(create: (_) => ServiceReportUsersProvider()),
ChangeNotifierProvider(create: (_) => ServiceReportAssistantsEmployeeProvider()),
-
-
-
-
-
],
child: GestureDetector(
onTap: () {
@@ -191,17 +183,15 @@ class MyApp extends StatelessWidget {
LoginPage.routeName: (_) => const LoginPage(),
old.LandPage.id: (_) => const old.LandPage(),
LandPage.routeName: (_) => const LandPage(),
- NewServiceRequestPage.routeName: (_) => const NewServiceRequestPage(),
NewGasRefillRequestPage.routeName: (_) => const NewGasRefillRequestPage(),
NewTransferRequestPage.routeName: (_) => const NewTransferRequestPage(),
-
+ ServiceRequestsPage.id: (_) => ServiceRequestsPage(),
ReportIssuesPage.id: (_) => const ReportIssuesPage(),
RequestGasRefill.id: (_) => const RequestGasRefill(),
CreateRequestPage.id: (_) => const CreateRequestPage(),
SingleHospitalPicker.id: (_) => SingleHospitalPicker(),
SingleDevicePicker.id: (_) => SingleDevicePicker(),
SingleDepartmentPicker.id: (_) => SingleDepartmentPicker(),
- ServiceRequestsPage.id: (_) => ServiceRequestsPage(),
NotificationsPage.id: (_) => NotificationsPage(),
FutureRequestServiceDetails.id: (_) => FutureRequestServiceDetails(),
PreventiveMaintenanceVisitsPage.id: (_) => PreventiveMaintenanceVisitsPage(),
diff --git a/lib/models/asset/asset.dart b/lib/models/asset/asset.dart
new file mode 100644
index 00000000..5da88f7b
--- /dev/null
+++ b/lib/models/asset/asset.dart
@@ -0,0 +1,411 @@
+import 'package:test_sa/models/asset/supplier.dart';
+import 'package:test_sa/models/asset/technical_guidance_book.dart';
+import 'package:test_sa/models/lookup.dart';
+
+import '../new_models/building.dart';
+import '../new_models/department.dart';
+import '../new_models/floor.dart';
+import '../new_models/site.dart';
+import 'model_definition.dart';
+
+class Asset {
+ Asset({
+ this.id,
+ this.assetSerialNo,
+ this.systemID,
+ this.assetNumber,
+ this.modelDefinition,
+ this.supplier,
+ this.ipAddress,
+ this.macAddress,
+ this.portNumber,
+ this.assetReplace,
+ this.oldAsset,
+ this.isParent,
+ this.parentAsset,
+ this.assetType,
+ this.site,
+ this.building,
+ this.floor,
+ this.department,
+ this.room,
+ this.testsDay,
+ this.purchasingPrice,
+ this.nbv,
+ this.currency,
+ this.poNo,
+ this.invoiceNumber,
+ this.invoiceDate,
+ this.replacementDate,
+ this.originDepartment,
+ this.originSite,
+ this.budgetYear,
+ this.lastPOPrice,
+ this.commissioningStatus,
+ this.productionDate,
+ this.edd,
+ this.technicalInspectionDate,
+ this.deliveryInspectionDate,
+ this.endUserAcceptanceDate,
+ this.receivingCommittee,
+ this.siteWarrantyMonths,
+ this.extendedWarrantyMonths,
+ this.remainderWarrantyMonths,
+ this.eomWarrantyMonthsNo,
+ this.warrantyValue,
+ this.warrantyEndDate,
+ this.warrantyContractConditions,
+ this.technicalGuidanceBooks,
+ this.comment,
+ this.tagCode,
+ });
+
+ Asset.fromJson(dynamic json) {
+ id = json['id'];
+ assetSerialNo = json['assetSerialNo'];
+ systemID = json['systemID'];
+ assetNumber = json['assetNumber'];
+ modelDefinition = json['modelDefinition'] != null ? ModelDefinition.fromJson(json['modelDefinition']) : null;
+ supplier = json['supplier'] != null ? Supplier.fromJson(json['supplier']) : null;
+ ipAddress = json['ipAddress'];
+ macAddress = json['macAddress'];
+ portNumber = json['portNumber'];
+ assetReplace = json['assetReplace'] != null ? Lookup.fromJson(json['assetReplace']) : null;
+ oldAsset = json['oldAsset'] != null ? AssetInfo.fromJson(json['oldAsset']) : null;
+ isParent = json['isParent'] != null ? Lookup.fromJson(json['isParent']) : null;
+ parentAsset = json['parentAsset'] != null ? AssetInfo.fromJson(json['parentAsset']) : null;
+ assetType = json['assetType'] != null ? Lookup.fromJson(json['assetType']) : null;
+ site = json['site'] != null ? Site.fromJson(json['site']) : null;
+ building = json['building'] != null ? Building.fromJson(json['building']) : null;
+ floor = json['floor'] != null ? Floor.fromJson(json['floor']) : null;
+ department = json['department'] != null ? Department.fromJson(json['department']) : null;
+ room = json['room'];
+ testsDay = json['testsDay'];
+ purchasingPrice = json['purchasingPrice'];
+ nbv = json['nbv'];
+ currency = json['currency'] != null ? Lookup.fromJson(json['currency']) : null;
+ poNo = json['poNo'];
+ invoiceNumber = json['invoiceNumber'];
+ invoiceDate = json['invoiceDate'];
+ replacementDate = json['replacementDate'];
+ originDepartment = json['originDepartment'] != null ? Department.fromJson(json['originDepartment']) : null;
+ originSite = json['originSite'] != null ? Site.fromJson(json['originSite']) : null;
+ budgetYear = json['budgetYear'];
+ lastPOPrice = json['lastPOPrice'];
+ commissioningStatus = json['commissioningStatus'] != null ? Lookup.fromJson(json['commissioningStatus']) : null;
+ productionDate = json['productionDate'];
+ edd = json['edd'];
+ technicalInspectionDate = json['technicalInspectionDate'];
+ deliveryInspectionDate = json['deliveryInspectionDate'];
+ endUserAcceptanceDate = json['endUserAcceptanceDate'];
+ receivingCommittee = json['receivingCommittee'];
+ siteWarrantyMonths = json['siteWarrantyMonths'] != null ? Lookup.fromJson(json['siteWarrantyMonths']) : null;
+ extendedWarrantyMonths = json['extendedWarrantyMonths'] != null ? Lookup.fromJson(json['extendedWarrantyMonths']) : null;
+ remainderWarrantyMonths = json['remainderWarrantyMonths'] != null ? Lookup.fromJson(json['remainderWarrantyMonths']) : null;
+ eomWarrantyMonthsNo = json['eomWarrantyMonthsNo'];
+ warrantyValue = json['warrantyValue'];
+ warrantyEndDate = json['warrantyEndDate'];
+ warrantyContractConditions = json['warrantyContractConditions'];
+ if (json['technicalGuidanceBooks'] != null) {
+ technicalGuidanceBooks = [];
+ json['technicalGuidanceBooks'].forEach((v) {
+ technicalGuidanceBooks.add(TechnicalGuidanceBook.fromJson(v));
+ });
+ }
+ comment = json['comment'];
+ tagCode = json['tagCode'];
+ }
+ num id;
+ String assetSerialNo;
+ String systemID;
+ String assetNumber;
+ ModelDefinition modelDefinition;
+ Supplier supplier;
+ String ipAddress;
+ String macAddress;
+ String portNumber;
+ Lookup assetReplace;
+ AssetInfo oldAsset;
+ Lookup isParent;
+ AssetInfo parentAsset;
+ Lookup assetType;
+ Site site;
+ Building building;
+ Floor floor;
+ Department department;
+ String room;
+ num testsDay;
+ num purchasingPrice;
+ String nbv;
+ Lookup currency;
+ String poNo;
+ String invoiceNumber;
+ String invoiceDate;
+ String replacementDate;
+ Department originDepartment;
+ Site originSite;
+ num budgetYear;
+ num lastPOPrice;
+ Lookup commissioningStatus;
+ String productionDate;
+ String edd;
+ String technicalInspectionDate;
+ String deliveryInspectionDate;
+ String endUserAcceptanceDate;
+ String receivingCommittee;
+ Lookup siteWarrantyMonths;
+ Lookup extendedWarrantyMonths;
+ Lookup remainderWarrantyMonths;
+ num eomWarrantyMonthsNo;
+ num warrantyValue;
+ String warrantyEndDate;
+ String warrantyContractConditions;
+ List technicalGuidanceBooks;
+ String comment;
+ String tagCode;
+ Asset copyWith({
+ num id,
+ String assetSerialNo,
+ String systemID,
+ String assetNumber,
+ ModelDefinition modelDefinition,
+ Supplier supplier,
+ String ipAddress,
+ String macAddress,
+ String portNumber,
+ Lookup assetReplace,
+ AssetInfo oldAsset,
+ Lookup isParent,
+ AssetInfo parentAsset,
+ Lookup assetType,
+ Site site,
+ Building building,
+ Floor floor,
+ Department department,
+ String room,
+ num testsDay,
+ num purchasingPrice,
+ String nbv,
+ Lookup currency,
+ String poNo,
+ String invoiceNumber,
+ String invoiceDate,
+ String replacementDate,
+ Department originDepartment,
+ Site originSite,
+ num budgetYear,
+ num lastPOPrice,
+ Lookup commissioningStatus,
+ String productionDate,
+ String edd,
+ String technicalInspectionDate,
+ String deliveryInspectionDate,
+ String endUserAcceptanceDate,
+ String receivingCommittee,
+ Lookup siteWarrantyMonths,
+ Lookup extendedWarrantyMonths,
+ Lookup remainderWarrantyMonths,
+ num eomWarrantyMonthsNo,
+ num warrantyValue,
+ String warrantyEndDate,
+ String warrantyContractConditions,
+ List technicalGuidanceBooks,
+ String comment,
+ String tagCode,
+ }) =>
+ Asset(
+ id: id ?? this.id,
+ assetSerialNo: assetSerialNo ?? this.assetSerialNo,
+ systemID: systemID ?? this.systemID,
+ assetNumber: assetNumber ?? this.assetNumber,
+ modelDefinition: modelDefinition ?? this.modelDefinition,
+ supplier: supplier ?? this.supplier,
+ ipAddress: ipAddress ?? this.ipAddress,
+ macAddress: macAddress ?? this.macAddress,
+ portNumber: portNumber ?? this.portNumber,
+ assetReplace: assetReplace ?? this.assetReplace,
+ oldAsset: oldAsset ?? this.oldAsset,
+ isParent: isParent ?? this.isParent,
+ parentAsset: parentAsset ?? this.parentAsset,
+ assetType: assetType ?? this.assetType,
+ site: site ?? this.site,
+ building: building ?? this.building,
+ floor: floor ?? this.floor,
+ department: department ?? this.department,
+ room: room ?? this.room,
+ testsDay: testsDay ?? this.testsDay,
+ purchasingPrice: purchasingPrice ?? this.purchasingPrice,
+ nbv: nbv ?? this.nbv,
+ currency: currency ?? this.currency,
+ poNo: poNo ?? this.poNo,
+ invoiceNumber: invoiceNumber ?? this.invoiceNumber,
+ invoiceDate: invoiceDate ?? this.invoiceDate,
+ replacementDate: replacementDate ?? this.replacementDate,
+ originDepartment: originDepartment ?? this.originDepartment,
+ originSite: originSite ?? this.originSite,
+ budgetYear: budgetYear ?? this.budgetYear,
+ lastPOPrice: lastPOPrice ?? this.lastPOPrice,
+ commissioningStatus: commissioningStatus ?? this.commissioningStatus,
+ productionDate: productionDate ?? this.productionDate,
+ edd: edd ?? this.edd,
+ technicalInspectionDate: technicalInspectionDate ?? this.technicalInspectionDate,
+ deliveryInspectionDate: deliveryInspectionDate ?? this.deliveryInspectionDate,
+ endUserAcceptanceDate: endUserAcceptanceDate ?? this.endUserAcceptanceDate,
+ receivingCommittee: receivingCommittee ?? this.receivingCommittee,
+ siteWarrantyMonths: siteWarrantyMonths ?? this.siteWarrantyMonths,
+ extendedWarrantyMonths: extendedWarrantyMonths ?? this.extendedWarrantyMonths,
+ remainderWarrantyMonths: remainderWarrantyMonths ?? this.remainderWarrantyMonths,
+ eomWarrantyMonthsNo: eomWarrantyMonthsNo ?? this.eomWarrantyMonthsNo,
+ warrantyValue: warrantyValue ?? this.warrantyValue,
+ warrantyEndDate: warrantyEndDate ?? this.warrantyEndDate,
+ warrantyContractConditions: warrantyContractConditions ?? this.warrantyContractConditions,
+ technicalGuidanceBooks: technicalGuidanceBooks ?? this.technicalGuidanceBooks,
+ comment: comment ?? this.comment,
+ tagCode: tagCode ?? this.tagCode,
+ );
+ Map toJson() {
+ final map = {};
+ map['id'] = id;
+ map['assetSerialNo'] = assetSerialNo;
+ map['systemID'] = systemID;
+ map['assetNumber'] = assetNumber;
+ if (modelDefinition != null) {
+ map['modelDefinition'] = modelDefinition.toJson();
+ }
+ if (supplier != null) {
+ map['supplier'] = supplier.toJson();
+ }
+ map['ipAddress'] = ipAddress;
+ map['macAddress'] = macAddress;
+ map['portNumber'] = portNumber;
+ if (assetReplace != null) {
+ map['assetReplace'] = assetReplace.toJson();
+ }
+ if (oldAsset != null) {
+ map['oldAsset'] = oldAsset.toJson();
+ }
+ if (isParent != null) {
+ map['isParent'] = isParent.toJson();
+ }
+ if (parentAsset != null) {
+ map['parentAsset'] = parentAsset.toJson();
+ }
+ if (assetType != null) {
+ map['assetType'] = assetType.toJson();
+ }
+ if (site != null) {
+ map['site'] = site.toJson();
+ }
+ if (building != null) {
+ map['building'] = building.toJson();
+ }
+ if (floor != null) {
+ map['floor'] = floor.toJson();
+ }
+ if (department != null) {
+ map['department'] = department.toJson();
+ }
+ map['room'] = room;
+ map['testsDay'] = testsDay;
+ map['purchasingPrice'] = purchasingPrice;
+ map['nbv'] = nbv;
+ if (currency != null) {
+ map['currency'] = currency.toJson();
+ }
+ map['poNo'] = poNo;
+ map['invoiceNumber'] = invoiceNumber;
+ map['invoiceDate'] = invoiceDate;
+ map['replacementDate'] = replacementDate;
+ if (originDepartment != null) {
+ map['originDepartment'] = originDepartment.toJson();
+ }
+ if (originSite != null) {
+ map['originSite'] = originSite.toJson();
+ }
+ map['budgetYear'] = budgetYear;
+ map['lastPOPrice'] = lastPOPrice;
+ if (commissioningStatus != null) {
+ map['commissioningStatus'] = commissioningStatus.toJson();
+ }
+ map['productionDate'] = productionDate;
+ map['edd'] = edd;
+ map['technicalInspectionDate'] = technicalInspectionDate;
+ map['deliveryInspectionDate'] = deliveryInspectionDate;
+ map['endUserAcceptanceDate'] = endUserAcceptanceDate;
+ map['receivingCommittee'] = receivingCommittee;
+ if (siteWarrantyMonths != null) {
+ map['siteWarrantyMonths'] = siteWarrantyMonths.toJson();
+ }
+ if (extendedWarrantyMonths != null) {
+ map['extendedWarrantyMonths'] = extendedWarrantyMonths.toJson();
+ }
+ if (remainderWarrantyMonths != null) {
+ map['remainderWarrantyMonths'] = remainderWarrantyMonths.toJson();
+ }
+ map['eomWarrantyMonthsNo'] = eomWarrantyMonthsNo;
+ map['warrantyValue'] = warrantyValue;
+ map['warrantyEndDate'] = warrantyEndDate;
+ map['warrantyContractConditions'] = warrantyContractConditions;
+ if (technicalGuidanceBooks != null) {
+ map['technicalGuidanceBooks'] = technicalGuidanceBooks.map((v) => v.toJson()).toList();
+ }
+ map['comment'] = comment;
+ map['tagCode'] = tagCode;
+ return map;
+ }
+}
+
+class AssetInfo {
+ AssetInfo({
+ this.id,
+ this.assetSerialNo,
+ this.assetNumber,
+ this.tagCode,
+ this.systemId,
+ this.assetName,
+ });
+
+ AssetInfo.fromJson(dynamic json) {
+ id = json['id'];
+ assetSerialNo = json['assetSerialNo'];
+ assetNumber = json['assetNumber'];
+ tagCode = json['tagCode'];
+ systemId = json['systemId'];
+ assetName = json['assetName'];
+ }
+
+ num id;
+ String assetSerialNo;
+ String assetNumber;
+ String tagCode;
+ String systemId;
+ String assetName;
+
+ AssetInfo copyWith({
+ num id,
+ String assetSerialNo,
+ String assetNumber,
+ String tagCode,
+ String systemId,
+ String assetName,
+ }) =>
+ AssetInfo(
+ id: id ?? this.id,
+ assetSerialNo: assetSerialNo ?? this.assetSerialNo,
+ assetNumber: assetNumber ?? this.assetNumber,
+ tagCode: tagCode ?? this.tagCode,
+ systemId: systemId ?? this.systemId,
+ assetName: assetName ?? this.assetName,
+ );
+
+ Map toJson() {
+ final map = {};
+ map['id'] = id;
+ map['assetSerialNo'] = assetSerialNo;
+ map['assetNumber'] = assetNumber;
+ map['tagCode'] = tagCode;
+ map['systemId'] = systemId;
+ map['assetName'] = assetName;
+ return map;
+ }
+}
diff --git a/lib/models/asset/asset_transfer.dart b/lib/models/asset/asset_transfer.dart
new file mode 100644
index 00000000..d44ab4fa
--- /dev/null
+++ b/lib/models/asset/asset_transfer.dart
@@ -0,0 +1,223 @@
+import 'asset_transfer_attachment.dart';
+
+class AssetTransfer {
+ AssetTransfer({
+ this.id,
+ this.transferNo,
+ this.transferCode,
+ this.assetId,
+ this.destSiteId,
+ this.destBuildingId,
+ this.destFloorId,
+ this.destDepartmentId,
+ this.destRoom,
+ this.senderSiteId,
+ this.senderBuildingId,
+ this.senderFloorId,
+ this.senderDepartmentId,
+ this.senderRoom,
+ this.senderAssignedEmployeeId,
+ this.senderMachineStatusId,
+ this.senderComment,
+ this.senderStartDate,
+ this.senderEndDate,
+ this.senderWorkingHours,
+ this.senderTravelingHours,
+ this.senderEngSignature,
+ this.senderAttachments,
+ this.receiverAssignedEmployeeId,
+ this.receiverMachineStatusId,
+ this.receiverComment,
+ this.receiverStartDate,
+ this.receiverEndDate,
+ this.receiverWorkingHours,
+ this.receiverTravelingHours,
+ this.receiverEngSignature,
+ this.receiverAttachments,
+ });
+
+ AssetTransfer.fromJson(dynamic json) {
+ id = json['id'];
+ transferNo = json['transferNo'];
+ transferCode = json['transferCode'];
+ assetId = json['assetId'];
+ destSiteId = json['destSiteId'];
+ destBuildingId = json['destBuildingId'];
+ destFloorId = json['destFloorId'];
+ destDepartmentId = json['destDepartmentId'];
+ destRoom = json['destRoom'];
+ senderSiteId = json['senderSiteId'];
+ senderBuildingId = json['senderBuildingId'];
+ senderFloorId = json['senderFloorId'];
+ senderDepartmentId = json['senderDepartmentId'];
+ senderRoom = json['senderRoom'];
+ senderAssignedEmployeeId = json['senderAssignedEmployeeId'];
+ senderMachineStatusId = json['senderMachineStatusId'];
+ senderComment = json['senderComment'];
+ senderStartDate = json['senderStartDate'];
+ senderEndDate = json['senderEndDate'];
+ senderWorkingHours = json['senderWorkingHours'];
+ senderTravelingHours = json['senderTravelingHours'];
+ senderEngSignature = json['senderEngSignature'];
+ if (json['senderAttachments'] != null) {
+ senderAttachments = [];
+ json['senderAttachments'].forEach((v) {
+ senderAttachments.add(AssetTransferAttachment.fromJson(v));
+ });
+ }
+ receiverAssignedEmployeeId = json['receiverAssignedEmployeeId'];
+ receiverMachineStatusId = json['receiverMachineStatusId'];
+ receiverComment = json['receiverComment'];
+ receiverStartDate = json['receiverStartDate'];
+ receiverEndDate = json['receiverEndDate'];
+ receiverWorkingHours = json['receiverWorkingHours'];
+ receiverTravelingHours = json['receiverTravelingHours'];
+ receiverEngSignature = json['receiverEngSignature'];
+ if (json['receiverAttachments'] != null) {
+ receiverAttachments = [];
+ json['receiverAttachments'].forEach((v) {
+ receiverAttachments.add(AssetTransferAttachment.fromJson(v));
+ });
+ }
+ }
+ num id;
+ num transferNo;
+ String transferCode;
+ num assetId;
+ num destSiteId;
+ num destBuildingId;
+ num destFloorId;
+ num destDepartmentId;
+ String destRoom;
+ num senderSiteId;
+ num senderBuildingId;
+ num senderFloorId;
+ num senderDepartmentId;
+ String senderRoom;
+ String senderAssignedEmployeeId;
+ num senderMachineStatusId;
+ String senderComment;
+ String senderStartDate;
+ String senderEndDate;
+ String senderWorkingHours;
+ String senderTravelingHours;
+ String senderEngSignature;
+ List senderAttachments;
+ String receiverAssignedEmployeeId;
+ num receiverMachineStatusId;
+ String receiverComment;
+ String receiverStartDate;
+ String receiverEndDate;
+ String receiverWorkingHours;
+ String receiverTravelingHours;
+ String receiverEngSignature;
+ List receiverAttachments;
+ AssetTransfer copyWith({
+ num id,
+ num transferNo,
+ String transferCode,
+ num assetId,
+ num destSiteId,
+ num destBuildingId,
+ num destFloorId,
+ num destDepartmentId,
+ String destRoom,
+ num senderSiteId,
+ num senderBuildingId,
+ num senderFloorId,
+ num senderDepartmentId,
+ String senderRoom,
+ String senderAssignedEmployeeId,
+ num senderMachineStatusId,
+ String senderComment,
+ String senderStartDate,
+ String senderEndDate,
+ String senderWorkingHours,
+ String senderTravelingHours,
+ String senderEngSignature,
+ List senderAttachments,
+ String receiverAssignedEmployeeId,
+ num receiverMachineStatusId,
+ String receiverComment,
+ String receiverStartDate,
+ String receiverEndDate,
+ String receiverWorkingHours,
+ String receiverTravelingHours,
+ String receiverEngSignature,
+ List receiverAttachments,
+ }) =>
+ AssetTransfer(
+ id: id ?? this.id,
+ transferNo: transferNo ?? this.transferNo,
+ transferCode: transferCode ?? this.transferCode,
+ assetId: assetId ?? this.assetId,
+ destSiteId: destSiteId ?? this.destSiteId,
+ destBuildingId: destBuildingId ?? this.destBuildingId,
+ destFloorId: destFloorId ?? this.destFloorId,
+ destDepartmentId: destDepartmentId ?? this.destDepartmentId,
+ destRoom: destRoom ?? this.destRoom,
+ senderSiteId: senderSiteId ?? this.senderSiteId,
+ senderBuildingId: senderBuildingId ?? this.senderBuildingId,
+ senderFloorId: senderFloorId ?? this.senderFloorId,
+ senderDepartmentId: senderDepartmentId ?? this.senderDepartmentId,
+ senderRoom: senderRoom ?? this.senderRoom,
+ senderAssignedEmployeeId: senderAssignedEmployeeId ?? this.senderAssignedEmployeeId,
+ senderMachineStatusId: senderMachineStatusId ?? this.senderMachineStatusId,
+ senderComment: senderComment ?? this.senderComment,
+ senderStartDate: senderStartDate ?? this.senderStartDate,
+ senderEndDate: senderEndDate ?? this.senderEndDate,
+ senderWorkingHours: senderWorkingHours ?? this.senderWorkingHours,
+ senderTravelingHours: senderTravelingHours ?? this.senderTravelingHours,
+ senderEngSignature: senderEngSignature ?? this.senderEngSignature,
+ senderAttachments: senderAttachments ?? this.senderAttachments,
+ receiverAssignedEmployeeId: receiverAssignedEmployeeId ?? this.receiverAssignedEmployeeId,
+ receiverMachineStatusId: receiverMachineStatusId ?? this.receiverMachineStatusId,
+ receiverComment: receiverComment ?? this.receiverComment,
+ receiverStartDate: receiverStartDate ?? this.receiverStartDate,
+ receiverEndDate: receiverEndDate ?? this.receiverEndDate,
+ receiverWorkingHours: receiverWorkingHours ?? this.receiverWorkingHours,
+ receiverTravelingHours: receiverTravelingHours ?? this.receiverTravelingHours,
+ receiverEngSignature: receiverEngSignature ?? this.receiverEngSignature,
+ receiverAttachments: receiverAttachments ?? this.receiverAttachments,
+ );
+ Map toJson() {
+ final map = {};
+ map['id'] = id;
+ map['transferNo'] = transferNo;
+ map['transferCode'] = transferCode;
+ map['assetId'] = assetId;
+ map['destSiteId'] = destSiteId;
+ map['destBuildingId'] = destBuildingId;
+ map['destFloorId'] = destFloorId;
+ map['destDepartmentId'] = destDepartmentId;
+ map['destRoom'] = destRoom;
+ map['senderSiteId'] = senderSiteId;
+ map['senderBuildingId'] = senderBuildingId;
+ map['senderFloorId'] = senderFloorId;
+ map['senderDepartmentId'] = senderDepartmentId;
+ map['senderRoom'] = senderRoom;
+ map['senderAssignedEmployeeId'] = senderAssignedEmployeeId;
+ map['senderMachineStatusId'] = senderMachineStatusId;
+ map['senderComment'] = senderComment;
+ map['senderStartDate'] = senderStartDate;
+ map['senderEndDate'] = senderEndDate;
+ map['senderWorkingHours'] = senderWorkingHours;
+ map['senderTravelingHours'] = senderTravelingHours;
+ map['senderEngSignature'] = senderEngSignature;
+ if (senderAttachments != null) {
+ map['senderAttachments'] = senderAttachments.map((v) => v.toJson()).toList();
+ }
+ map['receiverAssignedEmployeeId'] = receiverAssignedEmployeeId;
+ map['receiverMachineStatusId'] = receiverMachineStatusId;
+ map['receiverComment'] = receiverComment;
+ map['receiverStartDate'] = receiverStartDate;
+ map['receiverEndDate'] = receiverEndDate;
+ map['receiverWorkingHours'] = receiverWorkingHours;
+ map['receiverTravelingHours'] = receiverTravelingHours;
+ map['receiverEngSignature'] = receiverEngSignature;
+ if (receiverAttachments != null) {
+ map['receiverAttachments'] = receiverAttachments.map((v) => v.toJson()).toList();
+ }
+ return map;
+ }
+}
diff --git a/lib/models/asset/asset_transfer_attachment.dart b/lib/models/asset/asset_transfer_attachment.dart
new file mode 100644
index 00000000..d202d2e7
--- /dev/null
+++ b/lib/models/asset/asset_transfer_attachment.dart
@@ -0,0 +1,27 @@
+class AssetTransferAttachment {
+ AssetTransferAttachment({
+ this.id,
+ this.attachmentName,
+ });
+
+ AssetTransferAttachment.fromJson(dynamic json) {
+ id = json['id'];
+ attachmentName = json['attachmentName'];
+ }
+ num id;
+ String attachmentName;
+ AssetTransferAttachment copyWith({
+ num id,
+ String attachmentName,
+ }) =>
+ AssetTransferAttachment(
+ id: id ?? this.id,
+ attachmentName: attachmentName ?? this.attachmentName,
+ );
+ Map toJson() {
+ final map = {};
+ map['id'] = id;
+ map['attachmentName'] = attachmentName;
+ return map;
+ }
+}
diff --git a/lib/models/asset/asset_transfer_search.dart b/lib/models/asset/asset_transfer_search.dart
new file mode 100644
index 00000000..79a5587d
--- /dev/null
+++ b/lib/models/asset/asset_transfer_search.dart
@@ -0,0 +1,43 @@
+import 'asset.dart';
+import 'asset_transfer.dart';
+
+class AssetTransferSearch extends AssetTransfer {
+ Asset asset;
+ int pageNumber = 10, pageSize;
+ bool mostRecent;
+
+ Map toSearch() {
+ final map = {};
+ map['pageSize'] = pageSize;
+ map['pageNumber'] = pageNumber;
+ map['id'] = id;
+ map['transferNo'] = transferNo;
+ map['transferCode'] = transferCode;
+ map['assetId'] = assetId;
+ map['destSiteId'] = destSiteId;
+ map['destBuildingId'] = destBuildingId;
+ map['destFloorId'] = destFloorId;
+ map['destDepartmentId'] = destDepartmentId;
+ map['destRoom'] = destRoom;
+ map['senderSiteId'] = senderSiteId;
+ map['senderBuildingId'] = senderBuildingId;
+ map['senderFloorId'] = senderFloorId;
+ map['senderDepartmentId'] = senderDepartmentId;
+ map['senderRoom'] = senderRoom;
+ map['senderAssignedEmployeeId'] = senderAssignedEmployeeId;
+ map['receiverAssignedEmployeeId'] = receiverAssignedEmployeeId;
+ map['mostRecent'] = mostRecent;
+ map['assetNumber'] = asset?.assetNumber;
+ map['assetSerialNo'] = asset?.assetSerialNo;
+ map['siteName'] = asset?.site?.custName;
+
+ /// TODO : the below parameters need to be discussed
+ // map['relatedToEmployeeId'] = "";
+ // map['assetGroup'] = {
+ // "id": 1,
+ // "name": "",
+ // "code": "",
+ // };
+ return map;
+ }
+}
diff --git a/lib/models/device/device_transfer_info.dart b/lib/models/asset/device_transfer_info.dart
similarity index 98%
rename from lib/models/device/device_transfer_info.dart
rename to lib/models/asset/device_transfer_info.dart
index ef03cd1b..5e4c5a21 100644
--- a/lib/models/device/device_transfer_info.dart
+++ b/lib/models/asset/device_transfer_info.dart
@@ -6,6 +6,7 @@ import 'package:test_sa/models/lookup.dart';
import '../timer_model.dart';
+@Deprecated("Use asset_transfer.dart instead of this one")
class DeviceTransferInfo {
String userId;
String comment;
diff --git a/lib/models/device/device_transfer_search.dart b/lib/models/asset/device_transfer_search.dart
similarity index 93%
rename from lib/models/device/device_transfer_search.dart
rename to lib/models/asset/device_transfer_search.dart
index 218e838d..038cc840 100644
--- a/lib/models/device/device_transfer_search.dart
+++ b/lib/models/asset/device_transfer_search.dart
@@ -1,9 +1,9 @@
-import 'package:test_sa/models/device/device.dart';
-
import '../hospital.dart';
+import 'asset.dart';
+@Deprecated("Use asset_transfer_search.dart instead of this one")
class DeviceTransferSearch {
- Device device;
+ Asset device;
String title, room;
bool mostRecent;
Hospital hospital;
diff --git a/lib/models/device/model.dart b/lib/models/asset/model.dart
similarity index 95%
rename from lib/models/device/model.dart
rename to lib/models/asset/model.dart
index 25732845..5981a1a6 100644
--- a/lib/models/device/model.dart
+++ b/lib/models/asset/model.dart
@@ -1,3 +1,4 @@
+@Deprecated("Use the class inside model_definition.dart")
class ModelDefinition {
int id;
String assetName;
diff --git a/lib/models/asset/model_definition.dart b/lib/models/asset/model_definition.dart
new file mode 100644
index 00000000..5d4e7311
--- /dev/null
+++ b/lib/models/asset/model_definition.dart
@@ -0,0 +1,149 @@
+import 'package:test_sa/models/asset/supplier.dart';
+
+class ModelDefinition {
+ ModelDefinition({
+ this.id,
+ this.assetName,
+ this.modelDefCode,
+ this.modelName,
+ this.manufacturerId,
+ this.manufacturerName,
+ this.supplierName,
+ this.replacementDate,
+ this.essentialEquipement,
+ this.businessCritical,
+ this.lifeSpan,
+ this.modelDefRelatedDefects,
+ this.suppliers,
+ });
+
+ ModelDefinition.fromJson(dynamic json) {
+ id = json['id'];
+ assetName = json['assetName'];
+ modelDefCode = json['modelDefCode'];
+ modelName = json['modelName'];
+ manufacturerId = json['manufacturerId'];
+ manufacturerName = json['manufacturerName'];
+ supplierName = json['supplierName'];
+ replacementDate = json['replacementDate'];
+ essentialEquipement = json['essentialEquipement'];
+ businessCritical = json['businessCritical'];
+ lifeSpan = json['lifeSpan'];
+ if (json['modelDefRelatedDefects'] != null) {
+ modelDefRelatedDefects = [];
+ json['modelDefRelatedDefects'].forEach((v) {
+ modelDefRelatedDefects.add(ModelDefRelatedDefects.fromJson(v));
+ });
+ }
+ if (json['suppliers'] != null) {
+ suppliers = [];
+ json['suppliers'].forEach((v) {
+ suppliers.add(Supplier.fromJson(v));
+ });
+ }
+ }
+ num id;
+ String assetName;
+ String modelDefCode;
+ String modelName;
+ num manufacturerId;
+ String manufacturerName;
+ dynamic supplierName;
+ String replacementDate;
+ String essentialEquipement;
+ String businessCritical;
+ num lifeSpan;
+ List modelDefRelatedDefects;
+ List suppliers;
+ ModelDefinition copyWith({
+ num id,
+ String assetName,
+ String modelDefCode,
+ String modelName,
+ num manufacturerId,
+ String manufacturerName,
+ dynamic supplierName,
+ String replacementDate,
+ String essentialEquipement,
+ String businessCritical,
+ num lifeSpan,
+ List modelDefRelatedDefects,
+ List suppliers,
+ }) =>
+ ModelDefinition(
+ id: id ?? this.id,
+ assetName: assetName ?? this.assetName,
+ modelDefCode: modelDefCode ?? this.modelDefCode,
+ modelName: modelName ?? this.modelName,
+ manufacturerId: manufacturerId ?? this.manufacturerId,
+ manufacturerName: manufacturerName ?? this.manufacturerName,
+ supplierName: supplierName ?? this.supplierName,
+ replacementDate: replacementDate ?? this.replacementDate,
+ essentialEquipement: essentialEquipement ?? this.essentialEquipement,
+ businessCritical: businessCritical ?? this.businessCritical,
+ lifeSpan: lifeSpan ?? this.lifeSpan,
+ modelDefRelatedDefects: modelDefRelatedDefects ?? this.modelDefRelatedDefects,
+ suppliers: suppliers ?? this.suppliers,
+ );
+ Map toJson() {
+ final map = {};
+ map['id'] = id;
+ map['assetName'] = assetName;
+ map['modelDefCode'] = modelDefCode;
+ map['modelName'] = modelName;
+ map['manufacturerId'] = manufacturerId;
+ map['manufacturerName'] = manufacturerName;
+ map['supplierName'] = supplierName;
+ map['replacementDate'] = replacementDate;
+ map['essentialEquipement'] = essentialEquipement;
+ map['businessCritical'] = businessCritical;
+ map['lifeSpan'] = lifeSpan;
+ if (modelDefRelatedDefects != null) {
+ map['modelDefRelatedDefects'] = modelDefRelatedDefects.map((v) => v.toJson()).toList();
+ }
+ if (suppliers != null) {
+ map['suppliers'] = suppliers.map((v) => v.toJson()).toList();
+ }
+ return map;
+ }
+}
+
+class ModelDefRelatedDefects {
+ ModelDefRelatedDefects({
+ this.id,
+ this.defectName,
+ this.workPerformed,
+ this.estimatedTime,
+ });
+
+ ModelDefRelatedDefects.fromJson(dynamic json) {
+ id = json['id'];
+ defectName = json['defectName'];
+ workPerformed = json['workPerformed'];
+ estimatedTime = json['estimatedTime'];
+ }
+ num id;
+ String defectName;
+ String workPerformed;
+ String estimatedTime;
+ ModelDefRelatedDefects copyWith({
+ num id,
+ String defectName,
+ String workPerformed,
+ String estimatedTime,
+ }) =>
+ ModelDefRelatedDefects(
+ id: id ?? this.id,
+ defectName: defectName ?? this.defectName,
+ workPerformed: workPerformed ?? this.workPerformed,
+ estimatedTime: estimatedTime ?? this.estimatedTime,
+ );
+ Map toJson() {
+ final map = {};
+ map['id'] = id;
+ map['defectName'] = defectName;
+ map['workPerformed'] = workPerformed;
+ map['estimatedTime'] = estimatedTime;
+ return map;
+ }
+}
diff --git a/lib/models/asset/supplier.dart b/lib/models/asset/supplier.dart
new file mode 100644
index 00000000..3cc71664
--- /dev/null
+++ b/lib/models/asset/supplier.dart
@@ -0,0 +1,27 @@
+class Supplier {
+ Supplier({
+ this.id,
+ this.suppliername,
+ });
+
+ Supplier.fromJson(dynamic json) {
+ id = json['id'];
+ suppliername = json['suppliername'];
+ }
+ num id;
+ String suppliername;
+ Supplier copyWith({
+ num id,
+ String suppliername,
+ }) =>
+ Supplier(
+ id: id ?? this.id,
+ suppliername: suppliername ?? this.suppliername,
+ );
+ Map toJson() {
+ final map = {};
+ map['id'] = id;
+ map['suppliername'] = suppliername;
+ return map;
+ }
+}
diff --git a/lib/models/asset/technical_guidance_book.dart b/lib/models/asset/technical_guidance_book.dart
new file mode 100644
index 00000000..17458c6a
--- /dev/null
+++ b/lib/models/asset/technical_guidance_book.dart
@@ -0,0 +1,28 @@
+import '../lookup.dart';
+
+class TechnicalGuidanceBook {
+ TechnicalGuidanceBook({this.id, this.guidanceBook});
+
+ TechnicalGuidanceBook.fromJson(dynamic json) {
+ id = json['id'];
+ guidanceBook = json['guidanceBook'] != null ? Lookup.fromJson(json['guidanceBook']) : null;
+ }
+ num id;
+ Lookup guidanceBook;
+ TechnicalGuidanceBook copyWith({
+ num id,
+ Lookup guidanceBook,
+ }) =>
+ TechnicalGuidanceBook(
+ id: id ?? this.id,
+ guidanceBook: guidanceBook ?? this.guidanceBook,
+ );
+ Map toJson() {
+ final map = {};
+ map['id'] = id;
+ if (guidanceBook != null) {
+ map['guidanceBook'] = guidanceBook.toJson();
+ }
+ return map;
+ }
+}
diff --git a/lib/models/call_request_for_work_order_model.dart b/lib/models/call_request_for_work_order_model.dart
index 35b34551..0603eb2e 100644
--- a/lib/models/call_request_for_work_order_model.dart
+++ b/lib/models/call_request_for_work_order_model.dart
@@ -63,6 +63,7 @@ class CallRequestForWorkOrder {
}
}
+@Deprecated("")
class Asset {
int id;
String assetSerialNo;
diff --git a/lib/models/device/device.dart b/lib/models/device/device.dart
deleted file mode 100644
index fe6a8409..00000000
--- a/lib/models/device/device.dart
+++ /dev/null
@@ -1,89 +0,0 @@
-import 'package:test_sa/models/hospital.dart';
-import 'package:test_sa/models/lookup.dart';
-
-import 'model.dart';
-
-class Device {
- int id;
- String serialNumber;
- String number;
- String assetName;
- String destBuildingName;
- int destBuildingId;
- String destDepartmentName;
- int destDepartmentId;
- String destRoom;
- String destFloor;
- int destFloorId;
- String destSiteName;
-
- // String brand;
- // String model;
- ModelDefinition modelDefinition;
- Hospital hospital;
-
- Device({
- this.id,
- this.serialNumber,
- this.number,
- this.assetName,
- this.hospital,
- this.destBuildingName,
- this.destDepartmentName,
- this.destRoom,
- this.destFloor,
- this.destSiteName,
- // this.brand,
- // this.model,
- this.modelDefinition,
- this.destFloorId,
- this.destDepartmentId,
- this.destBuildingId,
- });
-
- factory Device.fromJson(Map parsedJson, {bool startKeyWithDest = true}) {
- return Device(
- id: parsedJson["id"],
- serialNumber: parsedJson["assetSerialNo"],
- number: parsedJson["assetNumber"],
- assetName: parsedJson["assetName"],
- modelDefinition: ModelDefinition.fromJson(parsedJson["modelDefinition"]),
- hospital: Hospital.fromJson(parsedJson["site"]),
- destBuildingName: startKeyWithDest ? parsedJson["destBuildingName"] : parsedJson['building']['name'],
- destBuildingId: startKeyWithDest ? parsedJson["destBuildingName"] : parsedJson['building']['id'],
- destDepartmentName: startKeyWithDest ? parsedJson["destDepartmentName"] : parsedJson['department']['departmentName'],
- destDepartmentId: startKeyWithDest ? parsedJson["destDepartmentName"] : parsedJson['department']['id'],
- destRoom: startKeyWithDest ? parsedJson["destRoom"] : parsedJson['room'],
- destFloor: startKeyWithDest ? parsedJson["destFloor"] : parsedJson['floor']['name'],
- destFloorId: startKeyWithDest ? null : parsedJson['floor']['id'],
- destSiteName: parsedJson['destSiteName']
- // parsedJson["modelDefinition"] == null ? "" :
- // parsedJson["modelDefinition"]["manufacturerName"],
- // model: parsedJson["modelDefinition"] == null ? "" :
- // parsedJson["modelDefinition"]["modelName"],
- );
- }
-
- factory Device.fromDevice(Device device) {
- return Device(
- id: device.id,
- serialNumber: device.serialNumber,
- number: device.number,
- // brand: device.brand,
- // model: device.model,
- );
- }
-
- Map toMap(Lookup assetType) {
- return {
- 'id': id,
- 'assetSerialNo': serialNumber,
- 'assetNumber': number,
- 'assetName': assetName,
- 'modelDefinition': modelDefinition.toJson(),
- 'site': hospital.toMap(),
- 'AssetType': assetType.toMap(),
- "supplier": {"id": 0, "suppliername": "string"},
- };
- }
-}
diff --git a/lib/models/device/device_transfer.dart b/lib/models/device/device_transfer.dart
deleted file mode 100644
index 75e9ef75..00000000
--- a/lib/models/device/device_transfer.dart
+++ /dev/null
@@ -1,132 +0,0 @@
-import 'dart:io';
-
-import 'package:test_sa/controllers/api_routes/urls.dart';
-import 'package:test_sa/models/department.dart';
-import 'package:test_sa/models/device/device.dart';
-import 'package:test_sa/models/device/device_transfer_info.dart';
-import 'package:test_sa/models/hospital.dart';
-import 'package:test_sa/models/lookup.dart';
-
-import '../timer_model.dart';
-
-class DeviceTransfer {
- int id;
- String userId;
- String title;
- Device device;
- DeviceTransferInfo sender;
- DeviceTransferInfo receiver;
- String createdOn;
-
- DeviceTransfer({
- this.id,
- this.device,
- this.title,
- this.userId,
- this.sender,
- this.receiver,
- this.createdOn,
- });
-
- bool validate() {
- if (device == null) return false;
- return receiver.validate();
- }
-
- fromDeviceTransfer(DeviceTransfer old) {
- id = old.id;
- title = old.title;
- userId = old.userId;
- device = Device.fromDevice(old.device);
- final sender = DeviceTransferInfo();
- sender.fromDetails(old.sender);
- this.sender = sender;
- final receiver = DeviceTransferInfo();
- receiver.fromDetails(old.receiver);
- this.receiver = receiver;
- createdOn = old.createdOn;
- }
-
- factory DeviceTransfer.fromJson(Map parsedJson) {
- List senderFiles = [];
- if (parsedJson["senderAttachments"] != null && parsedJson["senderAttachments"] is List) {
- List list = parsedJson["senderAttachments"];
- senderFiles = list.map((e) => (URLs.getFileUrl(e["attachmentName"]))).toList();
- }
- List receiverFiles = [];
- if (parsedJson["receiverAttachments"] != null && parsedJson["receiverAttachments"] is List) {
- List list = parsedJson["receiverAttachments"];
- receiverFiles = list.map((e) => (URLs.getFileUrl(e["attachmentName"]))).toList();
- }
- return DeviceTransfer(
- id: parsedJson["id"],
- title: parsedJson["transferCode"],
- userId: parsedJson["uid"],
- createdOn: parsedJson['createdOn'],
- device: Device(
- id: parsedJson["assetId"],
- number: parsedJson["assetNumber"],
- assetName: parsedJson["assetName"],
- serialNumber: parsedJson["assetSerialNo"],
- destBuildingId: parsedJson["destBuildingId"],
- destBuildingName: parsedJson["destBuildingName"],
- destDepartmentId: parsedJson["destDepartmentId"],
- destDepartmentName: parsedJson["destDepartmentName"],
- destFloorId: parsedJson["destFloorId"],
- destFloor: parsedJson["destFloorName"],
- destRoom: parsedJson["destRoom"],
- destSiteName: parsedJson["destSiteName"],
- ),
- sender: DeviceTransferInfo(
- travelingHours: parsedJson["senderTravelingHours"],
- comment: parsedJson["senderComment"],
- workingHours: parsedJson["senderWorkingHours"],
- attachments: senderFiles?.map((e) => File(e))?.toList(),
- timer: TimerModel(
- startAt: DateTime.tryParse(parsedJson["senderStartDate"] ?? ""),
- endAt: DateTime.tryParse(parsedJson["senderEndDate"] ?? ""),
- durationInSecond: ((parsedJson["workingHours"] ?? 0) * 60 * 60).toInt(),
- ),
- // startDate: parsedJson["senderStartDate"] == null ? null : DateTime.parse(parsedJson["senderStartDate"]),
- // endDate: parsedJson["senderEndDate"] == null ? null : DateTime.parse(parsedJson["senderEndDate"]),
- userId: parsedJson["senderAssignedEmployeeId"],
- userName: parsedJson["senderAssignedEmployeeName"],
- assignedEmployeeName: parsedJson["senderAssignedEmployeeName"],
- client: Hospital(id: parsedJson["senderSiteId"], name: parsedJson["senderSiteName"]),
- department: Department(
- id: parsedJson["senderDepartmentId"],
- name: parsedJson["senderDepartmentName"],
- ),
- engSignature: URLs.getFileUrl(parsedJson["senderEngSignature"]),
- status: Lookup(
- id: parsedJson["senderMachineStatusId"],
- name: parsedJson["senderMachineStatusName"],
- ),
- ),
- receiver: DeviceTransferInfo(
- travelingHours: parsedJson["receiverTravelingHours"],
- comment: parsedJson["receiverComment"],
- workingHours: parsedJson["receiverWorkingHours"],
- attachments: receiverFiles?.map((e) => File(e))?.toList(),
- timer: parsedJson["receiverStartDate"] != null || parsedJson["receiverEndDate"] != null
- ? TimerModel(startAt: DateTime.tryParse(parsedJson["receiverStartDate"] ?? ""), endAt: DateTime.tryParse(parsedJson["receiverEndDate"] ?? ""))
- : null,
- // startDate: parsedJson["receiverStartDate"] == null ? null : DateTime.parse(parsedJson["receiverStartDate"]),
- // endDate: parsedJson["receiverEndDate"] == null ? null : DateTime.parse(parsedJson["receiverEndDate"]),
- userId: parsedJson["receiverAssignedEmployeeId"],
- userName: parsedJson["receiverAssignedEmployeeName"],
- assignedEmployeeName: parsedJson["receiverAssignedEmployeeName"],
- client: Hospital(id: parsedJson["destSiteId"], name: parsedJson["destSiteName"]),
- department: Department(
- id: parsedJson["destDepartmentId"],
- name: parsedJson["destDepartmentName"],
- ),
- engSignature: URLs.getFileUrl(parsedJson["receiverEngSignature"]),
- status: Lookup(
- id: parsedJson["receiverMachineStatusId"],
- name: parsedJson["receiverMachineStatusName"],
- ),
- ),
- );
- }
-}
diff --git a/lib/models/lookup.dart b/lib/models/lookup.dart
index 8080a79b..0878bae1 100644
--- a/lib/models/lookup.dart
+++ b/lib/models/lookup.dart
@@ -11,7 +11,7 @@ class Lookup extends Base {
@override
int get hashCode => id?.hashCode ?? value?.hashCode;
- toMap() {
+ toJson() {
return {"id": id, "name": name, "value": value};
}
diff --git a/lib/models/new_models/department.dart b/lib/models/new_models/department.dart
index 1a9158e1..2f0a5a84 100644
--- a/lib/models/new_models/department.dart
+++ b/lib/models/new_models/department.dart
@@ -11,7 +11,7 @@ class Department extends Base {
Department.fromJson(dynamic json) {
id = json['id'];
identifier = id.toString();
- departmentName = json['departmentName'];
+ departmentName = json['departmentName'] ?? json['name'];
name = departmentName;
departmentCode = json['departmentCode'];
ntCode = json['ntCode'];
diff --git a/lib/models/new_models/gas_refill_model.dart b/lib/models/new_models/gas_refill_model.dart
index a68305ba..697ea163 100644
--- a/lib/models/new_models/gas_refill_model.dart
+++ b/lib/models/new_models/gas_refill_model.dart
@@ -146,7 +146,7 @@ class GasRefillModel {
map['assignedEmployee'] = assignedEmployee.toJson();
}
if (status != null) {
- map['status'] = status.toMap();
+ map['status'] = status.toJson();
}
if (gazRefillDetails != null) {
map['gazRefillDetails'] = gazRefillDetails.map((v) => v.toJson()).toList();
@@ -216,13 +216,13 @@ class GasRefillDetails {
final map = {};
map['id'] = id;
if (gasType != null) {
- map['gasType'] = gasType.toMap();
+ map['gasType'] = gasType.toJson();
}
if (cylinderType != null) {
- map['cylinderType'] = cylinderType.toMap();
+ map['cylinderType'] = cylinderType.toJson();
}
if (cylinderSize != null) {
- map['cylinderSize'] = cylinderSize.toMap();
+ map['cylinderSize'] = cylinderSize.toJson();
}
map['requestedQty'] = requestedQty;
map['deliverdQty'] = deliverdQty;
diff --git a/lib/models/service_report.dart b/lib/models/service_report.dart
index 7575bce3..7a4bd061 100644
--- a/lib/models/service_report.dart
+++ b/lib/models/service_report.dart
@@ -2,7 +2,7 @@ import 'dart:typed_data';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:test_sa/controllers/api_routes/urls.dart';
-import 'package:test_sa/models/device/device.dart';
+import 'package:test_sa/models/asset/asset.dart';
import 'package:test_sa/models/engineer.dart';
import 'package:test_sa/models/fault_description.dart';
import 'package:test_sa/models/lookup.dart';
@@ -35,7 +35,7 @@ class ServiceReport {
String invoiceCode;
List parts;
List files;
- Device device;
+ Asset device;
String quantity;
String jobSheetNumber;
TimerModel timer;
@@ -91,9 +91,9 @@ class ServiceReport {
if (returnToService != null) _map["replacementDate"] = returnToService.toIso8601String();
//if(serviceType != null) _map["service_type"] = serviceType.id.toString();
- if (equipmentStatus != null) _map["equipmentStatus"] = equipmentStatus?.toMap();
- if (type != null) _map["typeOfWO"] = type?.toMap();
- if (assetType != null) _map["TypeOfWO"] = assetType?.toMap();
+ if (equipmentStatus != null) _map["equipmentStatus"] = equipmentStatus?.toJson();
+ if (type != null) _map["typeOfWO"] = type?.toJson();
+ if (assetType != null) _map["TypeOfWO"] = assetType?.toJson();
//if(faultDescriptionId != null && faultDescriptionId.isNotEmpty) _map["fault_description"] = faultDescriptionId;
//if(workHours != null && workHours.isNotEmpty) _map["working_hours"] = workHours;
if (timer != null) {
@@ -121,18 +121,19 @@ class ServiceReport {
if (device != null && device.id != null) {
_map["callRequest"] = {
"id": request.id,
- "asset": device?.toMap(assetType),
+ // "asset": device?.toJson(assetType),
+ "asset": device?.toJson(),
};
_map["callRequest"]["asset"]["invoiceNumber"] = invoiceNumber;
}
_map["AssignedEmployee"] = engineer?.toMap();
- _map["repairLocation"] = repairLocation?.toMap();
+ _map["repairLocation"] = repairLocation?.toJson();
//if(quantity != null && quantity.isNotEmpty) _map["qty"] = quantity;
//if(endDate != null) _map["end_date"] = (endDate.millisecondsSinceEpoch ~/ 1000).toString();
- if (reason != null) _map["reason"] = reason.toMap();
+ if (reason != null) _map["reason"] = reason.toJson();
//if(operatingHours != null && operatingHours.isNotEmpty) _map["operation_hours"] = operatingHours;
- if (callLastSituation != null) _map["calllastSituation"] = callLastSituation.toMap();
- if (currentSituation != null) _map["currentSituation"] = currentSituation.toMap();
+ if (callLastSituation != null) _map["calllastSituation"] = callLastSituation.toJson();
+ if (currentSituation != null) _map["currentSituation"] = currentSituation.toJson();
//if(image != null) _map["image"] = image;
//if(invoiceCode != null) _map["invoice_no"] = invoiceCode;
//if(invoiceNumber != null) _map["invoice_code"] = invoiceNumber;
@@ -234,7 +235,7 @@ class ServiceReport {
durationInSecond: ((parsedJson["workingHours"] ?? 0) * 60 * 60).toInt(),
),
//workPreformed: parsedJson["work_performed"],
- device: Device.fromJson(parsedJson["callRequest"]["asset"]),
+ device: Asset.fromJson(parsedJson["callRequest"]["asset"]),
signatureNurse: URLs.getFileUrl(parsedJson["nurseSignature"]),
signatureEngineer: URLs.getFileUrl(parsedJson["engSignature"]),
comment: parsedJson['comment'],
diff --git a/lib/models/service_request/search_work_order.dart b/lib/models/service_request/search_work_order.dart
index cd2cda55..10b0a483 100644
--- a/lib/models/service_request/search_work_order.dart
+++ b/lib/models/service_request/search_work_order.dart
@@ -114,7 +114,7 @@ class SearchWorkOrder {
workOrderYear = wo.workOrderYear ?? workOrderYear;
workOrderSequennce = wo.workOrderSequennce ?? workOrderSequennce;
callRequest = wo.callRequest ?? callRequest;
- if (wo.assetType != null) assetType = Lookup.fromJson((wo.assetType)?.toMap() ?? {});
+ if (wo.assetType != null) assetType = Lookup.fromJson((wo.assetType)?.toJson() ?? {});
if (wo.assignedEmployee != null) assignedEmployee = AssignedEmployee.fromJson((wo.assignedEmployee)?.toJson() ?? {});
visitDate = wo.visitDate ?? visitDate;
assistantEmployees = (wo.assistantEmployees ?? assistantEmployees)
@@ -127,10 +127,10 @@ class SearchWorkOrder {
if (wo.supplier != null) supplier = SupplierModel.fromJson((wo.supplier)?.toJson() ?? {});
vendorTicketNumber = wo.vendorTicketNumber ?? vendorTicketNumber;
contactPersonWorkOrders = (wo.contactPersonWorkOrders ?? contactPersonWorkOrders)?.map((e) => ContactPersonWorkOrders.fromJson(e?.toJson() ?? {}))?.toList() ?? [];
- calllastSituation = Lookup.fromJson((wo.calllastSituation ?? calllastSituation)?.toMap() ?? {});
- if (wo.currentSituation != null) currentSituation = Lookup.fromJson((wo.currentSituation)?.toMap() ?? {});
- repairLocation = Lookup.fromJson((wo.repairLocation ?? repairLocation)?.toMap() ?? {});
- reason = Lookup.fromJson((wo.reason ?? reason)?.toMap() ?? {});
+ calllastSituation = Lookup.fromJson((wo.calllastSituation ?? calllastSituation)?.toJson() ?? {});
+ if (wo.currentSituation != null) currentSituation = Lookup.fromJson((wo.currentSituation)?.toJson() ?? {});
+ repairLocation = Lookup.fromJson((wo.repairLocation ?? repairLocation)?.toJson() ?? {});
+ reason = Lookup.fromJson((wo.reason ?? reason)?.toJson() ?? {});
// startofWorkTime = wo.startofWorkTime ?? startofWorkTime;
// endofWorkTime = wo.endofWorkTime ?? endofWorkTime;
timer = wo.timer ?? timer;
@@ -142,7 +142,7 @@ class SearchWorkOrder {
reviewComment = wo.reviewComment ?? reviewComment;
comment = wo.comment ?? comment;
attachmentsWorkOrder = (wo.attachmentsWorkOrder ?? attachmentsWorkOrder)?.map((e) => AttachmentsWorkOrder.fromJson(e?.toJson() ?? {}))?.toList() ?? [];
- equipmentStatus = Lookup.fromJson((wo.equipmentStatus ?? equipmentStatus)?.toMap() ?? {});
+ equipmentStatus = Lookup.fromJson((wo.equipmentStatus ?? equipmentStatus)?.toJson() ?? {});
suppEngineerWorkOrders = (wo.suppEngineerWorkOrders ?? suppEngineerWorkOrders)?.map((e) => SuppEngineerWorkOrders.fromJson(e?.toJson() ?? {}))?.toList() ?? [];
engSignature = wo.engSignature ?? engSignature;
nurseSignature = wo.nurseSignature ?? nurseSignature;
@@ -269,7 +269,7 @@ class SearchWorkOrder {
map['callRequest'] = callRequest.toJson();
}
if (assetType != null) {
- map['assetType'] = assetType.toMap();
+ map['assetType'] = assetType.toJson();
}
if (assignedEmployee != null) {
map['assignedEmployee'] = assignedEmployee.toJson();
@@ -286,14 +286,14 @@ class SearchWorkOrder {
map['contactPersonWorkOrders'] = contactPersonWorkOrders.map((v) => v.toJson()).toList();
}
if (calllastSituation != null) {
- map['calllastSituation'] = calllastSituation.toMap();
+ map['calllastSituation'] = calllastSituation.toJson();
}
- map['currentSituation'] = currentSituation?.toMap();
+ map['currentSituation'] = currentSituation?.toJson();
if (repairLocation?.id != null) {
- map['repairLocation'] = repairLocation.toMap();
+ map['repairLocation'] = repairLocation.toJson();
}
if (reason != null && reason.id != null) {
- map['reason'] = reason.toMap();
+ map['reason'] = reason.toJson();
}
// map['startofWorkTime'] = startofWorkTime;
// map['endofWorkTime'] = endofWorkTime;
@@ -315,7 +315,7 @@ class SearchWorkOrder {
map['attachmentsWorkOrder'] = attachmentsWorkOrder.map((v) => v.toJson()).toList();
}
if (equipmentStatus != null && equipmentStatus.id != null) {
- map['equipmentStatus'] = equipmentStatus.toMap();
+ map['equipmentStatus'] = equipmentStatus.toJson();
}
if (suppEngineerWorkOrders != null) {
map['suppEngineerWorkOrders'] = suppEngineerWorkOrders.map((v) => v.toJson()).toList();
@@ -412,13 +412,13 @@ class WoParentDto {
Map toJson() {
final map = {};
if (callLastSituation != null) {
- map['callLastSituation'] = callLastSituation.toMap();
+ map['callLastSituation'] = callLastSituation.toJson();
}
if (supplier != null) {
map['supplier'] = supplier.toJson();
}
if (assetType != null) {
- map['assetType'] = assetType.toMap();
+ map['assetType'] = assetType.toJson();
}
map['vendorTicketNumber'] = vendorTicketNumber;
map['callId'] = callId ?? 0;
@@ -430,10 +430,10 @@ class WoParentDto {
map['suppEngineerWorkOrders'] = suppEngineerWorkOrders.map((v) => v.toJson()).toList();
}
if (equipmentStatus != null) {
- map['equipmentStatus'] = equipmentStatus.toMap();
+ map['equipmentStatus'] = equipmentStatus.toJson();
}
if (currentSituation != null) {
- map['currentSituation'] = currentSituation.toMap();
+ map['currentSituation'] = currentSituation.toJson();
}
return map;
}
@@ -1372,7 +1372,7 @@ class CallRequest {
map['status'] = status.toJson();
}
if (callLastSituation != null) {
- map['callLastSituation'] = callLastSituation.toMap();
+ map['callLastSituation'] = callLastSituation.toJson();
}
if (defectType != null) {
map['defectType'] = defectType.toJson();
@@ -1848,7 +1848,7 @@ class Asset {
map['parentAsset'] = parentAsset.toJson();
}
- map['assetType'] = assetType?.toMap();
+ map['assetType'] = assetType?.toJson();
if (site != null) {
map['site'] = site.toJson();
}
diff --git a/lib/models/service_request/service_request.dart b/lib/models/service_request/service_request.dart
index 5769d0c1..5808fce9 100644
--- a/lib/models/service_request/service_request.dart
+++ b/lib/models/service_request/service_request.dart
@@ -1,5 +1,5 @@
import 'package:test_sa/controllers/api_routes/urls.dart';
-import 'package:test_sa/models/device/device.dart';
+import 'package:test_sa/models/asset/asset.dart';
import 'package:test_sa/models/fault_description.dart';
import 'package:test_sa/models/lookup.dart';
@@ -42,7 +42,7 @@ class ServiceRequest {
Lookup requestedThrough;
Lookup firstAction;
Lookup loanAvailability;
- Device device;
+ Asset device;
ServiceRequest({
this.id,
@@ -128,7 +128,7 @@ class ServiceRequest {
visitDate: DateTime.tryParse(parsedJson["visitDate"] ?? "").toString().split(" ").first,
nextVisitDate: DateTime.tryParse(parsedJson["nextVisitDate"] ?? ""),
//workPerformed: parsedJson["workOrder"] != null ? parsedJson["workOrder"]["workPerformed"] : null,
- device: Device.fromJson(parsedJson["asset"]),
+ device: Asset.fromJson(parsedJson["asset"]),
reviewComment: parsedJson["reviewComment"],
type: Lookup.fromJson(parsedJson['typeofRequest']),
defectType: Lookup.fromJson(parsedJson['defectType']),
diff --git a/lib/models/service_request/service_request_search.dart b/lib/models/service_request/service_request_search.dart
index f6628672..d461c629 100644
--- a/lib/models/service_request/service_request_search.dart
+++ b/lib/models/service_request/service_request_search.dart
@@ -60,7 +60,7 @@ class ServiceRequestSearch {
}
if (statusValue != null) {
- search["status"] = statusValue.toMap();
+ search["status"] = statusValue.toJson();
}
if (deviceName != null && deviceName.isNotEmpty) {
@@ -80,7 +80,7 @@ class ServiceRequestSearch {
}
if (dateOperator != null && from != null) {
- search["requestedDateSymbol"] = dateOperator.toMap();
+ search["requestedDateSymbol"] = dateOperator.toJson();
search["requestedDateFrom"] = from;
}
if (dateOperator != null && to != null) {
diff --git a/lib/models/service_request/sub_work_order_details.dart b/lib/models/service_request/sub_work_order_details.dart
index 6e58d34c..48bcdcc2 100644
--- a/lib/models/service_request/sub_work_order_details.dart
+++ b/lib/models/service_request/sub_work_order_details.dart
@@ -58,8 +58,8 @@ class SubWorkOrderDetails {
Map toJson() {
final map = {};
- map['equipmentStatus'] = equipmentStatus?.toMap();
- map['reason'] = reason?.toMap();
+ map['equipmentStatus'] = equipmentStatus?.toJson();
+ map['reason'] = reason?.toJson();
map['faultDescription'] = faultDescription?.toJson();
if (sparePartsWorkOrders?.isNotEmpty ?? false) {
map['sparePartsWorkOrders'] = sparePartsWorkOrders?.map((e) => e.toJson())?.toList();
diff --git a/lib/new_views/common_widgets/app_floating_action_button.dart b/lib/new_views/common_widgets/app_floating_action_button.dart
index ac0ae631..d9a9e1af 100644
--- a/lib/new_views/common_widgets/app_floating_action_button.dart
+++ b/lib/new_views/common_widgets/app_floating_action_button.dart
@@ -4,8 +4,8 @@ import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
import 'package:test_sa/new_views/pages/new_gas_refill_request_page.dart';
-import 'package:test_sa/new_views/pages/new_service_request_page.dart';
import 'package:test_sa/new_views/pages/new_transfer_request_page.dart';
+import 'package:test_sa/views/pages/user/requests/create_request.dart';
import '../../models/enums/translation_keys.dart';
import '../app_style/app_color.dart';
@@ -52,10 +52,10 @@ class _AppFloatingActionButtonState extends State {
mainAxisSize: MainAxisSize.min,
children: [
const _FloatingButtonListTile(iconName: "gas_refill_request", label: TranslationKeys.gasRefillRequest, routeName: NewGasRefillRequestPage.routeName),
- const Divider().defaultStyle(context).paddingOnly(left: 16, right: 16),
+ const Divider().defaultStyle(context).paddingOnly(start: 16, end: 16),
const _FloatingButtonListTile(iconName: "transfer_request", label: TranslationKeys.transferRequest, routeName: NewTransferRequestPage.routeName),
- const Divider().defaultStyle(context).paddingOnly(left: 16, right: 16),
- const _FloatingButtonListTile(iconName: "service_request", label: TranslationKeys.serviceRequest, routeName: NewServiceRequestPage.routeName),
+ const Divider().defaultStyle(context).paddingOnly(start: 16, end: 16),
+ const _FloatingButtonListTile(iconName: "service_request", label: TranslationKeys.serviceRequest, routeName: CreateRequestPage.id),
],
).paddingOnly(top: 8, bottom: 8),
),
diff --git a/lib/new_views/common_widgets/app_text_form_field.dart b/lib/new_views/common_widgets/app_text_form_field.dart
index 5c3aa0c5..be5b1676 100644
--- a/lib/new_views/common_widgets/app_text_form_field.dart
+++ b/lib/new_views/common_widgets/app_text_form_field.dart
@@ -98,13 +98,14 @@ class _AppTextFormFieldState extends State {
floatingLabelStyle: AppTextStyle.body1?.copyWith(fontWeight: FontWeight.w500, color: context.isDark ? null : AppColor.neutral20),
hintText: widget.hintText != null ? context.translate(widget.hintText) : null,
labelText: widget.labelText != null ? context.translate(widget.labelText) : null,
- suffixIcon: widget.prefixIconData == null
- ? null
- : Icon(
- widget.prefixIconData,
- size: widget.prefixIconSize == null ? 20.toScreenWidth : (widget.prefixIconSize - 10).toScreenWidth,
- color: AppColor.neutral70,
- ),
+ suffixIcon: widget.suffixIcon ??
+ (widget.prefixIconData == null
+ ? null
+ : Icon(
+ widget.prefixIconData,
+ size: widget.prefixIconSize == null ? 20.toScreenWidth : (widget.prefixIconSize - 10).toScreenWidth,
+ color: AppColor.neutral70,
+ )),
),
),
);
diff --git a/lib/new_views/pages/login_page.dart b/lib/new_views/pages/login_page.dart
index 75930f70..c2ce0fa6 100644
--- a/lib/new_views/pages/login_page.dart
+++ b/lib/new_views/pages/login_page.dart
@@ -90,7 +90,7 @@ class _LoginPageState extends State {
).center.expanded,
AppFilledButton(label: TranslationKeys.login, maxWidth: true, onPressed: _login),
],
- ).paddingOnly(left: 16, right: 16, bottom: 24, top: 24),
+ ).paddingOnly(start: 16, end: 16, bottom: 24, top: 24),
),
);
}
diff --git a/lib/new_views/pages/new_gas_refill_request_page.dart b/lib/new_views/pages/new_gas_refill_request_page.dart
index e3b77b3d..d19182b4 100644
--- a/lib/new_views/pages/new_gas_refill_request_page.dart
+++ b/lib/new_views/pages/new_gas_refill_request_page.dart
@@ -154,14 +154,6 @@ class _NewGasRefillRequestPageState extends State {
_gasModel.department = value;
},
),
- // 8.height,
- // SingleItemDropDownMenu(
- // context: context,
- // title: TranslationKeys.department,
- // onSelect: (value) {
- // _formModel.department = value;
- // },
- // ),
8.height,
AppFilledButton(
label: TranslationKeys.add,
@@ -225,7 +217,7 @@ class _NewGasRefillRequestPageState extends State {
).expanded,
AppFilledButton(label: TranslationKeys.submitRequest, maxWidth: true, onPressed: _submit),
],
- ).paddingOnly(left: 16, right: 16, bottom: 24),
+ ).paddingOnly(start: 16, end: 16, bottom: 24),
);
}
diff --git a/lib/new_views/pages/new_service_request_page.dart b/lib/new_views/pages/new_service_request_page.dart
deleted file mode 100644
index 1783c3f1..00000000
--- a/lib/new_views/pages/new_service_request_page.dart
+++ /dev/null
@@ -1,26 +0,0 @@
-import 'package:flutter/material.dart';
-import 'package:test_sa/extensions/widget_extensions.dart';
-import 'package:test_sa/models/enums/translation_keys.dart';
-
-import '../common_widgets/app_filled_button.dart';
-import '../common_widgets/default_app_bar.dart';
-
-class NewServiceRequestPage extends StatelessWidget {
- static const String routeName = "/new_service_request_page";
- const NewServiceRequestPage({Key key}) : super(key: key);
-
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- appBar: const DefaultAppBar(title: TranslationKeys.newServiceRequest),
- body: Column(
- children: [
- SingleChildScrollView(
- child: Column(children: []),
- ).expanded,
- AppFilledButton(label: TranslationKeys.submitRequest, maxWidth: true, onPressed: () {})
- ],
- ).paddingOnly(left: 16, right: 16, bottom: 24),
- );
- }
-}
diff --git a/lib/new_views/pages/new_transfer_request_page.dart b/lib/new_views/pages/new_transfer_request_page.dart
index 96ad05eb..5d9d9c59 100644
--- a/lib/new_views/pages/new_transfer_request_page.dart
+++ b/lib/new_views/pages/new_transfer_request_page.dart
@@ -20,7 +20,7 @@ class NewTransferRequestPage extends StatelessWidget {
).expanded,
AppFilledButton(label: TranslationKeys.submitRequest, maxWidth: true, onPressed: () {})
],
- ).paddingOnly(left: 16, right: 16, bottom: 24),
+ ).paddingOnly(start: 16, end: 16, bottom: 24),
);
}
}
diff --git a/lib/views/pages/device_transfer/device_transfer_details.dart b/lib/views/pages/device_transfer/device_transfer_details.dart
index 5fdfdb93..754a04a2 100644
--- a/lib/views/pages/device_transfer/device_transfer_details.dart
+++ b/lib/views/pages/device_transfer/device_transfer_details.dart
@@ -1,16 +1,14 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/localization/localization.dart';
-import 'package:test_sa/controllers/providers/api/device_transfer_provider.dart';
+import 'package:test_sa/controllers/providers/api/asset_transfer_provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart';
-import 'package:test_sa/models/device/device_transfer.dart';
+import 'package:test_sa/models/asset/asset_transfer.dart';
import 'package:test_sa/models/subtitle.dart';
import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/app_style/sizing.dart';
-import 'package:test_sa/views/pages/device_transfer/update_device_transfer.dart';
import 'package:test_sa/views/widgets/buttons/app_back_button.dart';
import 'package:test_sa/views/widgets/buttons/app_small_button.dart';
-import 'package:test_sa/views/widgets/device_trancfer/device_transfer_info_section.dart';
import 'package:test_sa/views/widgets/loaders/app_loading.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
import 'package:test_sa/views/widgets/requests/info_row.dart';
@@ -18,7 +16,7 @@ import 'package:test_sa/views/widgets/requests/info_row.dart';
import '../../../models/enums/user_types.dart';
class DeviceTransferDetails extends StatefulWidget {
- final DeviceTransfer model;
+ final AssetTransfer model;
const DeviceTransferDetails({Key key, this.model}) : super(key: key);
@@ -27,7 +25,7 @@ class DeviceTransferDetails extends StatefulWidget {
}
class _DeviceTransferDetailsState extends State {
- DeviceTransfer _model;
+ AssetTransfer _model;
bool _isSender = false;
bool _isReceiver = false;
UserProvider _userProvider;
@@ -43,7 +41,7 @@ class _DeviceTransferDetailsState extends State {
}
Future _getDeviceTransfer() async {
- _model = await Provider.of(context).getRequestById(assetTransferId: widget.model.id);
+ _model = await Provider.of(context).getRequestById(assetTransferId: widget.model.id);
}
@override
@@ -59,8 +57,8 @@ class _DeviceTransferDetailsState extends State {
} else {
_subtitle = AppLocalization.of(context).subtitle;
_userProvider = Provider.of(context);
- _isSender = _userProvider.user.userID == _model.sender?.userId;
- _isReceiver = _userProvider.user.userID == _model.receiver?.userId;
+ // _isSender = _userProvider.user.userID == _model.sender?.userId;
+ // _isReceiver = _userProvider.user.userID == _model.receiver?.userId;
return Form(
key: _formKey,
child: LoadingManager(
@@ -96,39 +94,39 @@ class _DeviceTransferDetailsState extends State {
children: [
RequestInfoRow(
title: "Transfer Id",
- info: _model.title?.toString(),
+ info: "_model.title?.toString()",
),
RequestInfoRow(
title: _subtitle.assetName,
- info: _model.device.assetName,
+ info: "_model.device.assetName",
),
RequestInfoRow(
title: _subtitle.assetSN,
- info: _model.device.serialNumber,
+ info: "_model.device.serialNumber",
),
RequestInfoRow(
title: _subtitle.assetNumber,
- info: _model.device.number,
+ info: "_model.device.number",
),
RequestInfoRow(
title: _subtitle.destinationSite,
- info: _model.device.destSiteName,
+ info: "_model.device.destSiteName",
),
RequestInfoRow(
title: _subtitle.building,
- info: _model.device.destBuildingName,
+ info: " _model.device.destBuildingName",
),
RequestInfoRow(
title: _subtitle.floor,
- info: _model.device.destFloor,
+ info: "_model.device.destFloor",
),
RequestInfoRow(
title: _subtitle.department,
- info: _model.device.destDepartmentName,
+ info: "_model.device.destDepartmentName",
),
RequestInfoRow(
title: _subtitle.room,
- info: _model.device.destRoom,
+ info: "_model.device.destRoom",
),
RequestInfoRow(
title: _subtitle.actions,
@@ -143,25 +141,25 @@ class _DeviceTransferDetailsState extends State {
if (_userProvider.user?.type == UsersTypes.engineer)
ASmallButton(
text: _subtitle.edit,
- onPressed: (_isSender)
- ? (_model.sender.status?.name == "Closed"
- ? null
- : () {
- Navigator.of(context).push(MaterialPageRoute(
- builder: (_) => UpdateDeviceTransfer(
- model: _model,
- isSender: true,
- )));
- })
- : null,
+ // onPressed: (_isSender)
+ // ? (_model.sender.status?.name == "Closed"
+ // ? null
+ // : () {
+ // Navigator.of(context).push(MaterialPageRoute(
+ // builder: (_) => UpdateDeviceTransfer(
+ // model: _model,
+ // isSender: true,
+ // )));
+ // })
+ // : null,
),
],
),
const SizedBox(height: 12),
- DeviceTransferInfoSection(
- info: _model.sender,
- isSender: true,
- ),
+ // DeviceTransferInfoSection(
+ // info: _model.sender,
+ // isSender: true,
+ // ),
const SizedBox(height: 8),
Row(
children: [
@@ -171,25 +169,25 @@ class _DeviceTransferDetailsState extends State {
if (_userProvider.user?.type == UsersTypes.engineer)
ASmallButton(
text: _subtitle.edit,
- onPressed: (_isReceiver)
- ? (_model.receiver.status?.name == "Closed"
- ? null
- : () {
- Navigator.of(context).push(MaterialPageRoute(
- builder: (_) => UpdateDeviceTransfer(
- model: _model,
- isSender: false,
- )));
- })
- : null,
+ // onPressed: (_isReceiver)
+ // ? (_model.receiver.status?.name == "Closed"
+ // ? null
+ // : () {
+ // Navigator.of(context).push(MaterialPageRoute(
+ // builder: (_) => UpdateDeviceTransfer(
+ // model: _model,
+ // isSender: false,
+ // )));
+ // })
+ // : null,
),
],
),
const SizedBox(height: 12),
- DeviceTransferInfoSection(
- info: _model.receiver,
- isSender: false,
- ),
+ // DeviceTransferInfoSection(
+ // info: _model.receiver,
+ // 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 5f6ad2a3..df46a036 100644
--- a/lib/views/pages/device_transfer/request_device_transfer.dart
+++ b/lib/views/pages/device_transfer/request_device_transfer.dart
@@ -1,16 +1,13 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
-import 'package:test_sa/controllers/providers/api/device_transfer_provider.dart';
+import 'package:test_sa/controllers/providers/api/asset_transfer_provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
import 'package:test_sa/extensions/int_extensions.dart';
-import 'package:test_sa/models/department.dart';
-import 'package:test_sa/models/device/device_transfer.dart';
-import 'package:test_sa/models/device/device_transfer_info.dart';
+import 'package:test_sa/models/asset/asset_transfer.dart';
import 'package:test_sa/models/subtitle.dart';
import 'package:test_sa/views/app_style/sizing.dart';
import 'package:test_sa/views/widgets/buttons/app_button.dart';
-import 'package:test_sa/views/widgets/equipment/device_button.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
import 'package:test_sa/views/widgets/titles/app_sub_title.dart';
@@ -38,9 +35,9 @@ class _RequestDeviceTransferState extends State {
Subtitle _subtitle;
UserProvider _userProvider;
SettingProvider _settingProvider;
- DeviceTransferProvider _deviceTransferProvider;
+ AssetTransferProvider _deviceTransferProvider;
final TextEditingController _requestedQuantityController = TextEditingController();
- final DeviceTransfer _formModel = DeviceTransfer(receiver: DeviceTransferInfo(), sender: DeviceTransferInfo());
+ final AssetTransfer _formModel = AssetTransfer(/*receiver: DeviceTransferInfo(), sender: DeviceTransferInfo()*/);
final GlobalKey _formKey = GlobalKey();
final GlobalKey _scaffoldKey = GlobalKey();
@@ -57,10 +54,10 @@ class _RequestDeviceTransferState extends State {
}
_formKey.currentState.save();
- if (!_formModel.validate()) {
- setState(() {});
- return false;
- }
+ // if (!_formModel.validate()) {
+ // setState(() {});
+ // return false;
+ // }
_isLoading = true;
setState(() {});
@@ -98,7 +95,7 @@ class _RequestDeviceTransferState extends State {
_subtitle = AppLocalization.of(context).subtitle;
_userProvider = Provider.of(context);
_settingProvider = Provider.of(context);
- _deviceTransferProvider = Provider.of(context, listen: false);
+ _deviceTransferProvider = Provider.of(context, listen: false);
return Scaffold(
key: _scaffoldKey,
body: Form(
@@ -139,29 +136,29 @@ class _RequestDeviceTransferState extends State {
// ),
12.height,
const ASubTitle("Asset"),
- if (_validate && _formModel.device == null)
+ if (_validate /*&& _formModel.device == null*/)
ASubTitle(
_subtitle.requiredWord,
color: Colors.red,
),
6.height,
- DeviceButton(
- device: _formModel.device,
- onDevicePick: (device) {
- _formModel.device = device;
- _formModel.sender.client = device.hospital;
- setState(() {});
- },
- ),
- if (_formModel.device != null) 8.height,
- if (_formModel.device != null) AdditionalAssetInfo(title: "Asset Site", value: _formModel.device.hospital?.name),
- if (_formModel.device != null) 4.height,
- if (_formModel.device != null) AdditionalAssetInfo(title: "Asset Department", value: _formModel.device.destDepartmentName),
- if (_formModel.device != null) 4.height,
- if (_formModel.device != null) AdditionalAssetInfo(title: "Asset Floor", value: _formModel.device.destFloor),
- if (_formModel.device != null) 4.height,
- if (_formModel.device != null) AdditionalAssetInfo(title: "Asset Room", value: _formModel.device.destRoom),
- if (_formModel.device != null) 8.height,
+ // DeviceButton(
+ // device: _formModel.device,
+ // onDevicePick: (device) {
+ // _formModel.device = device;
+ // _formModel.sender.client = device.hospital;
+ // setState(() {});
+ // },
+ // ),
+ // if (_formModel.device != null) 8.height,
+ // if (_formModel.device != null) AdditionalAssetInfo(title: "Asset Site", value: _formModel.device.hospital?.name),
+ // if (_formModel.device != null) 4.height,
+ // if (_formModel.device != null) AdditionalAssetInfo(title: "Asset Department", value: _formModel.device.destDepartmentName),
+ // if (_formModel.device != null) 4.height,
+ // if (_formModel.device != null) AdditionalAssetInfo(title: "Asset Floor", value: _formModel.device.destFloor),
+ // if (_formModel.device != null) 4.height,
+ // if (_formModel.device != null) AdditionalAssetInfo(title: "Asset Room", value: _formModel.device.destRoom),
+ // if (_formModel.device != null) 8.height,
// const SizedBox(height: 8,),
// const ASubTitle("Sender Department"),
// if(_validate && _formModel.senderDepartment == null)
@@ -225,7 +222,7 @@ class _RequestDeviceTransferState extends State {
_deviceTransferProvider.building = null;
_deviceTransferProvider.floor = null;
_deviceTransferProvider.department = null;
- _formModel.receiver.client = value;
+ // _formModel.receiver.client = value;
setState(() {});
},
),
@@ -255,7 +252,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(() {});
},
),
diff --git a/lib/views/pages/device_transfer/track_device_transfer.dart b/lib/views/pages/device_transfer/track_device_transfer.dart
index 34e81688..769b682b 100644
--- a/lib/views/pages/device_transfer/track_device_transfer.dart
+++ b/lib/views/pages/device_transfer/track_device_transfer.dart
@@ -1,14 +1,12 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
-import 'package:test_sa/controllers/providers/api/device_transfer_provider.dart';
+import 'package:test_sa/controllers/providers/api/asset_transfer_provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
-import 'package:test_sa/models/device/device_transfer_search.dart';
import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/widgets/buttons/app_back_button.dart';
import 'package:test_sa/views/widgets/device_trancfer/device_transfer_list.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
-import 'package:test_sa/views/widgets/search/asset_transfer_search_dialog.dart';
import '../../widgets/buttons/app_icon_button.dart';
@@ -22,13 +20,13 @@ class TrackDeviceTransferPage extends StatefulWidget {
}
class _TrackDeviceTransferPageState extends State with TickerProviderStateMixin {
- DeviceTransferProvider _deviceTransferProvider;
+ AssetTransferProvider _deviceTransferProvider;
UserProvider _userProvider;
SettingProvider _settingProvider;
@override
Widget build(BuildContext context) {
- _deviceTransferProvider = Provider.of(context);
+ _deviceTransferProvider = Provider.of(context);
_userProvider = Provider.of(context);
_settingProvider = Provider.of(context);
@@ -71,22 +69,22 @@ class _TrackDeviceTransferPageState extends State with
buttonSize: 42,
backgroundColor: AColors.white,
onPressed: () async {
- DeviceTransferSearch temp = await showModalBottomSheet(
- context: context,
- isScrollControlled: true,
- builder: (context) {
- return AssetTransferSearchDialog(initialSearchValue: _deviceTransferProvider.deviceTransferSearch);
- },
- );
- if (temp != null) {
- _deviceTransferProvider.deviceTransferSearch = temp;
- _deviceTransferProvider.reset();
- setState(() {});
- await _deviceTransferProvider.getRequests(
- user: _userProvider.user,
- host: _settingProvider.host,
- );
- }
+ // DeviceTransferSearch temp = await showModalBottomSheet(
+ // context: context,
+ // isScrollControlled: true,
+ // builder: (context) {
+ // return AssetTransferSearchDialog(initialSearchValue: _deviceTransferProvider.deviceTransferSearch);
+ // },
+ // );
+ // if (temp != null) {
+ // _deviceTransferProvider.deviceTransferSearch = temp;
+ // _deviceTransferProvider.reset();
+ // setState(() {});
+ // await _deviceTransferProvider.getRequests(
+ // user: _userProvider.user,
+ // host: _settingProvider.host,
+ // );
+ // }
},
),
const SizedBox(width: 16),
diff --git a/lib/views/pages/device_transfer/update_device_transfer.dart b/lib/views/pages/device_transfer/update_device_transfer.dart
index 29844f8a..fad59ba7 100644
--- a/lib/views/pages/device_transfer/update_device_transfer.dart
+++ b/lib/views/pages/device_transfer/update_device_transfer.dart
@@ -1,29 +1,20 @@
-import 'dart:convert';
-
import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
-import 'package:fluttertoast/fluttertoast.dart';
import 'package:provider/provider.dart';
-import 'package:test_sa/controllers/providers/api/device_transfer_provider.dart';
+import 'package:test_sa/controllers/providers/api/asset_transfer_provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
-import 'package:test_sa/models/device/device_transfer.dart';
-import 'package:test_sa/models/device/device_transfer_info.dart';
+import 'package:test_sa/models/asset/asset_transfer.dart';
import 'package:test_sa/models/subtitle.dart';
import 'package:test_sa/views/app_style/sizing.dart';
-import 'package:test_sa/views/widgets/app_text_form_field.dart';
import 'package:test_sa/views/widgets/buttons/app_button.dart';
-import 'package:test_sa/views/widgets/e_signature/e_signature.dart';
-import 'package:test_sa/views/widgets/images/multi_image_picker.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
-import 'package:test_sa/views/widgets/status/asset_status.dart';
import 'package:test_sa/views/widgets/titles/app_sub_title.dart';
import '../../../../controllers/localization/localization.dart';
-import '../../widgets/timer/app_timer.dart';
class UpdateDeviceTransfer extends StatefulWidget {
- final DeviceTransfer model;
+ final AssetTransfer model;
final bool isSender;
const UpdateDeviceTransfer({Key key, this.model, this.isSender}) : super(key: key);
@@ -39,21 +30,21 @@ class _UpdateDeviceTransferState extends State {
UserProvider _userProvider;
SettingProvider _settingProvider;
Uint8List _signature;
- DeviceTransferProvider _deviceTransferProvider;
+ AssetTransferProvider _deviceTransferProvider;
final TextEditingController _requestedQuantityController = TextEditingController();
- final DeviceTransferInfo _formModel = DeviceTransferInfo(attachments: []);
+ // final DeviceTransferInfo _formModel = DeviceTransferInfo(attachments: []);
final GlobalKey _formKey = GlobalKey();
final GlobalKey _scaffoldKey = GlobalKey();
_update() async {
- if (_formModel?.timer?.startAt == null) {
- await Fluttertoast.showToast(msg: "Working Hours Required");
- return false;
- }
- if (_formModel?.timer?.endAt == null) {
- await Fluttertoast.showToast(msg: "Please Stop The Timer");
- return false;
- }
+ // if (_formModel?.timer?.startAt == null) {
+ // await Fluttertoast.showToast(msg: "Working Hours Required");
+ // return false;
+ // }
+ // if (_formModel?.timer?.endAt == null) {
+ // await Fluttertoast.showToast(msg: "Please Stop The Timer");
+ // return false;
+ // }
_validate = true;
if (!_formKey.currentState.validate()) {
setState(() {});
@@ -63,17 +54,17 @@ class _UpdateDeviceTransferState extends State {
_isLoading = true;
setState(() {});
- int status = await _deviceTransferProvider.updateRequest(
- user: _userProvider.user, host: _settingProvider.host, requestId: widget.model.id, isSender: widget.isSender, newModel: _formModel, oldModel: widget.model);
- _isLoading = false;
- setState(() {});
- if (status >= 200 && status < 300) {
- Fluttertoast.showToast(
- msg: _subtitle.requestCompleteSuccessfully,
- );
- _validate = false;
- Navigator.of(context).pop();
- }
+ // int status = await _deviceTransferProvider.updateRequest(
+ // user: _userProvider.user, host: _settingProvider.host, requestId: widget.model.id, isSender: widget.isSender, newModel: _formModel, oldModel: widget.model);
+ // _isLoading = false;
+ // setState(() {});
+ // if (status >= 200 && status < 300) {
+ // Fluttertoast.showToast(
+ // msg: _subtitle.requestCompleteSuccessfully,
+ // );
+ // _validate = false;
+ // Navigator.of(context).pop();
+ // }
}
// @override
@@ -83,7 +74,7 @@ class _UpdateDeviceTransferState extends State {
@override
void initState() {
- _formModel.fromDetails(widget.isSender ? widget.model.sender : widget.model.receiver, withSignature: false);
+ // _formModel.fromDetails(widget.isSender ? widget.model.sender : widget.model.receiver, withSignature: false);
super.initState();
}
@@ -98,7 +89,7 @@ class _UpdateDeviceTransferState extends State {
_subtitle = AppLocalization.of(context).subtitle;
_userProvider = Provider.of(context);
_settingProvider = Provider.of(context);
- _deviceTransferProvider = Provider.of(context, listen: false);
+ _deviceTransferProvider = Provider.of(context, listen: false);
return Scaffold(
key: _scaffoldKey,
body: Form(
@@ -131,15 +122,15 @@ class _UpdateDeviceTransferState extends State {
const SizedBox(
height: 4,
),
- ATextFormField(
- initialValue: _formModel?.comment,
- textAlign: TextAlign.center,
- style: Theme.of(context).textTheme.subtitle1,
- textInputType: TextInputType.text,
- onSaved: (value) {
- _formModel.comment = value;
- },
- ),
+ // ATextFormField(
+ // initialValue: _formModel?.comment,
+ // textAlign: TextAlign.center,
+ // style: Theme.of(context).textTheme.subtitle1,
+ // textInputType: TextInputType.text,
+ // onSaved: (value) {
+ // _formModel.comment = value;
+ // },
+ // ),
const SizedBox(
height: 8,
),
@@ -147,15 +138,15 @@ class _UpdateDeviceTransferState extends State {
const SizedBox(
height: 4,
),
- ATextFormField(
- initialValue: _formModel?.travelingHours,
- textAlign: TextAlign.center,
- style: Theme.of(context).textTheme.subtitle1,
- textInputType: TextInputType.number,
- onSaved: (value) {
- _formModel.travelingHours = value;
- },
- ),
+ // ATextFormField(
+ // initialValue: _formModel?.travelingHours,
+ // textAlign: TextAlign.center,
+ // style: Theme.of(context).textTheme.subtitle1,
+ // textInputType: TextInputType.number,
+ // onSaved: (value) {
+ // _formModel.travelingHours = value;
+ // },
+ // ),
const SizedBox(
height: 16,
),
@@ -163,16 +154,16 @@ class _UpdateDeviceTransferState extends State {
const SizedBox(height: 8),
Row(
children: [
- Expanded(
- child: AppTimer(
- timer: _formModel.timer,
- onChange: (timer) async {
- _formModel.timer = timer;
- _formModel.workingHours = (((timer?.durationInSecond ?? 0) / 60) / 60)?.toStringAsFixed(2) ?? "0";
- return true;
- },
- ),
- ),
+ // Expanded(
+ // child: AppTimer(
+ // timer: _formModel.timer,
+ // onChange: (timer) async {
+ // _formModel.timer = timer;
+ // _formModel.workingHours = (((timer?.durationInSecond ?? 0) / 60) / 60)?.toStringAsFixed(2) ?? "0";
+ // return true;
+ // },
+ // ),
+ // ),
],
),
const SizedBox(height: 16),
@@ -180,21 +171,21 @@ class _UpdateDeviceTransferState extends State {
const SizedBox(
height: 4,
),
- AssetStatusMenu(
- initialValue: _formModel.status,
- onSelect: (status) {
- if (status == null) return;
- _formModel.status = status;
- setState(() {});
- },
- ),
+ // AssetStatusMenu(
+ // initialValue: _formModel.status,
+ // onSelect: (status) {
+ // if (status == null) return;
+ // _formModel.status = status;
+ // setState(() {});
+ // },
+ // ),
const SizedBox(
height: 16,
),
- MultiFilesPicker(
- label: "Attachments",
- files: _formModel.attachments,
- ),
+ // MultiFilesPicker(
+ // label: "Attachments",
+ // files: _formModel.attachments,
+ // ),
const SizedBox(
height: 16,
),
@@ -204,16 +195,16 @@ class _UpdateDeviceTransferState extends State {
const SizedBox(
height: 4,
),
- ESignature(
- oldSignature: widget.isSender ? widget.model.sender.engSignature : widget.model.receiver.engSignature,
- newSignature: _signature,
- onSaved: (signature) {
- _signature = signature;
- if (signature == null || signature.isEmpty) return;
- _formModel.engSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
- // base64Encode(signature);
- },
- ),
+ // ESignature(
+ // oldSignature: widget.isSender ? widget.model.sender.engSignature : widget.model.receiver.engSignature,
+ // newSignature: _signature,
+ // onSaved: (signature) {
+ // _signature = signature;
+ // if (signature == null || signature.isEmpty) return;
+ // _formModel.engSignature = "${DateTime.now().toIso8601String()}.png|${base64Encode(signature)}";
+ // // base64Encode(signature);
+ // },
+ // ),
Padding(
padding: const EdgeInsets.all(16.0),
child: AButton(
diff --git a/lib/views/pages/user/land_page.dart b/lib/views/pages/user/land_page.dart
index 44c56661..3c7203ec 100644
--- a/lib/views/pages/user/land_page.dart
+++ b/lib/views/pages/user/land_page.dart
@@ -18,6 +18,7 @@ import 'package:test_sa/views/app_style/sizing.dart';
import 'package:test_sa/views/pages/device_transfer/track_device_transfer.dart';
import 'package:test_sa/views/pages/sub_workorder/search_sub_workorder_page.dart';
import 'package:test_sa/views/pages/user/gas_refill/track_gas_refill.dart';
+import 'package:test_sa/views/pages/user/requests/create_request.dart';
import 'package:test_sa/views/pages/user/visits/regular_visits_page.dart';
import 'package:test_sa/views/widgets/buttons/app_back_button.dart';
import 'package:test_sa/views/widgets/buttons/app_icon_button.dart';
@@ -25,7 +26,6 @@ import 'package:test_sa/views/widgets/dialogs/dialog.dart';
import 'package:test_sa/views/widgets/drawer/drawer_item.dart';
import 'package:url_launcher/url_launcher.dart';
-import '../../../new_views/pages/new_service_request_page.dart';
import '../../widgets/land_page/land_page_item.dart';
import 'requests/requests_page.dart';
@@ -154,8 +154,7 @@ class _LandPageState extends State {
text: "New Service Request",
icon: FontAwesomeIcons.screwdriverWrench,
onPressed: () {
- // Navigator.of(context).pushNamed(CreateRequestPage.id);
- Navigator.of(context).pushNamed(NewServiceRequestPage.routeName);
+ Navigator.of(context).pushNamed(CreateRequestPage.id);
},
),
LandPageItem(
@@ -283,7 +282,7 @@ class _LandPageState extends State {
children: [
const Icon(Icons.clear).onPress(() => Navigator.pop(context)),
],
- ).paddingOnly(left: 4, right: 14),
+ ).paddingOnly(start: 4, end: 14),
Row(
children: [
Container(
@@ -310,7 +309,7 @@ class _LandPageState extends State {
textScaleFactor: AppStyle.getScaleFactor(context),
).expanded
],
- ).paddingOnly(left: 14, right: 14, top: 21, bottom: 21),
+ ).paddingOnly(start: 14, end: 14, top: 21, bottom: 21),
Divider(
height: 1,
thickness: 1,
@@ -438,7 +437,7 @@ class _LandPageState extends State {
6.width,
Image.asset("assets/images/cloud_logo.png", width: 32, height: 32)
],
- ).paddingOnly(left: 20, right: 20, top: 8, bottom: 8),
+ ).paddingOnly(start: 20, end: 20, top: 8, bottom: 8),
],
),
),
diff --git a/lib/views/pages/user/requests/create_request.dart b/lib/views/pages/user/requests/create_request.dart
index c6c05bab..9aa84227 100644
--- a/lib/views/pages/user/requests/create_request.dart
+++ b/lib/views/pages/user/requests/create_request.dart
@@ -13,15 +13,12 @@ import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
import 'package:test_sa/controllers/validator/validator.dart';
import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/widget_extensions.dart';
-import 'package:test_sa/models/device/device.dart';
import 'package:test_sa/models/service_request/service_request.dart';
import 'package:test_sa/models/subtitle.dart';
-import 'package:test_sa/views/app_style/colors.dart';
+import 'package:test_sa/new_views/common_widgets/app_filled_button.dart';
import 'package:test_sa/views/widgets/app_text_form_field.dart';
-import 'package:test_sa/views/widgets/buttons/app_back_button.dart';
-import 'package:test_sa/views/widgets/buttons/app_button.dart';
import 'package:test_sa/views/widgets/date_and_time/time_picker.dart';
-import 'package:test_sa/views/widgets/equipment/device_button.dart';
+import 'package:test_sa/views/widgets/equipment/pick_asset.dart';
import 'package:test_sa/views/widgets/images/multi_image_picker.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
import 'package:test_sa/views/widgets/sound/record_sound.dart';
@@ -35,8 +32,9 @@ import 'package:test_sa/views/widgets/titles/app_sub_title.dart';
import '../../../../controllers/providers/api/status_drop_down/service_reqest/service_request_through_provider.dart';
import '../../../../controllers/providers/api/status_drop_down/service_reqest/service_request_type_provider.dart';
-import '../../../app_style/sizing.dart';
-import '../../../widgets/date_and_time/date_picker.dart';
+import '../../../../models/asset/asset.dart';
+import '../../../../models/enums/translation_keys.dart';
+import '../../../../new_views/common_widgets/default_app_bar.dart';
import '../../../widgets/status/service_request/service_request_first_action.dart';
import '../../../widgets/status/service_request/service_request_loan_availability.dart';
@@ -59,7 +57,7 @@ class CreateRequestPageState extends State {
final List _deviceImages = [];
bool _isLoading = false;
bool _showDatePicker = false;
- Device _device;
+ Asset _device;
Subtitle _subtitle;
final GlobalKey _formKey = GlobalKey();
final GlobalKey _scaffoldKey = GlobalKey();
@@ -129,6 +127,7 @@ class CreateRequestPageState extends State {
return Scaffold(
key: _scaffoldKey,
+ appBar: const DefaultAppBar(title: TranslationKeys.newServiceRequest),
body: SafeArea(
child: LoadingManager(
isLoading: _isLoading,
@@ -137,316 +136,245 @@ class CreateRequestPageState extends State {
onRefresh: () async {},
child: Form(
key: _formKey,
- child: Stack(
+ child: Column(
children: [
- ListView(
- children: [
- //AppNameBar(),
- const SizedBox(height: 16),
- Hero(
- tag: "logo",
- child: Image(
- height: _height / 6,
- image: const AssetImage("assets/images/logo.png"),
+ SingleChildScrollView(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.start,
+ children: [
+ PickAsset(
+ asset: _device,
+ onPickAsset: (device) {
+ _device = device;
+ setState(() {});
+ },
),
- ),
- Center(
- child: Padding(
- padding: const EdgeInsets.all(8.0),
- child: Text(
- widget.serviceRequest == null ? _subtitle.newServiceRequest : _subtitle.updateServiceRequest,
- style: Theme.of(context).textTheme.headline5.copyWith(color: AColors.cyan, fontWeight: FontWeight.w600),
- ),
+ const SizedBox(
+ height: 8,
),
- ),
- Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- 12.height,
- _userProvider.user.clientId == null
- ? const SizedBox.shrink()
- : ATextFormField(
- enable: false,
- initialValue: _userProvider.user.clientName ?? _subtitle.noHospitalFound,
- hintText: _subtitle.hospital,
- prefixIconData: FontAwesomeIcons.hospital,
- style: Theme.of(context).textTheme.subtitle1,
- ),
- 12.height,
- _userProvider.user.departmentId == null || (_userProvider.user?.departmentId?.isEmpty ?? false)
- ? const SizedBox.shrink()
- : Container(
- padding: const EdgeInsets.all(12),
- decoration: BoxDecoration(
- color: const Color(0xfff5f5f5),
- border: Border.all(
- color: const Color(0xffefefef),
- ),
- borderRadius: BorderRadius.circular(AppStyle.borderRadius * AppStyle.getScaleFactor(context)),
- ),
- child: Row(
- mainAxisAlignment: MainAxisAlignment.spaceBetween,
- children: [
- Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: _userProvider.user.departmentName
- ?.map(
- (e) => Text(
- e?.trim() ?? "",
- style: Theme.of(context).textTheme.titleMedium.copyWith(color: AColors.black),
- ),
- )
- ?.toList() ??
- [],
- ),
- Icon(
- FontAwesomeIcons.hospitalUser,
- size: 20 * AppStyle.getScaleFactor(context),
- color: const Color(0xff2e303a),
- ),
- ],
- ),
- ),
- 12.height,
- DeviceButton(
- device: _device,
- onDevicePick: (device) {
- _device = device;
- setState(() {});
- },
- ),
- const SizedBox(
- height: 8,
- ),
- const ASubTitle("Priority"),
- const SizedBox(
- height: 4,
- ),
- ServiceRequestPriorityMenu(
- initialValue: widget.serviceRequest?.priority,
+ const ASubTitle("Priority"),
+ const SizedBox(
+ height: 4,
+ ),
+ ServiceRequestPriorityMenu(
+ initialValue: widget.serviceRequest?.priority,
+ onSelect: (status) {
+ _serviceRequest.priority = status;
+ },
+ enabled: widget.serviceRequest == null ? true : false,
+ ),
+ const SizedBox(
+ height: 8,
+ ),
+ const ASubTitle("Equipment Status"),
+ const SizedBox(
+ height: 4,
+ ),
+ ServiceRequestDefectTypesMenu(
+ initialValue: _serviceRequest.defectType,
+ onSelect: (status) {
+ _serviceRequest.defectType = status;
+ },
+ enabled: widget.serviceRequest == null ? true : false,
+ ),
+ 12.height,
+ const SizedBox(
+ height: 8,
+ ),
+ const ASubTitle("Type of Request"),
+ const SizedBox(
+ height: 4,
+ ),
+ ServiceRequestTypesMenu(
+ initialValue: _serviceRequest.type,
+ onSelect: (status) {
+ _serviceRequest.type = status;
+ },
+ enabled: false,
+ withDefaultItem: widget.serviceRequest == null,
+ ),
+ const SizedBox(
+ height: 8,
+ ),
+ const ASubTitle("Through"),
+ const SizedBox(
+ height: 4,
+ ),
+ ServiceRequestedThroughMenu(
+ initialValue: _serviceRequest.requestedThrough,
+ enabled: false,
+ ),
+ if (widget.serviceRequest != null) 12.height,
+ if (widget.serviceRequest != null) const ASubTitle("First Action"),
+ const SizedBox(
+ height: 4,
+ ),
+ if (widget.serviceRequest != null)
+ ServiceRequestedFirstAction(
+ initialValue: _serviceRequest.firstAction,
+ enabled: !isFirstActionSubmitted,
onSelect: (status) {
- _serviceRequest.priority = status;
+ _dateTime = null;
+ _serviceRequest.firstAction = status;
+ _showDatePicker = _serviceRequest.firstAction != null && _serviceRequest.firstAction.name == "Need a visit";
+ _serviceRequestsProvider.notifyListeners();
},
- enabled: widget.serviceRequest == null ? true : false,
),
- const SizedBox(
- height: 8,
- ),
- const ASubTitle("Equipment Status"),
- const SizedBox(
- height: 4,
- ),
- ServiceRequestDefectTypesMenu(
- initialValue: _serviceRequest.defectType,
- onSelect: (status) {
- _serviceRequest.defectType = status;
+ if (_showDatePicker) 12.height,
+ if (_showDatePicker)
+ ADateTimePicker(
+ date: _dateTime,
+ enable: !isFirstActionSubmitted,
+ from: DateTime.now(),
+ onDateTimePicker: (date) {
+ _dateTime = date;
+ setState(() {});
},
- enabled: widget.serviceRequest == null ? true : false,
- ),
- 12.height,
- const SizedBox(
- height: 8,
- ),
- const ASubTitle("Type of Request"),
- const SizedBox(
- height: 4,
),
- ServiceRequestTypesMenu(
- initialValue: _serviceRequest.type,
+ if (widget.serviceRequest != null) 12.height,
+ if (widget.serviceRequest != null) const ASubTitle("Loan Availability"),
+ const SizedBox(
+ height: 4,
+ ),
+ if (widget.serviceRequest != null)
+ ServiceRequestedLoanAvailability(
+ initialValue: _serviceRequest.loanAvailability,
onSelect: (status) {
- _serviceRequest.type = status;
+ _serviceRequest.loanAvailability = status;
},
- enabled: false,
- withDefaultItem: widget.serviceRequest == null,
- ),
- const SizedBox(
- height: 8,
- ),
- const ASubTitle("Through"),
- const SizedBox(
- height: 4,
),
- ServiceRequestedThroughMenu(
- initialValue: _serviceRequest.requestedThrough,
- enabled: false,
- ),
- if (widget.serviceRequest != null) 12.height,
- if (widget.serviceRequest != null) const ASubTitle("First Action"),
- const SizedBox(
- height: 4,
- ),
- if (widget.serviceRequest != null)
- ServiceRequestedFirstAction(
- initialValue: _serviceRequest.firstAction,
- enabled: !isFirstActionSubmitted,
- onSelect: (status) {
- _dateTime = null;
- _serviceRequest.firstAction = status;
- _showDatePicker = _serviceRequest.firstAction != null && _serviceRequest.firstAction.name == "Need a visit";
- _serviceRequestsProvider.notifyListeners();
- },
- ),
- if (_showDatePicker) 12.height,
- if (_showDatePicker)
- ADateTimePicker(
- date: _dateTime,
- enable: !isFirstActionSubmitted,
- from: DateTime.now(),
- onDateTimePicker: (date) {
- _dateTime = date;
- setState(() {});
- },
- ),
- if (widget.serviceRequest != null) 12.height,
- if (widget.serviceRequest != null) const ASubTitle("Loan Availability"),
- const SizedBox(
- height: 4,
- ),
- if (widget.serviceRequest != null)
- ServiceRequestedLoanAvailability(
- initialValue: _serviceRequest.loanAvailability,
- onSelect: (status) {
- _serviceRequest.loanAvailability = status;
- },
- ),
- 12.height,
- if (widget.serviceRequest != null) const ASubTitle("Comments"),
- const SizedBox(
- height: 4,
- ),
- if (widget.serviceRequest != null)
- ATextFormField(
- controller: _reviewCommentController,
- initialValue: _serviceRequest.reviewComment,
- hintText: _subtitle.comment,
- style: Theme.of(context).textTheme.titleMedium,
- textInputType: TextInputType.multiline,
- onSaved: (value) {
- _serviceRequest.reviewComment = value;
- },
- enable: widget.serviceRequest != null ? false : true,
- ),
- 12.height,
- MultiFilesPicker(
- label: _subtitle.deviceFiles,
- files: _deviceImages,
- enabled: widget.serviceRequest == null ? true : false,
+ 12.height,
+ if (widget.serviceRequest != null) const ASubTitle("Comments"),
+ const SizedBox(
+ height: 4,
+ ),
+ if (widget.serviceRequest != null)
+ ATextFormField(
+ controller: _reviewCommentController,
+ initialValue: _serviceRequest.reviewComment,
+ hintText: _subtitle.comment,
+ style: Theme.of(context).textTheme.titleMedium,
+ textInputType: TextInputType.multiline,
+ onSaved: (value) {
+ _serviceRequest.reviewComment = value;
+ },
+ enable: widget.serviceRequest != null ? false : true,
),
- 12.height,
- SpeechToTextButton(
- controller: _maintenanceController,
+ 12.height,
+ MultiFilesPicker(
+ label: _subtitle.deviceFiles,
+ files: _deviceImages,
+ enabled: widget.serviceRequest == null ? true : false,
+ ),
+ 12.height,
+ SpeechToTextButton(
+ controller: _maintenanceController,
+ enabled: widget.serviceRequest == null ? true : false,
+ ),
+ 12.height,
+ ATextFormField(
+ controller: _maintenanceController,
+ initialValue: _serviceRequest.callComments,
+ hintText: _subtitle.maintenanceIssue,
+ prefixIconData: FontAwesomeIcons.triangleExclamation,
+ style: Theme.of(context).textTheme.titleLarge,
+ textInputType: TextInputType.multiline,
+ validator: (value) => widget.serviceRequest != null || Validator.hasValue(value) ? null : _subtitle.maintenanceIssueRequired,
+ onSaved: (value) {
+ _serviceRequest.callComments = value;
+ },
+ enable: widget.serviceRequest == null ? true : false,
+ ),
+ 12.height,
+ if (_serviceRequest.audio?.isNotEmpty == true)
+ ASoundPlayer(
+ audio: _serviceRequest.audio,
+ )
+ else
+ RecordSound(
+ onRecord: (audio) {
+ _serviceRequest.audio = audio;
+ },
enabled: widget.serviceRequest == null ? true : false,
),
- 12.height,
+ 12.height,
+ if (widget.serviceRequest != null)
ATextFormField(
- controller: _maintenanceController,
- initialValue: _serviceRequest.callComments,
- hintText: _subtitle.maintenanceIssue,
- prefixIconData: FontAwesomeIcons.triangleExclamation,
- style: Theme.of(context).textTheme.titleLarge,
+ controller: _commentController,
+ initialValue: _serviceRequest.comments,
+ hintText: _subtitle.comment,
+ style: Theme.of(context).textTheme.titleMedium,
textInputType: TextInputType.multiline,
- validator: (value) => widget.serviceRequest != null || Validator.hasValue(value) ? null : _subtitle.maintenanceIssueRequired,
onSaved: (value) {
- _serviceRequest.callComments = value;
+ _serviceRequest.comments = value;
},
- enable: widget.serviceRequest == null ? true : false,
),
- 12.height,
- if (_serviceRequest.audio?.isNotEmpty == true)
- ASoundPlayer(
- audio: _serviceRequest.audio,
- )
- else
- RecordSound(
- onRecord: (audio) {
- _serviceRequest.audio = audio;
- },
- enabled: widget.serviceRequest == null ? true : false,
- ),
- 12.height,
- if (widget.serviceRequest != null)
- ATextFormField(
- controller: _commentController,
- initialValue: _serviceRequest.comments,
- hintText: _subtitle.comment,
- style: Theme.of(context).textTheme.titleMedium,
- textInputType: TextInputType.multiline,
- onSaved: (value) {
- _serviceRequest.comments = value;
- },
- ),
- ],
- ).paddingOnly(left: 20, right: 20),
- Padding(
- padding: const EdgeInsets.all(20.0),
- child: AButton(
- text: widget.serviceRequest == null ? _subtitle.submit : _subtitle.update,
- onPressed: () async {
- if (!_formKey.currentState.validate()) return;
- if (_device?.id == null) {
- Fluttertoast.showToast(msg: _subtitle.pickDevice);
- return;
- }
- if (_serviceRequest.firstAction?.name == "Need a visit" && _dateTime == null) {
- Fluttertoast.showToast(msg: "first action is required");
- return;
- }
- if (widget.serviceRequest != null && (_serviceRequest?.engineerId == null || (_serviceRequest?.engineerId?.isEmpty ?? false))) {
- await Fluttertoast.showToast(msg: "No Assigned Employee");
- return;
- }
- _formKey.currentState.save();
- _serviceRequest.deviceId = _device?.id;
- if (widget.serviceRequest == null) {
- _serviceRequest.type = Provider.of(context, listen: false).getDefaultItem();
- }
- _serviceRequest.requestedThrough = Provider.of(context, listen: false).getDefaultItem();
- _isLoading = true;
- setState(() {});
- _serviceRequest.devicePhotos = _deviceImages.map((e) => _isLocalUrl(e.path) ? "${e.path.split("/").last}|${base64Encode(e.readAsBytesSync())}" : e.path).toList();
- if (_serviceRequest.audio != null) {
- if (_isLocalUrl(_serviceRequest.audio)) {
- final File file = File(_serviceRequest.audio);
- _serviceRequest.audio = "${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}";
- }
- }
- int status = 0;
- if (widget.serviceRequest == null) {
- status = await _serviceRequestsProvider.createRequest(
- user: _userProvider.user,
- host: _settingProvider.host,
- serviceRequest: _serviceRequest,
- );
- } else {
- status = await _serviceRequestsProvider.updateDate(
- user: _userProvider.user,
- host: _settingProvider.host,
- request: _serviceRequest,
- date: _dateTime,
- );
- }
- _isLoading = false;
- setState(() {});
- if (status >= 200 && status < 300) {
- 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),
- ));
- }
- },
- ),
- ),
- ],
- ),
- const ABackButton(),
+ ],
+ ),
+ ).expanded,
+ AppFilledButton(
+ onPressed: () async {
+ if (!_formKey.currentState.validate()) return;
+ if (_device?.id == null) {
+ Fluttertoast.showToast(msg: _subtitle.pickDevice);
+ return;
+ }
+ if (_serviceRequest.firstAction?.name == "Need a visit" && _dateTime == null) {
+ Fluttertoast.showToast(msg: "first action is required");
+ return;
+ }
+ if (widget.serviceRequest != null && (_serviceRequest?.engineerId == null || (_serviceRequest?.engineerId?.isEmpty ?? false))) {
+ await Fluttertoast.showToast(msg: "No Assigned Employee");
+ return;
+ }
+ _formKey.currentState.save();
+ _serviceRequest.deviceId = _device?.id;
+ if (widget.serviceRequest == null) {
+ _serviceRequest.type = Provider.of(context, listen: false).getDefaultItem();
+ }
+ _serviceRequest.requestedThrough = Provider.of(context, listen: false).getDefaultItem();
+ _isLoading = true;
+ setState(() {});
+ _serviceRequest.devicePhotos = _deviceImages.map((e) => _isLocalUrl(e.path) ? "${e.path.split("/").last}|${base64Encode(e.readAsBytesSync())}" : e.path).toList();
+ if (_serviceRequest.audio != null) {
+ if (_isLocalUrl(_serviceRequest.audio)) {
+ final File file = File(_serviceRequest.audio);
+ _serviceRequest.audio = "${file.path.split("/").last}|${base64Encode(file.readAsBytesSync())}";
+ }
+ }
+ int status = 0;
+ if (widget.serviceRequest == null) {
+ status = await _serviceRequestsProvider.createRequest(
+ user: _userProvider.user,
+ host: _settingProvider.host,
+ serviceRequest: _serviceRequest,
+ );
+ } else {
+ status = await _serviceRequestsProvider.updateDate(
+ user: _userProvider.user,
+ host: _settingProvider.host,
+ request: _serviceRequest,
+ date: _dateTime,
+ );
+ }
+ _isLoading = false;
+ setState(() {});
+ if (status >= 200 && status < 300) {
+ 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),
+ ));
+ }
+ },
+ label: TranslationKeys.submitRequest),
],
),
- ),
+ ).paddingOnly(start: 16, end: 16, bottom: 24, top: 16),
),
),
);
diff --git a/lib/views/pages/user/requests/request_details.dart b/lib/views/pages/user/requests/request_details.dart
index 457c9d9c..e237d7c7 100644
--- a/lib/views/pages/user/requests/request_details.dart
+++ b/lib/views/pages/user/requests/request_details.dart
@@ -5,7 +5,6 @@ import 'package:test_sa/controllers/localization/localization.dart';
import 'package:test_sa/controllers/providers/api/service_requests_provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
-import 'package:test_sa/extensions/context_extension.dart';
import 'package:test_sa/extensions/int_extensions.dart';
import 'package:test_sa/extensions/string_extensions.dart';
import 'package:test_sa/extensions/text_extensions.dart';
@@ -24,9 +23,7 @@ import 'package:test_sa/views/widgets/buttons/app_back_button.dart';
import 'package:test_sa/views/widgets/buttons/app_button.dart';
import 'package:test_sa/views/widgets/buttons/app_icon_button.dart';
import 'package:test_sa/views/widgets/images/files_list.dart';
-import 'package:test_sa/views/widgets/images/images_list.dart';
import 'package:test_sa/views/widgets/loaders/app_loading.dart';
-import 'package:test_sa/views/widgets/loaders/image_loader.dart';
import 'package:test_sa/views/widgets/requests/info_row.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
import 'package:test_sa/views/widgets/sound/sound_player.dart';
@@ -85,7 +82,7 @@ class RequestDetailsPage extends StatelessWidget {
8.height,
Text(serviceRequest.deviceEnName, style: AppTextStyles.heading5.copyWith(color: const Color(0xFF3B3D4A))),
Text(
- '${_subtitle.assetNumber}: ${serviceRequest.device.number}',
+ '${_subtitle.assetNumber}: ${serviceRequest.device.assetNumber}',
style: AppTextStyles.bodyText.copyWith(color: Color(0xFF757575)),
),
Text(
@@ -394,7 +391,7 @@ class RequestDetailsPage extends StatelessWidget {
// )
],
).expanded,
- AppFilledButton(label: TranslationKeys.login, maxWidth: true, onPressed: () {}).paddingOnly(left: 16, right: 16, bottom: 24),
+ AppFilledButton(label: TranslationKeys.login, maxWidth: true, onPressed: () {}).paddingOnly(start: 16, end: 16, bottom: 24),
],
),
// workOrders.isEmpty ?
diff --git a/lib/views/widgets/device_trancfer/device_transfer_info_section.dart b/lib/views/widgets/device_trancfer/device_transfer_info_section.dart
index a57d0ee6..d6e66d49 100644
--- a/lib/views/widgets/device_trancfer/device_transfer_info_section.dart
+++ b/lib/views/widgets/device_trancfer/device_transfer_info_section.dart
@@ -1,13 +1,13 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/localization/localization.dart';
-import 'package:test_sa/models/device/device_transfer_info.dart';
import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/widgets/loaders/image_loader.dart';
import 'package:test_sa/views/widgets/requests/info_row.dart';
import 'package:test_sa/views/widgets/requests/request_status.dart';
import '../../../controllers/providers/api/user_provider.dart';
+import '../../../models/asset/device_transfer_info.dart';
import '../images/multi_image_picker.dart';
class DeviceTransferInfoSection extends StatelessWidget {
diff --git a/lib/views/widgets/device_trancfer/device_transfer_item.dart b/lib/views/widgets/device_trancfer/device_transfer_item.dart
index 8061f679..924b84fa 100644
--- a/lib/views/widgets/device_trancfer/device_transfer_item.dart
+++ b/lib/views/widgets/device_trancfer/device_transfer_item.dart
@@ -2,17 +2,15 @@ import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:test_sa/controllers/localization/localization.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart';
-import 'package:test_sa/models/device/device_transfer.dart';
+import 'package:test_sa/models/asset/asset_transfer.dart';
import 'package:test_sa/models/subtitle.dart';
import 'package:test_sa/models/user.dart';
-import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/app_style/sizing.dart';
-import 'package:test_sa/views/widgets/requests/request_status.dart';
class DeviceTransferItem extends StatelessWidget {
final int index;
- final DeviceTransfer item;
- final Function(DeviceTransfer) onPressed;
+ final AssetTransfer item;
+ final Function(AssetTransfer) onPressed;
const DeviceTransferItem({Key key, this.item, this.onPressed, this.index}) : super(key: key);
@@ -47,21 +45,21 @@ class DeviceTransferItem extends StatelessWidget {
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
- item.title ?? "-----",
+ /*item.title ??*/ "-----",
style: Theme.of(context).textTheme.headline6.copyWith(color: onItemColor, fontSize: 16, fontWeight: FontWeight.bold),
),
Divider(
color: onItemColor,
),
Text(
- item.device?.number ?? "-----",
+ /*item.asset?.number ??*/ "-----",
style: Theme.of(context).textTheme.headline6.copyWith(color: onItemColor, fontSize: 16, fontWeight: FontWeight.bold),
),
Divider(
color: onItemColor,
),
Text(
- item.device.assetName ?? "",
+ /*item.asset.assetName ??*/ "",
style: Theme.of(context).textTheme.headline6.copyWith(color: onItemColor, fontSize: 16, fontWeight: FontWeight.bold),
),
Divider(
@@ -77,71 +75,71 @@ class DeviceTransferItem extends StatelessWidget {
),
),
),
- StatusLabel(
- backgroundColor: AColors.getRequestStatusColor(item.sender.status?.id),
- label: item.sender.status?.name,
- )
+ // StatusLabel(
+ // backgroundColor: AColors.getRequestStatusColor(item.sender.status?.id),
+ // label: item.sender.status?.name,
+ // )
],
),
//const SizedBox(height: 8,),
- Row(
- children: [
- Expanded(
- child: Text(
- item.sender.client.name,
- style: Theme.of(context).textTheme.subtitle2.copyWith(
- color: onItemColor,
- ),
- ),
- ),
- ],
- ),
- if (item.sender.department.id != null)
- Text(
- item.sender.department.name,
- style: Theme.of(context).textTheme.bodySmall.copyWith(
- color: onItemColor,
- ),
- ),
+ // Row(
+ // children: [
+ // Expanded(
+ // child: Text(
+ // item.sender.client.name,
+ // style: Theme.of(context).textTheme.subtitle2.copyWith(
+ // color: onItemColor,
+ // ),
+ // ),
+ // ),
+ // ],
+ // ),
+ // if (item.sender.department.id != null)
+ // Text(
+ // item.sender.department.name,
+ // style: Theme.of(context).textTheme.bodySmall.copyWith(
+ // color: onItemColor,
+ // ),
+ // ),
Divider(
color: onItemColor,
),
- Row(
- children: [
- Expanded(
- child: Text(
- _subtitle.to,
- style: Theme.of(context).textTheme.subtitle2.copyWith(
- color: onItemColor,
- ),
- ),
- ),
- StatusLabel(
- backgroundColor: AColors.getRequestStatusColor(item.receiver.status?.id),
- label: item.receiver.status?.name,
- )
- ],
- ),
- //const SizedBox(height: 8,),
- Row(
- children: [
- Expanded(
- child: Text(
- item.receiver.client.name,
- style: Theme.of(context).textTheme.subtitle2.copyWith(
- color: onItemColor,
- ),
- ),
- ),
- ],
- ),
- if (item.receiver.department.id != null)
- Text(
- item.receiver.department.name,
- style: Theme.of(context).textTheme.bodySmall.copyWith(
- color: onItemColor,
- ),
- ),
+ // Row(
+ // children: [
+ // Expanded(
+ // child: Text(
+ // _subtitle.to,
+ // style: Theme.of(context).textTheme.subtitle2.copyWith(
+ // color: onItemColor,
+ // ),
+ // ),
+ // ),
+ // StatusLabel(
+ // backgroundColor: AColors.getRequestStatusColor(item.receiver.status?.id),
+ // label: item.receiver.status?.name,
+ // )
+ // ],
+ // ),
+ // //const SizedBox(height: 8,),
+ // Row(
+ // children: [
+ // Expanded(
+ // child: Text(
+ // item.receiver.client.name,
+ // style: Theme.of(context).textTheme.subtitle2.copyWith(
+ // color: onItemColor,
+ // ),
+ // ),
+ // ),
+ // ],
+ // ),
+ // if (item.receiver.department.id != null)
+ // Text(
+ // item.receiver.department.name,
+ // style: Theme.of(context).textTheme.bodySmall.copyWith(
+ // color: onItemColor,
+ // ),
+ // ),
//Divider(color: onItemColor,),
],
),
diff --git a/lib/views/widgets/device_trancfer/device_transfer_list.dart b/lib/views/widgets/device_trancfer/device_transfer_list.dart
index a90c74aa..dd72a3c6 100644
--- a/lib/views/widgets/device_trancfer/device_transfer_list.dart
+++ b/lib/views/widgets/device_trancfer/device_transfer_list.dart
@@ -1,6 +1,6 @@
import 'package:flutter/material.dart';
import 'package:test_sa/controllers/localization/localization.dart';
-import 'package:test_sa/models/device/device_transfer.dart';
+import 'package:test_sa/models/asset/asset_transfer.dart';
import 'package:test_sa/models/subtitle.dart';
import 'package:test_sa/views/pages/device_transfer/device_transfer_details.dart';
import 'package:test_sa/views/widgets/device_trancfer/device_transfer_item.dart';
@@ -8,7 +8,7 @@ import 'package:test_sa/views/widgets/loaders/lazy_loading.dart';
import 'package:test_sa/views/widgets/loaders/no_item_found.dart';
class DeviceTransferList extends StatelessWidget {
- final List items;
+ final List items;
final bool nextPage;
final Future Function() onLazyLoad;
diff --git a/lib/views/widgets/drawer/drawer_item.dart b/lib/views/widgets/drawer/drawer_item.dart
index 70e072ea..dfbbcf04 100644
--- a/lib/views/widgets/drawer/drawer_item.dart
+++ b/lib/views/widgets/drawer/drawer_item.dart
@@ -33,7 +33,7 @@ class DrawerItem extends StatelessWidget {
textScaleFactor: AppStyle.getScaleFactor(context),
),
],
- ).paddingOnly(left: 20, right: 20),
+ ).paddingOnly(start: 20, end: 20),
),
);
}
diff --git a/lib/views/widgets/equipment/auto_complete_devices_field.dart b/lib/views/widgets/equipment/auto_complete_devices_field.dart
index 0d45aa6e..541378ab 100644
--- a/lib/views/widgets/equipment/auto_complete_devices_field.dart
+++ b/lib/views/widgets/equipment/auto_complete_devices_field.dart
@@ -4,13 +4,14 @@ import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/devices_provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
-import 'package:test_sa/models/device/device.dart';
import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/app_style/sizing.dart';
import 'package:test_sa/views/widgets/loaders/loading_manager.dart';
+import '../../../models/asset/asset.dart';
+
class AutoCompleteDeviceField extends StatefulWidget {
- final Device initialValue;
+ final Asset initialValue;
final int hospitalId;
final Function(int) onPick;
@@ -22,13 +23,13 @@ class AutoCompleteDeviceField extends StatefulWidget {
class _AutoCompleteDeviceFieldState extends State {
SettingProvider _settingProvider;
- DevicesProvider _devicesProvider;
+ AssetProvider _devicesProvider;
UserProvider _userProvider;
TextEditingController _controller;
@override
void initState() {
- _controller = TextEditingController(text: widget.initialValue.serialNumber);
+ _controller = TextEditingController(text: widget.initialValue.assetSerialNo);
super.initState();
}
@@ -42,7 +43,7 @@ class _AutoCompleteDeviceFieldState extends State {
Widget build(BuildContext context) {
_settingProvider = Provider.of(context);
_userProvider = Provider.of(context);
- _devicesProvider = Provider.of(context);
+ _devicesProvider = Provider.of(context);
//Subtitle _subtitle = AppLocalization.of(context).subtitle;
return LoadingManager(
isLoading: _devicesProvider.isLoading,
@@ -59,7 +60,7 @@ class _AutoCompleteDeviceFieldState extends State {
border: Border.all(color: AColors.black),
borderRadius: BorderRadius.circular(AppStyle.borderRadius * AppStyle.getScaleFactor(context)),
boxShadow: [AppStyle.boxShadow]),
- child: TypeAheadField(
+ child: TypeAheadField(
textFieldConfiguration: TextFieldConfiguration(
style: Theme.of(context).textTheme.headline6,
controller: _controller,
@@ -82,12 +83,12 @@ class _AutoCompleteDeviceFieldState extends State {
},
itemBuilder: (context, device) {
return ListTile(
- title: Text(device.serialNumber),
+ title: Text(device.assetSerialNo),
subtitle: Text("${device.modelDefinition.modelName}/${device.modelDefinition.manufacturerName}"),
);
},
onSuggestionSelected: (device) {
- _controller.text = device.serialNumber;
+ _controller.text = device.assetSerialNo;
widget.onPick(device.id);
},
),
diff --git a/lib/views/widgets/equipment/auto_complete_models_field.dart b/lib/views/widgets/equipment/auto_complete_models_field.dart
index 7b2c7555..29cb6e0d 100644
--- a/lib/views/widgets/equipment/auto_complete_models_field.dart
+++ b/lib/views/widgets/equipment/auto_complete_models_field.dart
@@ -24,7 +24,7 @@ class AutoCompleteModelField extends StatefulWidget {
class _AutoCompleteModelFieldState extends State {
SettingProvider _settingProvider;
- DevicesProvider _devicesProvider;
+ AssetProvider _devicesProvider;
UserProvider _userProvider;
TextEditingController _controller;
@@ -44,7 +44,7 @@ class _AutoCompleteModelFieldState extends State {
Widget build(BuildContext context) {
_settingProvider = Provider.of(context);
_userProvider = Provider.of(context);
- _devicesProvider = Provider.of(context);
+ _devicesProvider = Provider.of(context);
//Subtitle _subtitle = AppLocalization.of(context).subtitle;
return Container(
padding: const EdgeInsets.symmetric(horizontal: 16),
diff --git a/lib/views/widgets/equipment/device_button.dart b/lib/views/widgets/equipment/device_button.dart
deleted file mode 100644
index 8a8b78c0..00000000
--- a/lib/views/widgets/equipment/device_button.dart
+++ /dev/null
@@ -1,98 +0,0 @@
-import 'package:flutter/material.dart';
-import 'package:font_awesome_flutter/font_awesome_flutter.dart';
-import 'package:test_sa/controllers/localization/localization.dart';
-import 'package:test_sa/models/device/device.dart';
-import 'package:test_sa/models/subtitle.dart';
-import 'package:test_sa/views/app_style/colors.dart';
-import 'package:test_sa/views/app_style/sizing.dart';
-import 'package:test_sa/views/widgets/equipment/single_device_picker.dart';
-
-class DeviceButton extends StatelessWidget {
- final Function(Device) onDevicePick;
- final Device device;
-
- const DeviceButton({Key key, this.device, this.onDevicePick}) : super(key: key);
-
- @override
- Widget build(BuildContext context) {
- Subtitle _subtitle = AppLocalization.of(context).subtitle;
- return ElevatedButton(
- style: ElevatedButton.styleFrom(
- elevation: 0,
- padding: EdgeInsets.symmetric(horizontal: 16, vertical: device == null ? 12 : 8),
- shape: RoundedRectangleBorder(
- borderRadius: BorderRadius.circular(AppStyle.borderRadius * AppStyle.getScaleFactor(context)),
- ),
- foregroundColor: AColors.primaryColor,
- backgroundColor: AColors.inputFieldBackgroundColor,
- ),
- child: Row(
- children: [
- FaIcon(
- FontAwesomeIcons.hardDrive,
- size: 28,
- color: AColors.black,
- ),
- device == null
- ? Expanded(
- child: Padding(
- padding: const EdgeInsets.symmetric(horizontal: 6),
- child: Text(
- _subtitle.pickDevice,
- style: Theme.of(context).textTheme.subtitle1,
- textScaleFactor: AppStyle.getScaleFactor(context),
- textDirection: TextDirection.rtl,
- textAlign: TextAlign.left,
- ),
- ),
- )
- : Expanded(
- child: ListTile(
- contentPadding: EdgeInsets.all(0),
- title: Text(
- "${_subtitle.sn} : " + device.serialNumber,
- style: Theme.of(context).textTheme.subtitle1,
- ),
- subtitle: Column(
- crossAxisAlignment: CrossAxisAlignment.start,
- children: [
- Divider(
- color: Theme.of(context).textTheme.subtitle1.color,
- ),
- Text(
- "${_subtitle.assetNumber} : ${device.number}",
- style: Theme.of(context).textTheme.subtitle2,
- ),
- Divider(
- color: Theme.of(context).textTheme.subtitle1.color,
- ),
- Text(
- "${_subtitle.assetName} : ${device.modelDefinition.assetName}",
- style: Theme.of(context).textTheme.subtitle2,
- ),
- Divider(
- color: Theme.of(context).textTheme.subtitle1.color,
- ),
- Text(
- "${_subtitle.brand} : ${device.modelDefinition.manufacturerName}",
- style: Theme.of(context).textTheme.subtitle2,
- ),
- Divider(
- color: Theme.of(context).textTheme.subtitle1.color,
- ),
- Text(
- "${_subtitle.model} : ${device.modelDefinition.modelName}",
- style: Theme.of(context).textTheme.subtitle2,
- ),
- ],
- ),
- )),
- const Icon(Icons.keyboard_arrow_down, size: 28, color: AColors.grey3A),
- ],
- ),
- onPressed: () async {
- Device _device = await Navigator.of(context).pushNamed(SingleDevicePicker.id) as Device;
- onDevicePick(_device);
- });
- }
-}
diff --git a/lib/views/widgets/equipment/device_item.dart b/lib/views/widgets/equipment/device_item.dart
index 19838675..08118523 100644
--- a/lib/views/widgets/equipment/device_item.dart
+++ b/lib/views/widgets/equipment/device_item.dart
@@ -1,13 +1,14 @@
import 'package:flutter/material.dart';
import 'package:test_sa/controllers/localization/localization.dart';
-import 'package:test_sa/models/device/device.dart';
import 'package:test_sa/models/subtitle.dart';
import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/app_style/sizing.dart';
+import '../../../models/asset/asset.dart';
+
class DeviceItem extends StatelessWidget {
- final Device device;
- final Function(Device) onPressed;
+ final Asset device;
+ final Function(Asset) onPressed;
const DeviceItem({Key key, this.device, this.onPressed}) : super(key: key);
@@ -38,7 +39,7 @@ class DeviceItem extends StatelessWidget {
color: Theme.of(context).scaffoldBackgroundColor,
),
Text(
- "${_subtitle.assetNumber} : ${device.number}",
+ "${_subtitle.assetNumber} : ${device.assetNumber}",
style: Theme.of(context).textTheme.subtitle1.copyWith(color: AColors.white),
),
Divider(
diff --git a/lib/views/widgets/equipment/pick_asset.dart b/lib/views/widgets/equipment/pick_asset.dart
new file mode 100644
index 00000000..317c8eab
--- /dev/null
+++ b/lib/views/widgets/equipment/pick_asset.dart
@@ -0,0 +1,112 @@
+import 'package:flutter/material.dart';
+import 'package:test_sa/extensions/context_extension.dart';
+import 'package:test_sa/extensions/int_extensions.dart';
+import 'package:test_sa/extensions/text_extensions.dart';
+import 'package:test_sa/extensions/widget_extensions.dart';
+import 'package:test_sa/models/enums/translation_keys.dart';
+import 'package:test_sa/new_views/common_widgets/app_text_form_field.dart';
+import 'package:test_sa/views/widgets/equipment/single_device_picker.dart';
+
+import '../../../models/asset/asset.dart';
+
+class PickAsset extends StatelessWidget {
+ final Function(Asset) onPickAsset;
+ final Asset asset;
+
+ const PickAsset({Key key, this.asset, this.onPickAsset}) : super(key: key);
+
+ @override
+ Widget build(BuildContext context) {
+ return Column(
+ children: [
+ AppTextFormField(
+ enable: false,
+ labelText: TranslationKeys.submitRequest,
+ initialValue: context.translate(TranslationKeys.site),
+ suffixIcon: "qr".toSvgAsset(height: 24, fit: BoxFit.fitHeight).paddingOnly(end: 16),
+ ).onPress(() async {
+ Asset device = await Navigator.of(context).pushNamed(SingleDevicePicker.id) as Asset;
+ onPickAsset(device);
+ }),
+ if (asset != null) 8.height,
+ if (asset != null)
+ Card(
+ child: Column(
+ crossAxisAlignment: CrossAxisAlignment.stretch,
+ children: [
+ context.translate(TranslationKeys.myAssets).heading5(context),
+ 8.height,
+ "${context.translate(TranslationKeys.myAssets)}: ${asset.assetNumber}".bodyText(context),
+ "${context.translate(TranslationKeys.myAssets)}: ${asset.id}".bodyText(context),
+ "${context.translate(TranslationKeys.myAssets)}: ${asset.assetNumber}".bodyText(context),
+ "${context.translate(TranslationKeys.myAssets)}: ${asset.assetNumber}".bodyText(context),
+ const Divider().defaultStyle(context),
+ "${context.translate(TranslationKeys.myAssets)}: ${asset.assetNumber}".bodyText(context),
+ "${context.translate(TranslationKeys.myAssets)}: ${asset.assetNumber}".bodyText(context),
+ ],
+ ).paddingAll(16),
+ ),
+ ],
+ );
+ // return ElevatedButton(
+ // style: ElevatedButton.styleFrom(
+ // elevation: 0,
+ // padding: EdgeInsets.symmetric(horizontal: 16, vertical: device == null ? 12 : 8),
+ // shape: RoundedRectangleBorder(
+ // borderRadius: BorderRadius.circular(AppStyle.borderRadius * AppStyle.getScaleFactor(context)),
+ // ),
+ // foregroundColor: AColors.primaryColor,
+ // backgroundColor: AColors.inputFieldBackgroundColor,
+ // ),
+ // child: Row(
+ // children: [
+ // Expanded(
+ // child: ListTile(
+ // contentPadding: const EdgeInsets.all(0),
+ // title: Text(
+ // "${"context"} : ${device.serialNumber}",
+ // style: Theme.of(context).textTheme.subtitle1,
+ // ),
+ // subtitle: Column(
+ // crossAxisAlignment: CrossAxisAlignment.start,
+ // children: [
+ // Divider(
+ // color: Theme.of(context).textTheme.subtitle1.color,
+ // ),
+ // Text(
+ // "${_subtitle.assetNumber} : ${device.number}",
+ // style: Theme.of(context).textTheme.subtitle2,
+ // ),
+ // Divider(
+ // color: Theme.of(context).textTheme.subtitle1.color,
+ // ),
+ // Text(
+ // "${_subtitle.assetName} : ${device.modelDefinition.assetName}",
+ // style: Theme.of(context).textTheme.subtitle2,
+ // ),
+ // Divider(
+ // color: Theme.of(context).textTheme.subtitle1.color,
+ // ),
+ // Text(
+ // "${_subtitle.brand} : ${device.modelDefinition.manufacturerName}",
+ // style: Theme.of(context).textTheme.subtitle2,
+ // ),
+ // Divider(
+ // color: Theme.of(context).textTheme.subtitle1.color,
+ // ),
+ // Text(
+ // "${_subtitle.model} : ${device.modelDefinition.modelName}",
+ // style: Theme.of(context).textTheme.subtitle2,
+ // ),
+ // ],
+ // ),
+ // )),
+ // const Icon(Icons.keyboard_arrow_down, size: 28, color: AColors.grey3A),
+ // ],
+ // ),
+ // onPressed: () async {
+ // Device _device = await Navigator.of(context).pushNamed(SingleDevicePicker.id) as Device;
+ // onDevicePick(_device);
+ // });
+ }
+}
diff --git a/lib/views/widgets/equipment/single_device_picker.dart b/lib/views/widgets/equipment/single_device_picker.dart
index 2acfae14..3d715623 100644
--- a/lib/views/widgets/equipment/single_device_picker.dart
+++ b/lib/views/widgets/equipment/single_device_picker.dart
@@ -4,13 +4,13 @@ import 'package:test_sa/controllers/localization/localization.dart';
import 'package:test_sa/controllers/providers/api/devices_provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart';
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';
+import '../../../models/asset/asset.dart';
import '../app_text_form_field.dart';
import '../qr/scan_qr.dart';
@@ -23,11 +23,11 @@ class SingleDevicePicker extends StatefulWidget {
}
class _SingleDevicePickerState extends State {
- DevicesProvider _devicesProvider;
+ AssetProvider _devicesProvider;
UserProvider _userProvider;
SettingProvider _settingProvider;
- List _searchableList = [];
- List _initList = [];
+ List _searchableList = [];
+ List _initList = [];
bool _firstTime = true;
Subtitle _subtitle;
@@ -72,7 +72,7 @@ class _SingleDevicePickerState extends State {
@override
Widget build(BuildContext context) {
- _devicesProvider = Provider.of(context);
+ _devicesProvider = Provider.of(context);
_userProvider = Provider.of(context);
_settingProvider = Provider.of(context);
diff --git a/lib/views/widgets/pentry/auto_complete_fields/auto_complete_devices_field.dart b/lib/views/widgets/pentry/auto_complete_fields/auto_complete_devices_field.dart
index 0691e452..8fd2119e 100644
--- a/lib/views/widgets/pentry/auto_complete_fields/auto_complete_devices_field.dart
+++ b/lib/views/widgets/pentry/auto_complete_fields/auto_complete_devices_field.dart
@@ -4,11 +4,12 @@ import 'package:provider/provider.dart';
import 'package:test_sa/controllers/providers/api/devices_provider.dart';
import 'package:test_sa/controllers/providers/api/user_provider.dart';
import 'package:test_sa/controllers/providers/settings/setting_provider.dart';
-import 'package:test_sa/models/device/device.dart';
import 'package:test_sa/models/lookup.dart';
import 'package:test_sa/views/app_style/colors.dart';
import 'package:test_sa/views/app_style/sizing.dart';
+import '../../../../models/asset/asset.dart';
+
class AutoCompleteDeviceNumberField extends StatefulWidget {
final Lookup initialValue;
final int hospitalId;
@@ -22,7 +23,7 @@ class AutoCompleteDeviceNumberField extends StatefulWidget {
class _AutoCompleteDeviceNumberFieldState extends State {
SettingProvider _settingProvider;
- DevicesProvider _devicesProvider;
+ AssetProvider _devicesProvider;
UserProvider _userProvider;
TextEditingController _controller;
@@ -42,7 +43,7 @@ class _AutoCompleteDeviceNumberFieldState extends State(context);
_userProvider = Provider.of(context);
- _devicesProvider = Provider.of(context);
+ _devicesProvider = Provider.of(context);
//Subtitle _subtitle = AppLocalization.of(context).subtitle;
return Container(
padding: const EdgeInsets.symmetric(horizontal: 16),
@@ -51,7 +52,7 @@ class _AutoCompleteDeviceNumberFieldState extends State(
+ child: TypeAheadField(
textFieldConfiguration: TextFieldConfiguration(
style: Theme.of(context).textTheme.headline6,
controller: _controller,
@@ -74,13 +75,13 @@ class _AutoCompleteDeviceNumberFieldState extends State with TickerProviderStateMixin {
- DeviceTransferSearch _search;
+ AssetTransferSearch _search;
final GlobalKey _formKey = GlobalKey();
bool _isLoading = false;
@override
void initState() {
super.initState();
- _search = DeviceTransferSearch();
- _search.fromSearch(widget.initialSearchValue);
+ _search = AssetTransferSearch();
+ // _search.fromSearch(widget.initialSearchValue);
}
@override
@@ -84,16 +79,16 @@ class AssetTransferSearchDialogState extends State wi
},
),
SizedBox(height: 8.0 * AppStyle.getScaleFactor(context)),
- DeviceButton(
- device: _search.device,
- onDevicePick: (device) {
- _search.device = device;
+ PickAsset(
+ asset: _search.asset,
+ onPickAsset: (device) {
+ _search.asset = device;
setState(() {});
},
),
SizedBox(height: 8.0 * AppStyle.getScaleFactor(context)),
ATextFormField(
- initialValue: _search.title,
+ initialValue: "_search.title",
hintText: subtitle.title,
style: Theme.of(context).textTheme.titleLarge,
textInputAction: TextInputAction.search,
@@ -105,64 +100,64 @@ class AssetTransferSearchDialogState extends State wi
Navigator.of(context).pop(_search);
},
onSaved: (value) {
- _search.title = value;
+ // _search.title = value;
},
),
SizedBox(height: 8.0 * AppStyle.getScaleFactor(context)),
- HospitalAutoCompleteField(
- initialValue: _search?.hospital?.name,
- onSearch: (selected) async {
- _search.building = null;
- _search.floor = null;
- _search.department = null;
- _search.buildingsList = null;
- _search.floorsList = null;
- _search.departmentsList = null;
- _isLoading = true;
- setState(() {});
- await HospitalsProvider().getHospitalsListByVal(searchVal: selected?.name ?? "").then((value) {
- _search.hospital = value?.firstWhere((element) => element.name == selected.name, orElse: () => null);
- _search.buildingsList = _search.hospital?.buildings;
- });
- _isLoading = false;
- setState(() {});
- },
- ),
+ // HospitalAutoCompleteField(
+ // initialValue: _search?.hospital?.name,
+ // onSearch: (selected) async {
+ // _search.building = null;
+ // _search.floor = null;
+ // _search.department = null;
+ // _search.buildingsList = null;
+ // _search.floorsList = null;
+ // _search.departmentsList = null;
+ // _isLoading = true;
+ // setState(() {});
+ // await HospitalsProvider().getHospitalsListByVal(searchVal: selected?.name ?? "").then((value) {
+ // _search.hospital = value?.firstWhere((element) => element.name == selected.name, orElse: () => null);
+ // _search.buildingsList = _search.hospital?.buildings;
+ // });
+ // _isLoading = false;
+ // setState(() {});
+ // },
+ // ),
const SizedBox(height: 8),
- BuildingTypeMenu(
- initialValue: _search?.building,
- building: _search.buildingsList,
- enabled: !_isLoading,
- onSelect: (status) {
- _search.building = status;
- _search.floorsList = status?.floors;
- setState(() {});
- },
- ),
+ // BuildingTypeMenu(
+ // initialValue: _search?.building,
+ // building: _search.buildingsList,
+ // enabled: !_isLoading,
+ // onSelect: (status) {
+ // _search.building = status;
+ // _search.floorsList = status?.floors;
+ // setState(() {});
+ // },
+ // ),
const SizedBox(height: 8),
- FloorTypeMenu(
- initialValue: _search?.floor,
- floors: _search.floorsList,
- enabled: !_isLoading,
- onSelect: (status) {
- _search.floor = status;
- _search.departmentsList = _search.floor?.departments;
- setState(() {});
- },
- ),
+ // FloorTypeMenu(
+ // initialValue: _search?.floor,
+ // floors: _search.floorsList,
+ // enabled: !_isLoading,
+ // onSelect: (status) {
+ // _search.floor = status;
+ // _search.departmentsList = _search.floor?.departments;
+ // setState(() {});
+ // },
+ // ),
const SizedBox(height: 8),
- DepartmentTypeMenu(
- initialValue: _search?.department,
- departments: _search.departmentsList,
- enabled: !_isLoading,
- onSelect: (status) {
- _search.department = status;
- setState(() {});
- },
- ),
+ // DepartmentTypeMenu(
+ // initialValue: _search?.department,
+ // departments: _search.departmentsList,
+ // enabled: !_isLoading,
+ // onSelect: (status) {
+ // _search.department = status;
+ // setState(() {});
+ // },
+ // ),
SizedBox(height: 8.0 * AppStyle.getScaleFactor(context)),
ATextFormField(
- initialValue: _search.room,
+ initialValue: "_search.room",
hintText: subtitle.room,
style: Theme.of(context).textTheme.titleLarge,
textInputAction: TextInputAction.search,
@@ -174,24 +169,24 @@ class AssetTransferSearchDialogState extends State wi
Navigator.of(context).pop(_search);
},
onSaved: (value) {
- _search.room = value;
+ // _search.room = value;
},
),
SizedBox(height: 16.0 * AppStyle.getScaleFactor(context)),
- Visibility(
- visible: (_search.toMap()..remove("mostRecent"))?.isNotEmpty ?? false,
- child: Padding(
- padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 16),
- child: AButton(
- padding: EdgeInsets.zero,
- text: subtitle.clearSearch,
- onPressed: () {
- _search = DeviceTransferSearch();
- Navigator.of(context).pop(_search);
- },
- ),
- ),
- ),
+ // Visibility(
+ // visible: (_search.toMap()..remove("mostRecent"))?.isNotEmpty ?? false,
+ // child: Padding(
+ // padding: const EdgeInsets.symmetric(vertical: 8, horizontal: 16),
+ // child: AButton(
+ // padding: EdgeInsets.zero,
+ // text: subtitle.clearSearch,
+ // onPressed: () {
+ // _search = DeviceTransferSearch();
+ // Navigator.of(context).pop(_search);
+ // },
+ // ),
+ // ),
+ // ),
],
),
),