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.
cloudsolutions-atoms/lib/models/new_models/gas_refill_model.dart

252 lines
7.9 KiB
Dart

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;
}
}