add carton from mix_box & from cargos

This commit is contained in:
Thinzar Win
2021-01-09 19:11:47 +06:30
parent 0bbd568adc
commit 9d2f9a671f
16 changed files with 583 additions and 322 deletions

View File

@@ -13,6 +13,7 @@ import 'package:logging/logging.dart';
class CartonModel extends BaseModel {
List<Carton> _boxes = [];
List<Carton> cartons = [];
final log = Logger('CartonModel');
List<Carton> get boxes =>
_selectedIndex == 1 ? _boxes : List<Carton>.from(_delivered.values);
@@ -22,6 +23,7 @@ class CartonModel extends BaseModel {
bool isLoading = false;
StreamSubscription<QuerySnapshot> listener;
StreamSubscription<QuerySnapshot> cartonListener;
static List<ShipmentStatus> statusHistory = [
ShipmentStatus(status: "Packed", date: DateTime(2020, 6, 1), done: true),
ShipmentStatus(status: "Shipped", date: DateTime(2020, 6, 5), done: false),
@@ -56,10 +58,15 @@ class CartonModel extends BaseModel {
});
}
List<String> cartonTypes = [carton_from_packages, carton_mix_box];
List<String> cartonTypes = [
carton_from_packages,
carton_from_cargos,
carton_mix_box
];
List<String> mixBoxTypes = [mix_delivery, mix_pickup];
List<String> cartonTypesInfo = [
carton_from_packages,
carton_from_cargos,
carton_mix_box,
carton_from_shipments,
carton_small_bag
@@ -75,6 +82,7 @@ class CartonModel extends BaseModel {
initData() {
_selectedIndex = 1;
_loadBoxes();
_loadCartonForMixBox();
if (_delivered != null) _delivered.close();
_delivered = _getDelivered();
@@ -108,6 +116,35 @@ class CartonModel extends BaseModel {
}
}
Future<void> _loadCartonForMixBox() async {
if (user == null || !user.hasCarton()) return;
String path = "/$cartons_collection/";
if (cartonListener != null) cartonListener.cancel();
cartons = [];
try {
cartonListener = Firestore.instance
.collection("$path")
.where("carton_type",
whereIn: [carton_from_packages, carton_from_cargos])
.where("status", isEqualTo: carton_packed_status)
.where("is_deleted", isEqualTo: false)
.orderBy("user_name")
.snapshots()
.listen((QuerySnapshot snapshot) {
cartons.clear();
cartons = snapshot.documents.map((documentSnapshot) {
var s = Carton.fromMap(
documentSnapshot.data, documentSnapshot.documentID);
return s;
}).toList();
notifyListeners();
});
} catch (e) {
log.warning("Error!! $e");
}
}
Paginator _getDelivered() {
if (user == null || !user.hasCarton()) return null;
@@ -145,8 +182,10 @@ class CartonModel extends BaseModel {
@override
logout() async {
if (listener != null) await listener.cancel();
if (cartonListener != null) await cartonListener.cancel();
if (_delivered != null) _delivered.close();
_boxes = [];
cartons = [];
}
Future<List<Carton>> getCartons(String shipmentID) async {
@@ -220,38 +259,14 @@ class CartonModel extends BaseModel {
}
Future<List<Carton>> searchCarton(String term) async {
if (term == null || term == '') return List();
return Services.instance.cartonService.searchCarton(term);
}
List<Carton> _cartons = [];
Future<Carton> createMixCarton(Carton carton) {
// return Services.instance.cartonService.createCarton(carton);
}
try {
_cartons = [
Carton(
cartonNumber: "A100B-1#1",
cargoTypes: [CargoType(name: "General", weight: 12)],
userName: "Seven 7"),
Carton(
cartonNumber: "A100B-1#2",
cargoTypes: [CargoType(name: "General", weight: 12)],
userName: "Seven 7"),
Carton(
cartonNumber: "A100B-1#3",
cargoTypes: [CargoType(name: "General", weight: 12)],
userName: "Seven 7"),
Carton(
cartonNumber: "A100B-1#4",
cargoTypes: [CargoType(name: "General", weight: 12)],
userName: "Seven 7"),
Carton(
cartonNumber: "A100B-1#5",
cargoTypes: [CargoType(name: "General", weight: 12)],
userName: "Seven 7"),
];
} catch (e) {
// permission error
log.warning("user error:" + e.toString());
return null;
}
return _cartons;
Future<void> updateMixCarton(Carton carton) {
// return Services.instance.cartonService.updateCarton(carton);
}
}