add shipments

This commit is contained in:
Sai Naw Wun
2020-10-19 05:13:49 +06:30
parent 4f8bde40b0
commit c619ae3f22
57 changed files with 1886 additions and 724 deletions

View File

@@ -1,4 +1,7 @@
import 'dart:async';
import 'dart:io';
import 'package:fcs/helpers/firebase_helper.dart';
import 'package:path/path.dart' as Path;
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/data/services/services.dart';
@@ -31,10 +34,10 @@ class ShipmentModel extends BaseModel {
get menuSelectedIndex => _menuSelectedIndex;
initData(bool forCustomer) {
initData(bool forCustomer, {bool myPickup = false}) {
logout();
_menuSelectedIndex = 1;
_loadShipments(forCustomer);
_loadShipments(forCustomer, myPickup);
_delivered = _getDeliveredExample(forCustomer);
_delivered.load();
}
@@ -80,7 +83,7 @@ class ShipmentModel extends BaseModel {
if (isCustomer) {
pageQuery = pageQuery.where("user_id", isEqualTo: user.id);
}
pageQuery = pageQuery.orderBy("current_status_date", descending: true);
pageQuery = pageQuery.orderBy("status_date", descending: true);
var paginator = new Paginator(pageQuery, rowPerLoad: 20, toObj: (data, id) {
return Shipment.fromMap(data, id);
});
@@ -99,14 +102,14 @@ class ShipmentModel extends BaseModel {
return Shipment(
id: m.id,
shipmentNumber: m.message,
currentStatus: m.senderName,
status: m.senderName,
pickupDate: m.date,
);
});
return paginator;
}
Future<void> _loadShipments(bool forCustomer) async {
Future<void> _loadShipments(bool forCustomer, bool myPickup) async {
if (user == null) return;
if (!forCustomer && !user.hasShipment()) return;
String path = "/$shipments_collection";
@@ -123,6 +126,10 @@ class ShipmentModel extends BaseModel {
if (forCustomer) {
q = q.where("user_id", isEqualTo: user.id);
}
if (myPickup) {
q = q.where("pickup_user_id", isEqualTo: user.id);
}
q = q.orderBy("created_at", descending: true);
listener = q.snapshots().listen((QuerySnapshot snapshot) {
_shipments.clear();
@@ -175,4 +182,39 @@ class ShipmentModel extends BaseModel {
Future<void> cancelShipment(Shipment shipment) {
return Services.instance.shipmentService.cancelShipment(shipment);
}
Future<void> assignShipment(Shipment shipment) {
return Services.instance.shipmentService.assignShipment(shipment);
}
Future<void> completeAssignShipment(Shipment shipment) {
return Services.instance.shipmentService.completeAssignShipment(shipment);
}
Future<void> completePickupShipment(Shipment shipment) {
return Services.instance.shipmentService.completePickupShipment(shipment);
}
Future<void> completePackShipment(Shipment shipment) {
return Services.instance.shipmentService.completePackShipment(shipment);
}
Future<void> packShipment(Shipment shipment) {
return Services.instance.shipmentService.packShipment(shipment);
}
Future<void> confirmShipment(Shipment shipment) async {
// String path = Path.join(shipment_labels_files_path);
// String url = await uploadStorage(path, file);
// shipment.shipmentLabelUrl = url;
return Services.instance.shipmentService.confirmShipment(shipment);
}
Future<void> completeConfirmShipment(Shipment shipment) {
return Services.instance.shipmentService.completeConfirmShipment(shipment);
}
Future<void> completeReceiveShipment(Shipment shipment) {
return Services.instance.shipmentService.completeReceiveShipment(shipment);
}
}