|
|
|
|
@ -12,6 +12,31 @@ import 'package:test_sa/models/ppm/ppm_contacts.dart';
|
|
|
|
|
import 'package:test_sa/models/ppm/ppm_kit.dart';
|
|
|
|
|
import 'package:test_sa/models/timer_model.dart';
|
|
|
|
|
|
|
|
|
|
class VisitTimers {
|
|
|
|
|
int id;
|
|
|
|
|
String startDateTime;
|
|
|
|
|
String endDateTime;
|
|
|
|
|
double workingHours;
|
|
|
|
|
|
|
|
|
|
VisitTimers({this.id, this.startDateTime, this.endDateTime, this.workingHours});
|
|
|
|
|
|
|
|
|
|
VisitTimers.fromJson(Map<String, dynamic> json) {
|
|
|
|
|
id = json['id'];
|
|
|
|
|
startDateTime = json['startDateTime'];
|
|
|
|
|
endDateTime = json['endDateTime'];
|
|
|
|
|
workingHours = json['workingHours'];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic> toJson() {
|
|
|
|
|
final Map<String, dynamic> data = new Map<String, dynamic>();
|
|
|
|
|
data['id'] = this.id;
|
|
|
|
|
data['startDateTime'] = this.startDateTime;
|
|
|
|
|
data['endDateTime'] = this.endDateTime;
|
|
|
|
|
data['workingHours'] = this.workingHours;
|
|
|
|
|
return data;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class Ppm {
|
|
|
|
|
Ppm({
|
|
|
|
|
this.id,
|
|
|
|
|
@ -37,6 +62,7 @@ class Ppm {
|
|
|
|
|
this.vChecklists,
|
|
|
|
|
this.files,
|
|
|
|
|
this.visitStatusId,
|
|
|
|
|
this.visitTimers,
|
|
|
|
|
this.startDate,
|
|
|
|
|
this.endDate,
|
|
|
|
|
this.workingHours,
|
|
|
|
|
@ -87,9 +113,9 @@ class Ppm {
|
|
|
|
|
this.safetyName,
|
|
|
|
|
this.siteId,
|
|
|
|
|
this.siteName,
|
|
|
|
|
this. buildingName,
|
|
|
|
|
this. floorName,
|
|
|
|
|
this. roomName,
|
|
|
|
|
this.buildingName,
|
|
|
|
|
this.floorName,
|
|
|
|
|
this.roomName,
|
|
|
|
|
this.supplierName,
|
|
|
|
|
this.suppPerson,
|
|
|
|
|
this.taskStatusName,
|
|
|
|
|
@ -151,18 +177,25 @@ class Ppm {
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
visitStatusId = json['visitStatusId'];
|
|
|
|
|
visitTimers = <VisitTimers>[];
|
|
|
|
|
if (json['visitTimers'] != null) {
|
|
|
|
|
json['visitTimers'].forEach((v) {
|
|
|
|
|
visitTimers.add(VisitTimers.fromJson(v));
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
startDate = json['startDate'];
|
|
|
|
|
endDate = json['endDate'];
|
|
|
|
|
workingHours = json['workingHours'];
|
|
|
|
|
try {
|
|
|
|
|
tbsTimer = TimerModel(startAt: DateTime.tryParse(startDate ?? ""), endAt: DateTime.tryParse(endDate ?? ""));
|
|
|
|
|
if (tbsTimer.endAt != null && tbsTimer.startAt != null) {
|
|
|
|
|
tbsTimer.durationInSecond = (tbsTimer.endAt.difference(tbsTimer.startAt))?.inSeconds;
|
|
|
|
|
workingHours = (((tbsTimer.durationInSecond ?? 0) / 60) / 60).toStringAsFixed(2);
|
|
|
|
|
}
|
|
|
|
|
} catch (e) {
|
|
|
|
|
print(e.toString());
|
|
|
|
|
}
|
|
|
|
|
tbsTimer= TimerModel();
|
|
|
|
|
// try {
|
|
|
|
|
// tbsTimer = TimerModel(startAt: DateTime.tryParse(startDate ?? ""), endAt: DateTime.tryParse(endDate ?? ""));
|
|
|
|
|
// if (tbsTimer.endAt != null && tbsTimer.startAt != null) {
|
|
|
|
|
// tbsTimer.durationInSecond = (tbsTimer.endAt.difference(tbsTimer.startAt))?.inSeconds;
|
|
|
|
|
// workingHours = (((tbsTimer.durationInSecond ?? 0) / 60) / 60).toStringAsFixed(2);
|
|
|
|
|
// }
|
|
|
|
|
// } catch (e) {
|
|
|
|
|
// print(e.toString());
|
|
|
|
|
// }
|
|
|
|
|
travelingHours = json['travelingHours'];
|
|
|
|
|
deviceStatusId = json['deviceStatusId'];
|
|
|
|
|
comments = json['comments'];
|
|
|
|
|
@ -255,6 +288,8 @@ class Ppm {
|
|
|
|
|
List<PpmChecklists> vChecklists;
|
|
|
|
|
List<PpmAttachments> files;
|
|
|
|
|
num visitStatusId;
|
|
|
|
|
|
|
|
|
|
List<VisitTimers> visitTimers;
|
|
|
|
|
String startDate;
|
|
|
|
|
String endDate;
|
|
|
|
|
String workingHours;
|
|
|
|
|
@ -347,6 +382,7 @@ class Ppm {
|
|
|
|
|
List<PpmChecklists> vChecklists,
|
|
|
|
|
List<PpmAttachments> files,
|
|
|
|
|
num visitStatusId,
|
|
|
|
|
List<VisitTimers> visitTimers,
|
|
|
|
|
String startDate,
|
|
|
|
|
String endDate,
|
|
|
|
|
String workingHours,
|
|
|
|
|
@ -437,6 +473,7 @@ class Ppm {
|
|
|
|
|
vChecklists: vChecklists ?? this.vChecklists,
|
|
|
|
|
files: files ?? this.files,
|
|
|
|
|
visitStatusId: visitStatusId ?? this.visitStatusId,
|
|
|
|
|
visitTimers: visitTimers ?? this.visitTimers,
|
|
|
|
|
startDate: startDate ?? this.startDate,
|
|
|
|
|
endDate: endDate ?? this.endDate,
|
|
|
|
|
workingHours: workingHours ?? this.workingHours,
|
|
|
|
|
@ -541,9 +578,12 @@ class Ppm {
|
|
|
|
|
.toList();
|
|
|
|
|
}
|
|
|
|
|
map['visitStatusId'] = visitStatusId;
|
|
|
|
|
map['startDate'] = tbsTimer?.startAt?.toIso8601String();
|
|
|
|
|
map['endDate'] = tbsTimer?.endAt?.toIso8601String();
|
|
|
|
|
map['workingHours'] = ((tbsTimer?.durationInSecond ?? 0) / 60 / 60).toStringAsFixed(5);
|
|
|
|
|
if (this.visitTimers != null) {
|
|
|
|
|
map['visitTimers'] = this.visitTimers.map((v) => v.toJson()).toList();
|
|
|
|
|
}
|
|
|
|
|
// map['startDate'] = tbsTimer?.startAt?.toIso8601String();
|
|
|
|
|
// map['endDate'] = tbsTimer?.endAt?.toIso8601String();
|
|
|
|
|
// map['workingHours'] = ((tbsTimer?.durationInSecond ?? 0) / 60 / 60).toStringAsFixed(5);
|
|
|
|
|
map['travelingHours'] = travelingHours;
|
|
|
|
|
map['deviceStatusId'] = deviceStatusId;
|
|
|
|
|
map['comments'] = comments;
|
|
|
|
|
@ -555,7 +595,6 @@ class Ppm {
|
|
|
|
|
map['suppEndDate'] = externalEngineerTimer?.endAt?.toIso8601String();
|
|
|
|
|
map['suppWorkingHours'] = ((externalEngineerTimer?.durationInSecond ?? 0) / 60 / 60).toStringAsFixed(5);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
map['taskStatusId'] = taskStatusId;
|
|
|
|
|
map['engSignature'] = engSignature;
|
|
|
|
|
map['nurseSignature'] = nurseSignature;
|
|
|
|
|
|