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 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 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 toJson() { final map = {}; 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 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 toJson() { final map = {}; 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 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; } }