|
|
|
|
import 'dart:developer';
|
|
|
|
|
|
|
|
|
|
import 'package:flutter/cupertino.dart';
|
|
|
|
|
import 'package:fluttertoast/fluttertoast.dart';
|
|
|
|
|
import 'package:test_sa/extensions/context_extension.dart';
|
|
|
|
|
import 'package:test_sa/models/enums/translation_keys.dart';
|
|
|
|
|
import 'package:test_sa/models/lookup.dart';
|
|
|
|
|
import 'package:test_sa/models/new_models/assigned_employee.dart';
|
|
|
|
|
import 'package:test_sa/models/new_models/building.dart';
|
|
|
|
|
import 'package:test_sa/models/new_models/department.dart';
|
|
|
|
|
import 'package:test_sa/models/new_models/floor.dart';
|
|
|
|
|
import 'package:test_sa/models/new_models/site.dart';
|
|
|
|
|
|
|
|
|
|
class GasRefillModel {
|
|
|
|
|
GasRefillModel({
|
|
|
|
|
this.id,
|
|
|
|
|
this.gazRefillNo,
|
|
|
|
|
this.expectedDate,
|
|
|
|
|
this.expectedTime,
|
|
|
|
|
this.startDate,
|
|
|
|
|
this.startTime,
|
|
|
|
|
this.endDate,
|
|
|
|
|
this.endTime,
|
|
|
|
|
this.engSignature,
|
|
|
|
|
this.nurseSignature,
|
|
|
|
|
this.workingHours,
|
|
|
|
|
this.site,
|
|
|
|
|
this.building,
|
|
|
|
|
this.floor,
|
|
|
|
|
this.department,
|
|
|
|
|
this.assignedEmployee,
|
|
|
|
|
this.status,
|
|
|
|
|
this.gazRefillDetails,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
GasRefillModel.fromJson(dynamic json) {
|
|
|
|
|
id = json['id'];
|
|
|
|
|
gazRefillNo = json['gazRefillNo'];
|
|
|
|
|
expectedDate = json['expectedDate'];
|
|
|
|
|
expectedTime = json['expectedTime'];
|
|
|
|
|
startDate = json['startDate'];
|
|
|
|
|
startTime = json['startTime'];
|
|
|
|
|
endDate = json['endDate'];
|
|
|
|
|
endTime = json['endTime'];
|
|
|
|
|
engSignature = json['engSignature'];
|
|
|
|
|
nurseSignature = json['nurseSignature'];
|
|
|
|
|
workingHours = json['workingHours'];
|
|
|
|
|
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;
|
|
|
|
|
log(json['department']);
|
|
|
|
|
department = json['department'] != null ? Department.fromJson(json['department']) : null;
|
|
|
|
|
assignedEmployee = json['assignedEmployee'] != null ? AssignedEmployee.fromJson(json['assignedEmployee']) : null;
|
|
|
|
|
status = json['status'] != null ? Lookup.fromJson(json['status']) : null;
|
|
|
|
|
if (json['gazRefillDetails'] != null) {
|
|
|
|
|
gazRefillDetails = [];
|
|
|
|
|
json['gazRefillDetails'].forEach((v) {
|
|
|
|
|
gazRefillDetails.add(GasRefillDetails.fromJson(v));
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
num id;
|
|
|
|
|
String gazRefillNo;
|
|
|
|
|
String expectedDate;
|
|
|
|
|
String expectedTime;
|
|
|
|
|
String startDate;
|
|
|
|
|
String startTime;
|
|
|
|
|
String endDate;
|
|
|
|
|
String endTime;
|
|
|
|
|
String engSignature;
|
|
|
|
|
String nurseSignature;
|
|
|
|
|
num workingHours;
|
|
|
|
|
Site site;
|
|
|
|
|
Building building;
|
|
|
|
|
Floor floor;
|
|
|
|
|
Department department;
|
|
|
|
|
AssignedEmployee assignedEmployee;
|
|
|
|
|
Lookup status;
|
|
|
|
|
List<GasRefillDetails> gazRefillDetails;
|
|
|
|
|
|
|
|
|
|
GasRefillModel copyWith({
|
|
|
|
|
num id,
|
|
|
|
|
String gazRefillNo,
|
|
|
|
|
String expectedDate,
|
|
|
|
|
String expectedTime,
|
|
|
|
|
String startDate,
|
|
|
|
|
String startTime,
|
|
|
|
|
String endDate,
|
|
|
|
|
String endTime,
|
|
|
|
|
String engSignature,
|
|
|
|
|
String nurseSignature,
|
|
|
|
|
num workingHours,
|
|
|
|
|
Site site,
|
|
|
|
|
Building building,
|
|
|
|
|
Floor floor,
|
|
|
|
|
Department department,
|
|
|
|
|
AssignedEmployee assignedEmployee,
|
|
|
|
|
Lookup status,
|
|
|
|
|
List<GasRefillDetails> gazRefillDetails,
|
|
|
|
|
}) =>
|
|
|
|
|
GasRefillModel(
|
|
|
|
|
id: id ?? this.id,
|
|
|
|
|
gazRefillNo: gazRefillNo ?? this.gazRefillNo,
|
|
|
|
|
expectedDate: expectedDate ?? this.expectedDate,
|
|
|
|
|
expectedTime: expectedTime ?? this.expectedTime,
|
|
|
|
|
startDate: startDate ?? this.startDate,
|
|
|
|
|
startTime: startTime ?? this.startTime,
|
|
|
|
|
endDate: endDate ?? this.endDate,
|
|
|
|
|
endTime: endTime ?? this.endTime,
|
|
|
|
|
engSignature: engSignature ?? this.engSignature,
|
|
|
|
|
nurseSignature: nurseSignature ?? this.nurseSignature,
|
|
|
|
|
workingHours: workingHours ?? this.workingHours,
|
|
|
|
|
site: site ?? this.site,
|
|
|
|
|
building: building ?? this.building,
|
|
|
|
|
floor: floor ?? this.floor,
|
|
|
|
|
department: department ?? this.department,
|
|
|
|
|
assignedEmployee: assignedEmployee ?? this.assignedEmployee,
|
|
|
|
|
status: status ?? this.status,
|
|
|
|
|
gazRefillDetails: gazRefillDetails ?? this.gazRefillDetails,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic> toJson() {
|
|
|
|
|
final map = <String, dynamic>{};
|
|
|
|
|
map['id'] = id;
|
|
|
|
|
map['gazRefillNo'] = gazRefillNo;
|
|
|
|
|
map['expectedDate'] = expectedDate;
|
|
|
|
|
map['expectedTime'] = expectedTime;
|
|
|
|
|
map['startDate'] = startDate;
|
|
|
|
|
map['startTime'] = startTime;
|
|
|
|
|
map['endDate'] = endDate;
|
|
|
|
|
map['endTime'] = endTime;
|
|
|
|
|
map['engSignature'] = engSignature;
|
|
|
|
|
map['nurseSignature'] = nurseSignature;
|
|
|
|
|
map['workingHours'] = workingHours;
|
|
|
|
|
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();
|
|
|
|
|
}
|
|
|
|
|
if (assignedEmployee != null) {
|
|
|
|
|
map['assignedEmployee'] = assignedEmployee.toJson();
|
|
|
|
|
}
|
|
|
|
|
if (status != null) {
|
|
|
|
|
map['status'] = status.toMap();
|
|
|
|
|
}
|
|
|
|
|
if (gazRefillDetails != null) {
|
|
|
|
|
map['gazRefillDetails'] = gazRefillDetails.map((v) => v.toJson()).toList();
|
|
|
|
|
}
|
|
|
|
|
return map;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<bool> validate(BuildContext context) async {
|
|
|
|
|
if (site == null) {
|
|
|
|
|
await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.destinationSite}");
|
|
|
|
|
return false;
|
|
|
|
|
} else if (building == null) {
|
|
|
|
|
await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.building}");
|
|
|
|
|
return false;
|
|
|
|
|
} else if (floor == null) {
|
|
|
|
|
await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.floor}");
|
|
|
|
|
return false;
|
|
|
|
|
} else if (department == null) {
|
|
|
|
|
await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.department}");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class GasRefillDetails {
|
|
|
|
|
GasRefillDetails({
|
|
|
|
|
this.id,
|
|
|
|
|
this.gasType,
|
|
|
|
|
this.cylinderType,
|
|
|
|
|
this.cylinderSize,
|
|
|
|
|
this.requestedQty,
|
|
|
|
|
this.deliverdQty,
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
GasRefillDetails.fromJson(dynamic json) {
|
|
|
|
|
id = json['id'];
|
|
|
|
|
gasType = json['gasType'] != null ? Lookup.fromJson(json['gasType']) : null;
|
|
|
|
|
cylinderType = json['cylinderType'] != null ? Lookup.fromJson(json['cylinderType']) : null;
|
|
|
|
|
cylinderSize = json['cylinderSize'] != null ? Lookup.fromJson(json['cylinderSize']) : null;
|
|
|
|
|
requestedQty = json['requestedQty'];
|
|
|
|
|
deliverdQty = json['deliverdQty'];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
num id;
|
|
|
|
|
Lookup gasType;
|
|
|
|
|
Lookup cylinderType;
|
|
|
|
|
Lookup cylinderSize;
|
|
|
|
|
num requestedQty;
|
|
|
|
|
num deliverdQty;
|
|
|
|
|
|
|
|
|
|
GasRefillDetails copyWith({
|
|
|
|
|
num id,
|
|
|
|
|
Lookup gasType,
|
|
|
|
|
Lookup cylinderType,
|
|
|
|
|
Lookup cylinderSize,
|
|
|
|
|
num requestedQty,
|
|
|
|
|
num deliverdQty,
|
|
|
|
|
}) =>
|
|
|
|
|
GasRefillDetails(
|
|
|
|
|
id: id ?? this.id,
|
|
|
|
|
gasType: gasType ?? this.gasType,
|
|
|
|
|
cylinderType: cylinderType ?? this.cylinderType,
|
|
|
|
|
cylinderSize: cylinderSize ?? this.cylinderSize,
|
|
|
|
|
requestedQty: requestedQty ?? this.requestedQty,
|
|
|
|
|
deliverdQty: deliverdQty ?? this.deliverdQty,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
Map<String, dynamic> toJson() {
|
|
|
|
|
final map = <String, dynamic>{};
|
|
|
|
|
map['id'] = id;
|
|
|
|
|
if (gasType != null) {
|
|
|
|
|
map['gasType'] = gasType.toMap();
|
|
|
|
|
}
|
|
|
|
|
if (cylinderType != null) {
|
|
|
|
|
map['cylinderType'] = cylinderType.toMap();
|
|
|
|
|
}
|
|
|
|
|
if (cylinderSize != null) {
|
|
|
|
|
map['cylinderSize'] = cylinderSize.toMap();
|
|
|
|
|
}
|
|
|
|
|
map['requestedQty'] = requestedQty;
|
|
|
|
|
map['deliverdQty'] = deliverdQty;
|
|
|
|
|
return map;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<bool> validate(BuildContext context) async {
|
|
|
|
|
if (gasType == null) {
|
|
|
|
|
await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.gasType}");
|
|
|
|
|
return false;
|
|
|
|
|
} else if (cylinderType == null) {
|
|
|
|
|
await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.cylinderType}");
|
|
|
|
|
return false;
|
|
|
|
|
} else if (cylinderSize == null) {
|
|
|
|
|
await Fluttertoast.showToast(msg: "${context.translation.youHaveToSelect} ${context.translation.cylinderSize}");
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
}
|