check null safety for delivery

This commit is contained in:
tzw
2021-09-13 08:45:50 +06:30
parent 5a252345bd
commit 086c09f522
4 changed files with 25 additions and 23 deletions

View File

@@ -64,9 +64,8 @@ class Carton {
// String get packageNumber =>
// shipmentNumber + "-" + receiverNumber + " #" + boxNumber;
double get actualWeight => cargoTypes == null
? 0
: cargoTypes.fold(0, (p, e) => e.weight + p);
double get actualWeight =>
cargoTypes == null ? 0 : cargoTypes.fold(0, (p, e) => e.weight + p);
int getShipmentWeight(double volumetricRatio) {
if (length == null ||
@@ -115,8 +114,8 @@ class Carton {
double total = 0;
cargoTypes.forEach((e) {
double r = e.rate -
(discountByWeight != null ? (discountByWeight.discount) : 0);
double r =
e.rate - (discountByWeight != null ? (discountByWeight.discount) : 0);
double amount = e.weight * r;
total += amount;
});
@@ -194,7 +193,8 @@ class Carton {
}
factory Carton.fromMap(Map<String, dynamic> map, String docID) {
var _arrivedDate = (map['arrived_date'] as Timestamp);
var _arrivedDate =
map['arrived_date'] == null ? null : (map['arrived_date'] as Timestamp);
var da = map['delivery_address'];
var _da = da != null ? DeliveryAddress.fromMap(da, da["id"]) : null;
var cargoTypesMaps =

View File

@@ -4,17 +4,17 @@ import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/data/services/services.dart';
import 'package:fcs/domain/constants.dart';
import 'package:fcs/domain/entities/carton.dart';
import 'package:fcs/domain/vo/message.dart';
import 'package:fcs/helpers/paginator.dart';
import 'package:fcs/pages/main/model/base_model.dart';
import 'package:logging/logging.dart';
class DeliveryModel extends BaseModel {
final log = Logger('DeliveryModel');
List<Carton> get cartons =>
_selectedIndex == 1 ? _cartons : List<Carton>.from(_delivered.values);
List<Carton> get cartons => _selectedIndex == 1
? _cartons
: List<Carton>.from(_delivered?.values ?? []);
late Paginator _delivered;
Paginator? _delivered;
int _selectedIndex = 1;
bool isLoading = false;
List<Carton> _cartons = [];
@@ -31,9 +31,9 @@ class DeliveryModel extends BaseModel {
_selectedIndex = 1;
_loadCartons();
if (_delivered != null) _delivered.close();
if (_delivered != null) _delivered!.close();
_delivered = _getDelivered();
_delivered.load();
_delivered!.load();
}
Future<void> _loadCartons() async {
@@ -57,7 +57,8 @@ class DeliveryModel extends BaseModel {
_cartons.clear();
_cartons = snapshot.docs.map((documentSnapshot) {
var s = Carton.fromMap(
documentSnapshot.data as Map<String, dynamic>, documentSnapshot.id);
documentSnapshot.data as Map<String, dynamic>,
documentSnapshot.id);
return s;
}).toList();
notifyListeners();
@@ -82,10 +83,10 @@ class DeliveryModel extends BaseModel {
}
Future<void> loadMore() async {
if (_delivered.ended || _selectedIndex == 1) return;
if (_delivered!.ended || _selectedIndex == 1) return;
isLoading = true;
notifyListeners();
await _delivered.load(onFinished: () {
await _delivered!.load(onFinished: () {
isLoading = false;
notifyListeners();
});
@@ -94,7 +95,7 @@ class DeliveryModel extends BaseModel {
Future<void> refresh() async {
if (_selectedIndex == 1) return;
await _delivered.refresh(onFinished: () {
await _delivered!.refresh(onFinished: () {
notifyListeners();
});
}
@@ -106,7 +107,7 @@ class DeliveryModel extends BaseModel {
@override
logout() async {
if (listener != null) await listener!.cancel();
if (_delivered != null) _delivered.close();
if (_delivered != null) _delivered!.close();
_cartons = [];
}

View File

@@ -58,7 +58,8 @@ class FcsShipmentModel extends BaseModel {
_fcsShipments.clear();
_fcsShipments = snapshot.docs.map((documentSnapshot) {
var s = FcsShipment.fromMap(
documentSnapshot.data() as Map<String,dynamic>, documentSnapshot.id);
documentSnapshot.data() as Map<String, dynamic>,
documentSnapshot.id);
return s;
}).toList();
notifyListeners();
@@ -108,7 +109,7 @@ class FcsShipmentModel extends BaseModel {
.get(const GetOptions(source: Source.server));
fcsShipments = snaps.docs.map((documentSnapshot) {
var fcs = FcsShipment.fromMap(
documentSnapshot.data as Map<String,dynamic>, documentSnapshot.id);
documentSnapshot.data as Map<String, dynamic>, documentSnapshot.id);
return fcs;
}).toList();
} catch (e) {
@@ -123,7 +124,7 @@ class FcsShipmentModel extends BaseModel {
.collection("/$fcs_shipment_collection")
.doc(id)
.get(const GetOptions(source: Source.server));
var fcs = FcsShipment.fromMap(snap.data as Map<String,dynamic>, snap.id);
var fcs = FcsShipment.fromMap(snap.data as Map<String, dynamic>, snap.id);
return fcs;
} catch (e) {
@@ -141,7 +142,7 @@ class FcsShipmentModel extends BaseModel {
.get(const GetOptions(source: Source.server));
fcsShipments = snaps.docs.map((documentSnapshot) {
var fcs = FcsShipment.fromMap(
documentSnapshot.data as Map<String,dynamic>, documentSnapshot.id);
documentSnapshot.data as Map<String, dynamic>, documentSnapshot.id);
return fcs;
}).toList();
} catch (e) {

View File

@@ -56,7 +56,7 @@ class _PackageInfoState extends State<PackageInfo> {
PackageModel packageModel =
Provider.of<PackageModel>(context, listen: false);
Package? package =
await packageModel.getPackageByTrackingID(pkg!.trackingID!);
await packageModel.getPackageByTrackingID(pkg.trackingID!);
setState(() {
_package = package;
multiImgController.setImageUrls = package!.photoUrls;