check null safety

This commit is contained in:
tzw
2021-09-10 14:27:38 +06:30
parent a144c945b6
commit 7670779b03
57 changed files with 620 additions and 626 deletions

View File

@@ -9,61 +9,60 @@ import 'cargo_type.dart';
import 'package.dart';
class Carton {
String id;
String shipmentID;
String shipmentNumber;
String senderID;
String senderFCSID;
String senderName;
String? id;
String? shipmentID;
String? shipmentNumber;
String? senderID;
String? senderFCSID;
String? senderName;
String boxNumber;
String status;
String cargoDesc;
String desc;
String? boxNumber;
String? status;
String? cargoDesc;
String? desc;
double width;
double height;
double length;
int shipmentWeight;
bool isChecked;
bool isShipmentCarton;
String cartonType;
String fcsID;
String userName;
String userID;
String fcsShipmentID;
String fcsShipmentNumber;
String mixCartonID;
String mixCartonNumber;
String cartonSizeID;
String cartonSizeName;
double cartonWeight;
int? shipmentWeight;
bool? isChecked;
bool? isShipmentCarton;
String? cartonType;
String? fcsID;
String? userName;
String? userID;
String? fcsShipmentID;
String? fcsShipmentNumber;
String? mixCartonID;
String? mixCartonNumber;
String? cartonSizeID;
String? cartonSizeName;
double? cartonWeight;
int rate;
int weight;
String packageType;
String pickUpID;
List<String> photos;
String remark;
DateTime arrivedDate;
String cartonNumber;
String? packageType;
String? pickUpID;
List<String> photos = [];
String? remark;
DateTime? arrivedDate;
String? cartonNumber;
List<String> packageIDs;
List<Package> packages;
List<CargoType> cargoTypes;
List<CargoType> cargoTypes = [];
DeliveryAddress deliveryAddress;
Shipment shipment;
DeliveryAddress? deliveryAddress;
Shipment? shipment;
//for mix box
String mixBoxType;
String? mixBoxType;
List<Carton> mixCartons;
List<String> mixCartonIDs;
int get amount => rate != null && weight != null ? rate * weight : 0;
int get amount => rate != null && weight != null ? (rate * weight) : 0;
// String get packageNumber =>
// shipmentNumber + "-" + receiverNumber + " #" + boxNumber;
double get price => rate.toDouble() * weight;
double get actualWeight =>
cargoTypes == null ? 0 : cargoTypes.fold(0, (p, e) => e.weight + p);
@@ -84,15 +83,15 @@ class Carton {
/// getCargoTypeForCalWeight returns carton with shipment weight
List<CargoType> getCargoTypeForCalWeight(double volumetricRatio) {
// get shipment weight
double volume = (length ?? 0) * (width ?? 0) * (height ?? 0);
double sw = volume / volumetricRatio ?? 0;
double volume = length * width * height;
double sw = volume / volumetricRatio;
// get actual weight
double aw = cargoTypes.fold(0.0, (p, c) => p + c.weight);
if (aw == 0 || sw == 0) return [];
cargoTypes.forEach((e) {
double calWeight = aw > sw ? e.weight : e.weight / aw * sw;
double calWeight = aw > sw ? e.weight : (e.weight / aw) * sw;
e.calWeight = calWeight;
});
return cargoTypes;
@@ -116,7 +115,7 @@ class Carton {
double total = 0;
cargoTypes.forEach((e) {
double r =
e.rate - (discountByWeight != null ? discountByWeight.discount : 0);
e.rate - (discountByWeight != null ? (discountByWeight.discount) : 0);
double amount = e.weight * r;
total += amount;
});
@@ -134,9 +133,9 @@ class Carton {
this.senderName,
this.boxNumber,
this.desc,
this.width,
this.height,
this.length,
this.width = 0,
this.height = 0,
this.length = 0,
this.shipmentWeight,
this.isChecked = false,
this.cartonType,
@@ -151,13 +150,13 @@ class Carton {
this.status,
this.arrivedDate,
this.cargoDesc,
this.shipmentHistory,
this.packages,
this.cargoTypes,
this.shipmentHistory = const [],
this.packages = const [],
this.cargoTypes = const [],
this.cartonNumber,
this.fcsShipmentID,
this.fcsShipmentNumber,
this.packageIDs,
this.packageIDs = const [],
this.mixCartonID,
this.mixCartonNumber,
this.isShipmentCarton = false,
@@ -165,14 +164,14 @@ class Carton {
this.cartonSizeID,
this.cartonSizeName,
this.mixBoxType,
this.mixCartons,
this.mixCartonIDs,
this.mixCartons = const [],
this.mixCartonIDs = const [],
this.cartonWeight});
Map<String, dynamic> toMap() {
List _cargoTypes = cargoTypes?.map((c) => c.toMap())?.toList() ?? [];
List _packages = packages?.map((c) => c.toJson())?.toList();
List _mixCartons = mixCartons?.map((c) => c.toJson())?.toList();
List _cargoTypes = cargoTypes.map((c) => c.toMap()).toList();
List _packages = packages.map((c) => c.toJson()).toList();
List _mixCartons = mixCartons.map((c) => c.toJson()).toList();
return {
'id': id,
'fcs_shipment_id': fcsShipmentID,
@@ -213,9 +212,9 @@ class Carton {
shipmentNumber: map['shipment_number'],
// receiverNumber: map['receiver_number'],
boxNumber: map['box_number'],
length: double.tryParse(map['length']?.toString()),
width: double.tryParse(map['width']?.toString()),
height: double.tryParse(map['height']?.toString()),
length: double.tryParse(map['length'].toString()) ?? 0,
width: double.tryParse(map['width'].toString()) ?? 0,
height: double.tryParse(map['height'].toString()) ?? 0,
userName: map['user_name'],
fcsID: map['fcs_id'],
cartonType: map['carton_type'],
@@ -242,8 +241,8 @@ class Carton {
Map<String, dynamic> toJson() {
List _cargoTypes = cargoTypes.map((c) => c.toMap()).toList();
List _packages = packages?.map((c) => c.toJson())?.toList();
List _mixCartons = mixCartons?.map((c) => c.toJson())?.toList();
List _packages = packages.map((c) => c.toJson()).toList();
List _mixCartons = mixCartons.map((c) => c.toJson()).toList();
return {
'id': id,
'fcs_shipment_id': fcsShipmentID,