You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
3.9 KiB
Dart
119 lines
3.9 KiB
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';
|
|
|
|
class ServiceRequest{
|
|
String id;
|
|
String requestCode;
|
|
String deviceSerialNumber;
|
|
int deviceId;
|
|
String deviceArName;
|
|
String deviceEnName;
|
|
List<String> devicePhotos;
|
|
String maintenanceIssue;
|
|
String hospitalName;
|
|
int hospitalId;
|
|
String departmentName;
|
|
String engineerName;
|
|
String date;
|
|
String audio;
|
|
int statusValue;
|
|
String statusLabel;
|
|
|
|
bool viewReport;
|
|
String engineerMobile;
|
|
String deviceModel;
|
|
String faultDescription;
|
|
String workPerformed;
|
|
String visitDate;
|
|
DateTime nextVisitDate;
|
|
String jobSheetNumber;
|
|
int reportID;
|
|
String deviceNumber;
|
|
Lookup priority;
|
|
Lookup defectType;
|
|
Lookup type;
|
|
Lookup requestedThrough;
|
|
Device device;
|
|
|
|
ServiceRequest({
|
|
this.id,
|
|
this.date,
|
|
this.requestCode,
|
|
this.hospitalName,
|
|
this.deviceArName,
|
|
this.deviceEnName,
|
|
this.devicePhotos,
|
|
this.hospitalId,
|
|
this.deviceSerialNumber,
|
|
this.maintenanceIssue,
|
|
this.statusLabel,
|
|
this.statusValue,
|
|
this.departmentName,
|
|
this.deviceId,
|
|
this.audio,
|
|
this.engineerName,
|
|
|
|
this.viewReport = false,
|
|
this.deviceModel,
|
|
this.engineerMobile,
|
|
this.faultDescription,
|
|
this.jobSheetNumber,
|
|
this.visitDate,
|
|
this.nextVisitDate,
|
|
this.workPerformed,
|
|
this.reportID,
|
|
this.defectType,
|
|
this.priority,
|
|
this.deviceNumber,
|
|
this.type,
|
|
this.requestedThrough,
|
|
this.device,
|
|
});
|
|
|
|
factory ServiceRequest.fromJson(Map<String,dynamic> parsedJson){
|
|
List<String> images = [];
|
|
if(parsedJson["attachmentsCallRequest"] is List){
|
|
List list = parsedJson["attachmentsCallRequest"];
|
|
images = list.map((e) => URLs.getFileUrl(e["attachmentsCallRequest"])).toList();
|
|
}
|
|
return ServiceRequest(
|
|
id: parsedJson["id"].toString(),
|
|
requestCode: parsedJson["callNo"].toString(),
|
|
hospitalName: parsedJson["asset"]["site"]["custName"],
|
|
deviceNumber: parsedJson["asset"]["assetNumber"].toString(),
|
|
deviceId: parsedJson["asset"]["id"],
|
|
audio: URLs.getFileUrl(parsedJson["voiceNote"] ?? ""),
|
|
deviceArName: parsedJson["asset"]["modelDefinition"]["assetName"] ?? "",
|
|
deviceEnName: parsedJson["asset"]["modelDefinition"]["assetName"] ?? "",
|
|
devicePhotos: images,
|
|
deviceSerialNumber: parsedJson["asset"]["assetSerialNo"],
|
|
date: DateTime.tryParse(parsedJson["requestedDate"] ?? "").toString().split(" ").first,
|
|
maintenanceIssue: parsedJson["comments"],
|
|
statusLabel: parsedJson["status"] == null ? null :
|
|
parsedJson["status"]["name"],
|
|
statusValue: parsedJson["status"] == null ? null :
|
|
parsedJson["status"]["value"],
|
|
departmentName: parsedJson["asset"]["department"] != null ?
|
|
parsedJson["asset"]["department"]["name"] : "",
|
|
engineerName: parsedJson["assignedEmployee"] == null ? null :
|
|
parsedJson["assignedEmployee"]["name"],
|
|
hospitalId: parsedJson["asset"]["site"]["id"],
|
|
reportID: parsedJson["workOrder"] != null ?
|
|
parsedJson["workOrder"]["workOrderId"] : null,
|
|
viewReport: parsedJson["workOrder"] != null,
|
|
deviceModel: parsedJson["asset"]["modelDefinition"]["modelName"],
|
|
engineerMobile: parsedJson["assignedEmployee"] == null ? null :
|
|
parsedJson["assignedEmployee"]["phone"],
|
|
faultDescription: parsedJson["workOrder"] != null ?
|
|
parsedJson["workOrder"]["faultDescription"] : null,
|
|
jobSheetNumber: parsedJson["workOrder"] != null ?
|
|
parsedJson["workOrder"]["jobSheetNumber"] :null,
|
|
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"])
|
|
);
|
|
}
|
|
} |