add carton editor to update
This commit is contained in:
@@ -345,7 +345,8 @@
|
|||||||
"box.delvery_carton":"Delivery carton",
|
"box.delvery_carton":"Delivery carton",
|
||||||
"box.pick_up_carton":"Pick-up carton",
|
"box.pick_up_carton":"Pick-up carton",
|
||||||
"box.delete.btn":"Delete carton",
|
"box.delete.btn":"Delete carton",
|
||||||
|
"box.update_title":"Edit carton",
|
||||||
|
"box.update.btn":"Update carton",
|
||||||
"Boxes End ================================================================":"",
|
"Boxes End ================================================================":"",
|
||||||
|
|
||||||
"Delivery Start ================================================================":"",
|
"Delivery Start ================================================================":"",
|
||||||
|
|||||||
@@ -344,6 +344,8 @@
|
|||||||
"box.delvery_carton":"Delivery carton",
|
"box.delvery_carton":"Delivery carton",
|
||||||
"box.pick_up_carton":"Pick-up carton",
|
"box.pick_up_carton":"Pick-up carton",
|
||||||
"box.delete.btn":"Delete carton",
|
"box.delete.btn":"Delete carton",
|
||||||
|
"box.update_title":"Edit carton",
|
||||||
|
"box.update.btn":"Update carton",
|
||||||
"Boxes End ================================================================":"",
|
"Boxes End ================================================================":"",
|
||||||
|
|
||||||
"Delivery Start ================================================================":"",
|
"Delivery Start ================================================================":"",
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ import '../../domain/entities/cargo_type.dart';
|
|||||||
import '../../domain/entities/carton.dart';
|
import '../../domain/entities/carton.dart';
|
||||||
import '../../domain/entities/package.dart';
|
import '../../domain/entities/package.dart';
|
||||||
import '../../domain/entities/user.dart';
|
import '../../domain/entities/user.dart';
|
||||||
|
import '../fcs_shipment/model/fcs_shipment_model.dart';
|
||||||
import '../main/util.dart';
|
import '../main/util.dart';
|
||||||
import '../widgets/local_text.dart';
|
import '../widgets/local_text.dart';
|
||||||
import '../widgets/progress.dart';
|
import '../widgets/progress.dart';
|
||||||
@@ -64,20 +65,37 @@ class _CartonPackageEditorState extends State<CartonPackageEditor> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
|
_init();
|
||||||
|
super.initState();
|
||||||
|
}
|
||||||
|
|
||||||
|
_init() async {
|
||||||
_sender = User(
|
_sender = User(
|
||||||
name: "ptd-phyo44 kaelone",
|
name: widget.carton.senderName,
|
||||||
fcsID: "FCS-8X6V",
|
fcsID: widget.carton.senderFCSID,
|
||||||
phoneNumber: "+959444444444",
|
id: widget.carton.senderID);
|
||||||
id: "48u_4s-HiQeW-HwSqeRd9TSMWh3mLZfSk5rpaUEh_zw");
|
|
||||||
|
|
||||||
_consignee = User(
|
_consignee = User(
|
||||||
id: "HsIwG88K-0_HSazgEy5QR27kcjkOvfv7_Sr1JP18Q1A",
|
id: widget.carton.userID,
|
||||||
name: "One One",
|
name: widget.carton.userName,
|
||||||
phoneNumber: "+959111111111",
|
fcsID: widget.carton.fcsID);
|
||||||
fcsID: "FCS-EFRF");
|
|
||||||
|
_billToValue = widget.carton.billTo ?? billToSender;
|
||||||
|
_selectedDeliveryType = delivery_caton;
|
||||||
|
_cartonSizeType = customCarton;
|
||||||
|
_length = widget.carton.length;
|
||||||
|
_width = widget.carton.width;
|
||||||
|
_height = widget.carton.height;
|
||||||
|
|
||||||
|
var s = await context
|
||||||
|
.read<FcsShipmentModel>()
|
||||||
|
.getFcsShipment(widget.carton.fcsShipmentID ?? "");
|
||||||
|
_shipment = s;
|
||||||
|
|
||||||
context.read<PackageSelectionModel>().clearSelection();
|
context.read<PackageSelectionModel>().clearSelection();
|
||||||
super.initState();
|
if (mounted) {
|
||||||
|
setState(() {});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -116,7 +134,7 @@ class _CartonPackageEditorState extends State<CartonPackageEditor> {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
backgroundColor: Colors.white,
|
backgroundColor: Colors.white,
|
||||||
title: LocalText(context, 'boxes.new',
|
title: LocalText(context, 'box.update_title',
|
||||||
color: primaryColor, fontSize: 20),
|
color: primaryColor, fontSize: 20),
|
||||||
),
|
),
|
||||||
body: Column(
|
body: Column(
|
||||||
@@ -220,6 +238,7 @@ class _CartonPackageEditorState extends State<CartonPackageEditor> {
|
|||||||
} else {
|
} else {
|
||||||
return Expanded(
|
return Expanded(
|
||||||
child: CartonSubmit(
|
child: CartonSubmit(
|
||||||
|
isNew: false,
|
||||||
sender: _sender!,
|
sender: _sender!,
|
||||||
consingee: _consignee!,
|
consingee: _consignee!,
|
||||||
billToValue: _billToValue,
|
billToValue: _billToValue,
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ class _CartonSizeWidgetState extends State<CartonSizeWidget> {
|
|||||||
List<String> _deliveryTypes = [delivery_caton, pickup_carton];
|
List<String> _deliveryTypes = [delivery_caton, pickup_carton];
|
||||||
|
|
||||||
FcsShipment? _shipment;
|
FcsShipment? _shipment;
|
||||||
String _cartionSizeType = standardCarton;
|
String _cartonSizeType = standardCarton;
|
||||||
|
|
||||||
List<FcsShipment> _shipments = [];
|
List<FcsShipment> _shipments = [];
|
||||||
CartonSize? _selectStandardSize;
|
CartonSize? _selectStandardSize;
|
||||||
@@ -83,34 +83,40 @@ class _CartonSizeWidgetState extends State<CartonSizeWidget> {
|
|||||||
_init() async {
|
_init() async {
|
||||||
_selectedDeliveryType = widget.deliveryType;
|
_selectedDeliveryType = widget.deliveryType;
|
||||||
_billToValue = widget.billType;
|
_billToValue = widget.billType;
|
||||||
_shipment = widget.shipment;
|
_cartonSizeType = widget.cartonSizeType;
|
||||||
_cartionSizeType = widget.cartonSizeType;
|
|
||||||
|
|
||||||
List<CartonSize> cartonSizes = context.read<CartonSizeModel>().cartonSizes;
|
List<CartonSize> cartonSizes = context.read<CartonSizeModel>().cartonSizes;
|
||||||
_selectStandardSize = widget.standardSize ?? cartonSizes.first;
|
_selectStandardSize = widget.standardSize ?? cartonSizes.first;
|
||||||
|
|
||||||
_lengthController.text =
|
_lengthController.text =
|
||||||
widget.length == null ? "0" : widget.length.toString();
|
widget.length == null ? "0" : removeTrailingZeros(widget.length ?? 0);
|
||||||
_widthController.text =
|
_widthController.text =
|
||||||
widget.width == null ? "0" : widget.width.toString();
|
widget.width == null ? "0" : removeTrailingZeros(widget.width ?? 0);
|
||||||
_heightController.text =
|
_heightController.text =
|
||||||
widget.height == null ? "0" : widget.height.toString();
|
widget.height == null ? "0" : removeTrailingZeros(widget.height ?? 0);
|
||||||
|
|
||||||
var fcsShipments =
|
var fcsShipments =
|
||||||
await context.read<FcsShipmentModel>().getActiveFcsShipments();
|
await context.read<FcsShipmentModel>().getActiveFcsShipments();
|
||||||
_shipments = fcsShipments;
|
_shipments = fcsShipments;
|
||||||
|
_shipment = widget.shipment;
|
||||||
|
|
||||||
if (mounted) {
|
if (mounted) {
|
||||||
setState(() {});
|
setState(() {});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didUpdateWidget(covariant CartonSizeWidget oldWidget) {
|
||||||
|
_init();
|
||||||
|
super.didUpdateWidget(oldWidget);
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
List<CartonSize> cartonSizes = context.watch<CartonSizeModel>().cartonSizes;
|
List<CartonSize> cartonSizes = context.watch<CartonSizeModel>().cartonSizes;
|
||||||
bool isStandardSize = _cartionSizeType == standardCarton;
|
bool isStandardSize = _cartonSizeType == standardCarton;
|
||||||
bool isCustomSize = _cartionSizeType == customCarton;
|
bool isCustomSize = _cartonSizeType == customCarton;
|
||||||
bool isNoneDefinedSize = _cartionSizeType == packageCartion;
|
bool isNoneDefinedSize = _cartonSizeType == packageCartion;
|
||||||
|
|
||||||
final senderBox = DisplayText(
|
final senderBox = DisplayText(
|
||||||
text: widget.sender.name,
|
text: widget.sender.name,
|
||||||
@@ -242,7 +248,7 @@ class _CartonSizeWidgetState extends State<CartonSizeWidget> {
|
|||||||
|
|
||||||
if (widget.onContinue != null) {
|
if (widget.onContinue != null) {
|
||||||
widget.onContinue!(
|
widget.onContinue!(
|
||||||
_selectedDeliveryType, _billToValue, _shipment!, _cartionSizeType,
|
_selectedDeliveryType, _billToValue, _shipment!, _cartonSizeType,
|
||||||
standardSize: _selectStandardSize, length: l, width: w, height: h);
|
standardSize: _selectStandardSize, length: l, width: w, height: h);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -321,16 +327,16 @@ class _CartonSizeWidgetState extends State<CartonSizeWidget> {
|
|||||||
InkWell(
|
InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
setState(() {
|
setState(() {
|
||||||
_cartionSizeType = standardCarton;
|
_cartonSizeType = standardCarton;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
child: Row(children: <Widget>[
|
child: Row(children: <Widget>[
|
||||||
LocalRadio(
|
LocalRadio(
|
||||||
value: standardCarton,
|
value: standardCarton,
|
||||||
groupValue: _cartionSizeType,
|
groupValue: _cartonSizeType,
|
||||||
onChanged: (p0) {
|
onChanged: (p0) {
|
||||||
setState(() {
|
setState(() {
|
||||||
_cartionSizeType = standardCarton;
|
_cartonSizeType = standardCarton;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
@@ -350,16 +356,16 @@ class _CartonSizeWidgetState extends State<CartonSizeWidget> {
|
|||||||
InkWell(
|
InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
setState(() {
|
setState(() {
|
||||||
_cartionSizeType = customCarton;
|
_cartonSizeType = customCarton;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
child: Row(children: <Widget>[
|
child: Row(children: <Widget>[
|
||||||
LocalRadio(
|
LocalRadio(
|
||||||
value: customCarton,
|
value: customCarton,
|
||||||
groupValue: _cartionSizeType,
|
groupValue: _cartonSizeType,
|
||||||
onChanged: (p0) {
|
onChanged: (p0) {
|
||||||
setState(() {
|
setState(() {
|
||||||
_cartionSizeType = customCarton;
|
_cartonSizeType = customCarton;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
@@ -379,16 +385,16 @@ class _CartonSizeWidgetState extends State<CartonSizeWidget> {
|
|||||||
InkWell(
|
InkWell(
|
||||||
onTap: () {
|
onTap: () {
|
||||||
setState(() {
|
setState(() {
|
||||||
_cartionSizeType = packageCartion;
|
_cartonSizeType = packageCartion;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
child: Row(children: <Widget>[
|
child: Row(children: <Widget>[
|
||||||
LocalRadio(
|
LocalRadio(
|
||||||
value: packageCartion,
|
value: packageCartion,
|
||||||
groupValue: _cartionSizeType,
|
groupValue: _cartonSizeType,
|
||||||
onChanged: (p0) {
|
onChanged: (p0) {
|
||||||
setState(() {
|
setState(() {
|
||||||
_cartionSizeType = packageCartion;
|
_cartonSizeType = packageCartion;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ class CartonSubmit extends StatelessWidget {
|
|||||||
final List<CargoType> surchareItems;
|
final List<CargoType> surchareItems;
|
||||||
final OnCreateCarton? onCreate;
|
final OnCreateCarton? onCreate;
|
||||||
final OnPrevious? onPrevious;
|
final OnPrevious? onPrevious;
|
||||||
|
final bool isNew;
|
||||||
const CartonSubmit(
|
const CartonSubmit(
|
||||||
{Key? key,
|
{Key? key,
|
||||||
required this.sender,
|
required this.sender,
|
||||||
@@ -51,7 +52,8 @@ class CartonSubmit extends StatelessWidget {
|
|||||||
this.width = 0,
|
this.width = 0,
|
||||||
this.height = 0,
|
this.height = 0,
|
||||||
this.cargoTypes = const [],
|
this.cargoTypes = const [],
|
||||||
this.surchareItems = const []})
|
this.surchareItems = const [],
|
||||||
|
this.isNew = true})
|
||||||
: super(key: key);
|
: super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -310,7 +312,8 @@ class CartonSubmit extends StatelessWidget {
|
|||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Flexible(
|
Flexible(
|
||||||
child: LocalText(context, 'box.crete.carton',
|
child: LocalText(
|
||||||
|
context, isNew ? 'box.crete.carton' : "box.update.btn",
|
||||||
color: Colors.white, fontSize: 15),
|
color: Colors.white, fontSize: 15),
|
||||||
),
|
),
|
||||||
const SizedBox(width: 5),
|
const SizedBox(width: 5),
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
// ignore_for_file: deprecated_member_use
|
// ignore_for_file: deprecated_member_use
|
||||||
|
|
||||||
|
import 'package:fcs/pages/fcs_shipment/model/fcs_shipment_model.dart';
|
||||||
import 'package:flutter/cupertino.dart';
|
import 'package:flutter/cupertino.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:intl/intl.dart';
|
import 'package:intl/intl.dart';
|
||||||
@@ -50,10 +51,26 @@ class _MixCartonEditorState extends State<MixCartonEditor> {
|
|||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
context.read<CartonSelectionModel>().clearSelection();
|
_init();
|
||||||
super.initState();
|
super.initState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
_init() async {
|
||||||
|
var s = await context
|
||||||
|
.read<FcsShipmentModel>()
|
||||||
|
.getFcsShipment(widget.carton.fcsShipmentID ?? "");
|
||||||
|
_shipment = s;
|
||||||
|
_cartonSizeType = customCarton;
|
||||||
|
_length = widget.carton.length;
|
||||||
|
_width = widget.carton.width;
|
||||||
|
_height = widget.carton.height;
|
||||||
|
|
||||||
|
context.read<CartonSelectionModel>().clearSelection();
|
||||||
|
if (mounted) {
|
||||||
|
setState(() {});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
return WillPopScope(
|
return WillPopScope(
|
||||||
@@ -90,7 +107,7 @@ class _MixCartonEditorState extends State<MixCartonEditor> {
|
|||||||
},
|
},
|
||||||
),
|
),
|
||||||
backgroundColor: Colors.white,
|
backgroundColor: Colors.white,
|
||||||
title: LocalText(context, 'boxes.new',
|
title: LocalText(context, 'box.update_title',
|
||||||
color: primaryColor, fontSize: 20),
|
color: primaryColor, fontSize: 20),
|
||||||
),
|
),
|
||||||
body: Column(
|
body: Column(
|
||||||
@@ -163,6 +180,7 @@ class _MixCartonEditorState extends State<MixCartonEditor> {
|
|||||||
} else {
|
} else {
|
||||||
return Expanded(
|
return Expanded(
|
||||||
child: MixCartonSubmit(
|
child: MixCartonSubmit(
|
||||||
|
isNew: false,
|
||||||
cartonSizeType: _cartonSizeType,
|
cartonSizeType: _cartonSizeType,
|
||||||
standardSize: _standardSize,
|
standardSize: _standardSize,
|
||||||
length: _length,
|
length: _length,
|
||||||
@@ -171,7 +189,7 @@ class _MixCartonEditorState extends State<MixCartonEditor> {
|
|||||||
shipment: _shipment!,
|
shipment: _shipment!,
|
||||||
cartons: _cartons,
|
cartons: _cartons,
|
||||||
onCreate: () {
|
onCreate: () {
|
||||||
_create();
|
_update();
|
||||||
},
|
},
|
||||||
onPrevious: () {
|
onPrevious: () {
|
||||||
setState(() {
|
setState(() {
|
||||||
@@ -183,7 +201,7 @@ class _MixCartonEditorState extends State<MixCartonEditor> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_create() async {
|
_update() async {
|
||||||
setState(() {
|
setState(() {
|
||||||
_isLoading = true;
|
_isLoading = true;
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ typedef OnCreateMixCarton = Function();
|
|||||||
typedef OnPrevious = Function();
|
typedef OnPrevious = Function();
|
||||||
|
|
||||||
class MixCartonSubmit extends StatefulWidget {
|
class MixCartonSubmit extends StatefulWidget {
|
||||||
|
final bool isNew;
|
||||||
final FcsShipment shipment;
|
final FcsShipment shipment;
|
||||||
final List<Carton> cartons;
|
final List<Carton> cartons;
|
||||||
final String cartonSizeType;
|
final String cartonSizeType;
|
||||||
@@ -37,7 +38,8 @@ class MixCartonSubmit extends StatefulWidget {
|
|||||||
required this.cartonSizeType,
|
required this.cartonSizeType,
|
||||||
this.length = 0,
|
this.length = 0,
|
||||||
this.width = 0,
|
this.width = 0,
|
||||||
this.height = 0})
|
this.height = 0,
|
||||||
|
this.isNew = true})
|
||||||
: super(key: key);
|
: super(key: key);
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -253,7 +255,8 @@ class _MixCartonSubmitState extends State<MixCartonSubmit> {
|
|||||||
mainAxisAlignment: MainAxisAlignment.center,
|
mainAxisAlignment: MainAxisAlignment.center,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
Flexible(
|
Flexible(
|
||||||
child: LocalText(context, 'box.crete.carton',
|
child: LocalText(context,
|
||||||
|
widget.isNew ? 'box.crete.carton' : 'box.update.btn',
|
||||||
color: Colors.white, fontSize: 15),
|
color: Colors.white, fontSize: 15),
|
||||||
),
|
),
|
||||||
const SizedBox(width: 5),
|
const SizedBox(width: 5),
|
||||||
|
|||||||
@@ -65,28 +65,33 @@ class _TypeWidgetState extends State<TypeWidget> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_init() async {
|
_init() async {
|
||||||
_shipment = widget.shipment;
|
|
||||||
_cartionSizeType = widget.cartonSizeType;
|
|
||||||
|
|
||||||
List<CartonSize> cartonSizes = context.read<CartonSizeModel>().cartonSizes;
|
List<CartonSize> cartonSizes = context.read<CartonSizeModel>().cartonSizes;
|
||||||
_selectStandardSize = widget.standardSize ?? cartonSizes.first;
|
_selectStandardSize = widget.standardSize ?? cartonSizes.first;
|
||||||
|
_cartionSizeType = widget.cartonSizeType;
|
||||||
|
|
||||||
_lengthController.text =
|
_lengthController.text =
|
||||||
widget.length == null ? "0" : widget.length.toString();
|
widget.length == null ? "0" : removeTrailingZeros(widget.length ?? 0);
|
||||||
_widthController.text =
|
_widthController.text =
|
||||||
widget.width == null ? "0" : widget.width.toString();
|
widget.width == null ? "0" : removeTrailingZeros(widget.width ?? 0);
|
||||||
_heightController.text =
|
_heightController.text =
|
||||||
widget.height == null ? "0" : widget.height.toString();
|
widget.height == null ? "0" : removeTrailingZeros(widget.height ?? 0);
|
||||||
|
|
||||||
var fcsShipments =
|
var fcsShipments =
|
||||||
await context.read<FcsShipmentModel>().getActiveFcsShipments();
|
await context.read<FcsShipmentModel>().getActiveFcsShipments();
|
||||||
_shipments = fcsShipments;
|
_shipments = fcsShipments;
|
||||||
|
_shipment = widget.shipment;
|
||||||
|
|
||||||
if (mounted) {
|
if (mounted) {
|
||||||
setState(() {});
|
setState(() {});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
void didUpdateWidget(covariant TypeWidget oldWidget) {
|
||||||
|
_init();
|
||||||
|
super.didUpdateWidget(oldWidget);
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
List<CartonSize> cartonSizes = context.watch<CartonSizeModel>().cartonSizes;
|
List<CartonSize> cartonSizes = context.watch<CartonSizeModel>().cartonSizes;
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ class FcsShipmentModel extends BaseModel {
|
|||||||
try {
|
try {
|
||||||
var snaps = await FirebaseFirestore.instance
|
var snaps = await FirebaseFirestore.instance
|
||||||
.collection("/$fcs_shipment_collection")
|
.collection("/$fcs_shipment_collection")
|
||||||
.where("status", isEqualTo: fcs_shipment_confirmed_status)
|
// .where("status", isEqualTo: fcs_shipment_confirmed_status)
|
||||||
.get(const GetOptions(source: Source.server));
|
.get(const GetOptions(source: Source.server));
|
||||||
fcsShipments = snaps.docs.map((documentSnapshot) {
|
fcsShipments = snaps.docs.map((documentSnapshot) {
|
||||||
var fcs =
|
var fcs =
|
||||||
@@ -97,6 +97,7 @@ class FcsShipmentModel extends BaseModel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<FcsShipment?> getFcsShipment(String id) async {
|
Future<FcsShipment?> getFcsShipment(String id) async {
|
||||||
|
if (id == "") return null;
|
||||||
try {
|
try {
|
||||||
var snap = await FirebaseFirestore.instance
|
var snap = await FirebaseFirestore.instance
|
||||||
.collection("/$fcs_shipment_collection")
|
.collection("/$fcs_shipment_collection")
|
||||||
|
|||||||
Reference in New Issue
Block a user