update processing,customer and staff

This commit is contained in:
tzw
2021-10-11 17:09:47 +06:30
parent bfa6b8c2ed
commit 8df11b70a0
22 changed files with 158 additions and 59 deletions

View File

@@ -24,7 +24,7 @@ class DeliveryAddressDataProvider {
Future<void> selectDefalutDeliveryAddress( Future<void> selectDefalutDeliveryAddress(
DeliveryAddress deliveryAddress) async { DeliveryAddress deliveryAddress) async {
return await requestAPI("/delivery_address/defalut", "PUT", return await requestAPI("/delivery_address/default", "PUT",
payload: deliveryAddress.toMap(), token: await getToken()); payload: deliveryAddress.toMapForDefault(), token: await getToken());
} }
} }

View File

@@ -73,6 +73,8 @@ const privilege_invoice = "inv";
const privilege_processing = "pr"; const privilege_processing = "pr";
const privilege_receiving = "rc"; const privilege_receiving = "rc";
const privilege_pickup = "pku"; const privilege_pickup = "pku";
const privilege_collect ="col";
const privilege_report ="rpt";
// Pickup types // Pickup types
const shipment_local_pickup = "Local pickup"; const shipment_local_pickup = "Local pickup";

View File

@@ -91,7 +91,7 @@ class Package {
userName: map['user_name'], userName: map['user_name'],
phoneNumber: map['phone_number'], phoneNumber: map['phone_number'],
remark: map['remark'], remark: map['remark'],
desc: map['desc'], desc: map['desc'] ?? "",
status: map['status'], status: map['status'],
senderFCSID: map['sender_fcs_id'], senderFCSID: map['sender_fcs_id'],
senderName: map['sender_name'], senderName: map['sender_name'],
@@ -134,11 +134,12 @@ class Package {
} }
bool isChangedForEditProcessing(Package package) { bool isChangedForEditProcessing(Package package) {
return package.trackingID != this.trackingID || return package.fcsID != this.fcsID ||
package.fcsID != this.fcsID || package.senderFCSID != this.senderFCSID ||
package.market != this.market || package.market != this.market ||
package.desc != this.desc || package.desc != this.desc ||
package.remark != this.remark; package.remark != this.remark ||
package.photoUrls != this.photoUrls;
} }
@override @override

View File

@@ -29,7 +29,7 @@ class DeliveryAddress {
city: map['city'], city: map['city'],
state: map['state'], state: map['state'],
phoneNumber: map['phone_number'], phoneNumber: map['phone_number'],
isDefault: map['is_defalut'] ?? false, isDefault: map['is_default'] ?? false,
); );
} }
@@ -46,6 +46,10 @@ class DeliveryAddress {
}; };
} }
Map<String, dynamic> toMapForDefault() {
return {"id": id};
}
bool isChangedForEdit(DeliveryAddress deliveryAddress) { bool isChangedForEdit(DeliveryAddress deliveryAddress) {
return deliveryAddress.fullName != this.fullName || return deliveryAddress.fullName != this.fullName ||
deliveryAddress.phoneNumber != this.phoneNumber || deliveryAddress.phoneNumber != this.phoneNumber ||

View File

@@ -45,6 +45,10 @@ class Privilege {
iconData = MaterialCommunityIcons.inbox_arrow_down; iconData = MaterialCommunityIcons.inbox_arrow_down;
} else if (this.id == privilege_pickup) { } else if (this.id == privilege_pickup) {
iconData = SimpleLineIcons.direction; iconData = SimpleLineIcons.direction;
} else if (this.id == privilege_collect) {
iconData = MaterialCommunityIcons.layers;
} else if (this.id == privilege_report) {
iconData = Feather.file_text;
} else { } else {
iconData = MaterialCommunityIcons.account_question; iconData = MaterialCommunityIcons.account_question;
} }

View File

@@ -205,7 +205,7 @@ class _CargoTableState extends State<CargoTable> {
alignment: Alignment.centerRight, alignment: Alignment.centerRight,
child: InkWell( child: InkWell(
onTap: () async { onTap: () async {
String _t = await showDialog( String? _t = await showDialog(
context: context, context: context,
builder: (_) => DialogInput( builder: (_) => DialogInput(
label: "shipment.cargo.total", label: "shipment.cargo.total",

View File

@@ -853,7 +853,7 @@ class _CartonEditorState extends State<CartonEditor> {
carton.deliveryAddress = _carton!.deliveryAddress; carton.deliveryAddress = _carton!.deliveryAddress;
try { try {
Carton _c = await Navigator.push( Carton? _c = await Navigator.push(
context, context,
CupertinoPageRoute( CupertinoPageRoute(
builder: (context) => PackageCartonEditor( builder: (context) => PackageCartonEditor(

View File

@@ -38,7 +38,7 @@ class MessageModel extends BaseModel {
} }
Future<void> load() async { Future<void> load() async {
if (prevSnap == null) return; // if (prevSnap == null) return;
Query _query = Query _query =
prevSnap != null ? query.startAfterDocument(prevSnap!) : query; prevSnap != null ? query.startAfterDocument(prevSnap!) : query;
QuerySnapshot snapshot = QuerySnapshot snapshot =
@@ -62,8 +62,8 @@ class MessageModel extends BaseModel {
listener = FirebaseFirestore.instance listener = FirebaseFirestore.instance
.collection("$user_collection/$userID/$messages_collection") .collection("$user_collection/$userID/$messages_collection")
.endBeforeDocument(snap)
.orderBy('date', descending: true) .orderBy('date', descending: true)
.endBeforeDocument(snap)
.snapshots(includeMetadataChanges: true) .snapshots(includeMetadataChanges: true)
.listen((qs) { .listen((qs) {
qs.docChanges.forEach((c) { qs.docChanges.forEach((c) {

View File

@@ -141,8 +141,8 @@ class FcsShipmentModel extends BaseModel {
.where("pending_invoice_user_count", isGreaterThan: 0) .where("pending_invoice_user_count", isGreaterThan: 0)
.get(const GetOptions(source: Source.server)); .get(const GetOptions(source: Source.server));
fcsShipments = snaps.docs.map((documentSnapshot) { fcsShipments = snaps.docs.map((documentSnapshot) {
var fcs = FcsShipment.fromMap( var fcs =
documentSnapshot.data as Map<String, dynamic>, documentSnapshot.id); FcsShipment.fromMap(documentSnapshot.data(), documentSnapshot.id);
return fcs; return fcs;
}).toList(); }).toList();
} catch (e) { } catch (e) {

View File

@@ -299,7 +299,7 @@ class _HomePageState extends State<HomePage> {
final staffBtn = TaskButton( final staffBtn = TaskButton(
"staff.title", "staff.title",
icon: MaterialCommunityIcons.account_tie, icon: MaterialCommunityIcons.account_hard_hat,
btnCallback: () => Navigator.of(context).push<void>(CupertinoPageRoute( btnCallback: () => Navigator.of(context).push<void>(CupertinoPageRoute(
builder: (context) => StaffList(), builder: (context) => StaffList(),
)), )),
@@ -335,12 +335,12 @@ class _HomePageState extends State<HomePage> {
widgets.add(notiBtn); widgets.add(notiBtn);
if (user.joined) { if (user.joined) {
widgets.add(packagesBtn); widgets.add(packagesBtn);
widgets.add(shipmentBtn); // widgets.add(shipmentBtn);
widgets.add(invoicesBtn); widgets.add(invoicesBtn);
if (user.hasAdmin() || user.hasSupport()) widgetsFcs.add(rateBtnFcs); if (user.hasAdmin() || user.hasSupport()) widgetsFcs.add(rateBtnFcs);
if (user.hasPackages()) widgetsFcs.add(packagesBtnFcs); if (user.hasPackages()) widgetsFcs.add(packagesBtnFcs);
if (user.hasShipment()) widgetsFcs.add(shipmentBtnFcs); // if (user.hasShipment()) widgetsFcs.add(shipmentBtnFcs);
if (user.hasShipment()) widgetsFcs.add(pickupBtnFcs); if (user.hasShipment()) widgetsFcs.add(pickupBtnFcs);
if (user.hasInvoices()) widgetsFcs.add(invoicesBtnFcs); if (user.hasInvoices()) widgetsFcs.add(invoicesBtnFcs);

View File

@@ -222,8 +222,7 @@ class PackageModel extends BaseModel {
.where("is_deleted", isEqualTo: false) .where("is_deleted", isEqualTo: false)
.get(const GetOptions(source: Source.server)); .get(const GetOptions(source: Source.server));
packages = snaps.docs.map((documentSnapshot) { packages = snaps.docs.map((documentSnapshot) {
var p = Package.fromMap( var p = Package.fromMap(documentSnapshot.data(), documentSnapshot.id);
documentSnapshot.data as Map<String, dynamic>, documentSnapshot.id);
return p; return p;
}).toList(); }).toList();
} catch (e) { } catch (e) {
@@ -271,7 +270,7 @@ class PackageModel extends BaseModel {
package.photoUrls = package.photoUrls == null ? [] : package.photoUrls; package.photoUrls = package.photoUrls == null ? [] : package.photoUrls;
String path = Path.join(pkg_files_path); String path = Path.join(pkg_files_path);
List<String> urls = await uploadFiles(path, files); List<String> urls = await uploadFiles(path, files);
package.photoUrls =urls; package.photoUrls = urls;
} }
try { try {

View File

@@ -65,8 +65,8 @@ class _PackageEditorState extends State<PackageEditor> {
} }
setState(() { setState(() {
selectedMarket = _package!.market ?? ""; selectedMarket = _package!.market ?? "";
_descCtl.text = _package!.desc!; _descCtl.text = _package!.desc ?? "";
_remarkCtl.text = _package!.remark!; _remarkCtl.text = _package!.remark ?? "";
multiImgController.setImageUrls = _package!.photoUrls; multiImgController.setImageUrls = _package!.photoUrls;
}); });
} }
@@ -180,7 +180,7 @@ class _PackageEditorState extends State<PackageEditor> {
List<String?> markets = _markets.map((e) => e.name).toList(); List<String?> markets = _markets.map((e) => e.name).toList();
markets.insert(0, MANAGE_MARKET); markets.insert(0, MANAGE_MARKET);
if (!markets.contains(selectedMarket)) { if (!markets.contains(selectedMarket)) {
markets.insert(0, selectedMarket!); markets.insert(0, selectedMarket);
} }
return Row( return Row(
@@ -254,13 +254,13 @@ class _PackageEditorState extends State<PackageEditor> {
PackageModel packageModel = PackageModel packageModel =
Provider.of<PackageModel>(context, listen: false); Provider.of<PackageModel>(context, listen: false);
try { try {
_package!.market = selectedMarket!; _package!.market = selectedMarket ?? "";
_package!.desc = _descCtl.text; _package!.desc = _descCtl.text;
_package!.remark = _remarkCtl.text; _package!.remark = _remarkCtl.text;
_package!.photoFiles = multiImgController.getUpdatedFile; _package!.photoFiles = multiImgController.getUpdatedFile;
_package!.fcsID = widget.consignee!.fcsID; _package!.fcsID = widget.consignee?.fcsID;
_package!.senderFCSID = _package!.senderFCSID =
widget.sender!.fcsID != null ? widget.sender!.fcsID : ""; widget.sender?.fcsID != null ? widget.sender?.fcsID : "";
await packageModel.updateProcessing(_package!, await packageModel.updateProcessing(_package!,
multiImgController.getAddedFile, multiImgController.getDeletedUrl); multiImgController.getAddedFile, multiImgController.getDeletedUrl);
@@ -276,9 +276,10 @@ class _PackageEditorState extends State<PackageEditor> {
} }
isDataChanged() { isDataChanged() {
return selectedMarket != null || return _package?.trackingID != null ||
_descCtl.text != "" || _descCtl.text != "" ||
_remarkCtl.text != "" || _remarkCtl.text != "" ||
multiImgController.getAddedFile.isNotEmpty; multiImgController.getAddedFile.isNotEmpty ||
selectedMarket != null && selectedMarket != "";
} }
} }

View File

@@ -34,7 +34,8 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
TextEditingController _descCtl = new TextEditingController(); TextEditingController _descCtl = new TextEditingController();
Package? _package; Package? _package;
User? _user; User? _consignee;
User? _sender;
bool _isLoading = false; bool _isLoading = false;
@override @override
@@ -45,10 +46,15 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
_descCtl.text = _package!.desc ?? ""; _descCtl.text = _package!.desc ?? "";
_remarkCtl.text = _package!.remark ?? ""; _remarkCtl.text = _package!.remark ?? "";
multiImgController.setImageUrls = _package!.photoUrls; multiImgController.setImageUrls = _package!.photoUrls;
_user = User( _consignee = User(
fcsID: _package!.fcsID ?? "", fcsID: _package!.fcsID ?? "",
name: _package!.userName ?? "", name: _package!.userName ?? "",
phoneNumber: _package!.phoneNumber ?? ""); phoneNumber: _package!.phoneNumber ?? "");
_sender = User(
fcsID: _package!.senderFCSID ?? "",
name: _package!.senderName ?? "",
phoneNumber: _package!.senderPhoneNumber ?? "");
} }
final DateFormat dateFormat = DateFormat("d MMM yyyy"); final DateFormat dateFormat = DateFormat("d MMM yyyy");
@@ -62,7 +68,7 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
children: <Widget>[ children: <Widget>[
Expanded( Expanded(
child: DisplayText( child: DisplayText(
text: _user!.fcsID, text: _consignee!.fcsID,
labelTextKey: "processing.fcs.id", labelTextKey: "processing.fcs.id",
icon: FcsIDIcon(), icon: FcsIDIcon(),
)), )),
@@ -70,18 +76,18 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
icon: Icon(Icons.search, color: primaryColor), icon: Icon(Icons.search, color: primaryColor),
onPressed: () => searchUser(context, onUserSelect: (u) { onPressed: () => searchUser(context, onUserSelect: (u) {
setState(() { setState(() {
this._user = u; this._consignee = u;
}); });
})), })),
], ],
); );
final namebox = DisplayText( final namebox = DisplayText(
text: _user!.name, text: _consignee!.name,
labelTextKey: "processing.name", labelTextKey: "processing.consignee.name",
iconData: Icons.person, iconData: Icons.person,
); );
final phoneNumberBox = DisplayText( final phoneNumberBox = DisplayText(
text: _user!.phoneNumber, text: _consignee!.phoneNumber,
labelTextKey: "processing.phone", labelTextKey: "processing.phone",
iconData: Icons.phone, iconData: Icons.phone,
); );
@@ -110,6 +116,59 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
controller: multiImgController, controller: multiImgController,
title: "Receipt File", title: "Receipt File",
); );
final consigneeBox = Container(
child: Column(
children: [
fcsIDBox,
phoneNumberBox,
namebox,
],
),
);
var shipperIDBox = Row(
children: <Widget>[
Expanded(
child: DisplayText(
text: _sender != null ? _sender!.fcsID : "",
labelTextKey: "processing.fcs.id",
icon: FcsIDIcon(),
)),
IconButton(
icon: Icon(Icons.search, color: primaryColor),
onPressed: () => searchUser(context, onUserSelect: (u) {
setState(() {
this._sender = u;
});
}, popPage: true)),
],
);
final shipperPhoneNumberBox = DisplayText(
text: _sender != null ? _sender!.phoneNumber : "",
labelTextKey: "processing.phone",
maxLines: 2,
iconData: Icons.phone,
);
final shipperNamebox = DisplayText(
text: _sender != null ? _sender!.name : "",
labelTextKey: "processing.shipper.name",
maxLines: 2,
iconData: Icons.person,
);
final shipperBox = Container(
child: Column(
children: [
shipperIDBox,
shipperPhoneNumberBox,
shipperNamebox,
],
),
);
return LocalProgress( return LocalProgress(
inAsyncCall: _isLoading, inAsyncCall: _isLoading,
child: Scaffold( child: Scaffold(
@@ -141,9 +200,12 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
child: ListView( child: ListView(
children: [ children: [
trackingIdBox, trackingIdBox,
fcsIDBox, Row(
namebox, children: [
phoneNumberBox, Flexible(child: consigneeBox),
Flexible(child: shipperBox)
],
),
marketDropdown(), marketDropdown(),
descBox, descBox,
remarkBox, remarkBox,
@@ -165,11 +227,11 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
List<String?> markets = _markets.map((e) => e.name).toList(); List<String?> markets = _markets.map((e) => e.name).toList();
markets.insert(0, MANAGE_MARKET); markets.insert(0, MANAGE_MARKET);
if (!markets.contains(selectedMarket)) { if (!markets.contains(selectedMarket)) {
markets.insert(0, selectedMarket!); markets.insert(0, selectedMarket);
} }
return Padding( return Padding(
padding: const EdgeInsets.only(left: 5.0, right: 0), padding: const EdgeInsets.only(left: 5.0, right: 0, top: 10),
child: Row( child: Row(
children: [ children: [
Padding( Padding(
@@ -236,7 +298,7 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
} }
_completeProcessing() async { _completeProcessing() async {
if (_user!.fcsID == null || _user!.fcsID == "") { if (_consignee!.fcsID == null || _consignee!.fcsID == "") {
showMsgDialog(context, "Error", "Expected FCS-ID"); showMsgDialog(context, "Error", "Expected FCS-ID");
return; return;
} }
@@ -246,10 +308,11 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
PackageModel packageModel = PackageModel packageModel =
Provider.of<PackageModel>(context, listen: false); Provider.of<PackageModel>(context, listen: false);
try { try {
_package!.fcsID = _user!.fcsID; _package!.fcsID = _consignee!.fcsID;
_package!.senderFCSID = _sender!.fcsID;
_package!.desc = _descCtl.text; _package!.desc = _descCtl.text;
_package!.remark = _remarkCtl.text; _package!.remark = _remarkCtl.text;
_package!.market = selectedMarket!; _package!.market = selectedMarket ?? "";
await packageModel.updateProcessing(_package!, await packageModel.updateProcessing(_package!,
multiImgController.getAddedFile, multiImgController.getDeletedUrl); multiImgController.getAddedFile, multiImgController.getDeletedUrl);
Navigator.pop(context); Navigator.pop(context);
@@ -264,17 +327,17 @@ class _ProcessingEditEditorState extends State<ProcessingEditEditor> {
isDataChanged() { isDataChanged() {
if (isNew) { if (isNew) {
return _user!.fcsID != "" || return _consignee!.fcsID != "" ||
selectedMarket != null || selectedMarket != null ||
_descCtl.text != "" || _descCtl.text != "" ||
_remarkCtl.text != "" || _remarkCtl.text != "" ||
multiImgController.getAddedFile.isNotEmpty; multiImgController.getAddedFile.isNotEmpty;
} else { } else {
var _package = Package( var _package = Package(
trackingID: widget.package!.trackingID, fcsID: _consignee!.fcsID,
fcsID: _user!.fcsID, senderFCSID: _sender!.fcsID,
market: selectedMarket!, market: selectedMarket,
desc: _descCtl.text, desc: _descCtl.text ,
remark: _remarkCtl.text, remark: _remarkCtl.text,
photoUrls: widget.package!.photoUrls); photoUrls: widget.package!.photoUrls);
return widget.package!.isChangedForEditProcessing(_package) || return widget.package!.isChangedForEditProcessing(_package) ||

View File

@@ -160,7 +160,8 @@ class _ProcesingEditorState extends State<ProcesingEditor> {
consignee: this.consignee, consignee: this.consignee,
)), )),
); );
_addPackage(_package!);
_addPackage(_package);
// _savePackage(_package); // _savePackage(_package);
}), }),
], ],
@@ -244,14 +245,14 @@ class _ProcesingEditorState extends State<ProcesingEditor> {
}).toList(); }).toList();
} }
_addPackage(Package package) { _addPackage(Package? package) {
if (package == null) return; if (package == null) return;
this.packages.add(package); this.packages.add(package);
setState(() {}); setState(() {});
} }
_savePackage(Package package) { _savePackage(Package? package) {
if (package == null) return; if (package == null) return;
setState(() {}); setState(() {});
} }

View File

@@ -215,15 +215,14 @@ class _ProcessingInfoState extends State<ProcessingInfo> {
bool? deleted = await Navigator.push<bool>( bool? deleted = await Navigator.push<bool>(
context, context,
CupertinoPageRoute( CupertinoPageRoute(
builder: (context) => ProcessingEditEditor( builder: (context) => ProcessingEditEditor(package: _package)));
package: widget.package,
)));
if (deleted ?? false) { if (deleted ?? false) {
Navigator.pop(context); Navigator.pop(context);
} else { } else {
PackageModel packageModel = PackageModel packageModel =
Provider.of<PackageModel>(context, listen: false); Provider.of<PackageModel>(context, listen: false);
Package? p = await packageModel.getPackage(_package!.id!); Package? p = await packageModel.getPackage(_package!.id!);
if(p == null)return;
initPackage(p); initPackage(p);
} }
} }

View File

@@ -21,6 +21,7 @@ import 'package:provider/provider.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart'; import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import '../../helpers/theme.dart'; import '../../helpers/theme.dart';
import 'package:collection/collection.dart';
typedef void ProfileCallback(); typedef void ProfileCallback();
@@ -202,9 +203,11 @@ class _ProfileState extends State<Profile> {
Provider.of<StaffModel>(context, listen: false).privileges; Provider.of<StaffModel>(context, listen: false).privileges;
if (user == null || user.isCustomer()) return Container(); if (user == null || user.isCustomer()) return Container();
List<Privilege> privileges = []; List<Privilege> privileges = [];
user.privileges.forEach((e) { user.privileges.forEach((e) {
var p = _privileges.firstWhere((p) => p.id == e); Privilege? p = _privileges.firstWhereOrNull((p) => p.id == e);
if (p != null) { if (p != null) {
privileges.add(p); privileges.add(p);
} }

View File

@@ -105,6 +105,10 @@ class _CargoEditorState extends State<CargoEditor> {
} }
_save() async { _save() async {
if (_rateController.text == "") {
showMsgDialog(context, "Error", "Please insert rate");
return;
}
setState(() { setState(() {
_isLoading = true; _isLoading = true;
}); });

View File

@@ -118,6 +118,16 @@ class _CustomEditorState extends State<CustomEditor> {
} }
_save() async { _save() async {
if (_feeController.text == "") {
showMsgDialog(context, "Error", "Please insert fee");
return;
}
if (_shipmentRateController.text == "") {
showMsgDialog(context, "Error", "Please insert shipment rate");
return;
}
setState(() { setState(() {
_isLoading = true; _isLoading = true;
}); });

View File

@@ -107,6 +107,16 @@ class _DiscountByWeightEditorState extends State<DiscountByWeightEditor> {
} }
_save() async { _save() async {
if (_weightController.text == "") {
showMsgDialog(context, "Error", "Please insert weight");
return;
}
if (_discountController.text == "") {
showMsgDialog(context, "Error", "Please insert discount rate");
return;
}
setState(() { setState(() {
_isLoading = true; _isLoading = true;
}); });

View File

@@ -144,9 +144,7 @@ class _ReceivingInfoState extends State<ReceivingInfo> {
await Navigator.push( await Navigator.push(
context, context,
CupertinoPageRoute( CupertinoPageRoute(
builder: (context) => ReceivingEditor( builder: (context) => ReceivingEditor(package: _package)),
package: widget.package,
)),
); );
PackageModel packageModel = PackageModel packageModel =
Provider.of<PackageModel>(context, listen: false); Provider.of<PackageModel>(context, listen: false);

View File

@@ -5,6 +5,7 @@ import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_vector_icons/flutter_vector_icons.dart';
import 'package:intl/intl.dart'; import 'package:intl/intl.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
@@ -83,7 +84,7 @@ class _StaffListState extends State<StaffList> {
padding: new EdgeInsets.symmetric( padding: new EdgeInsets.symmetric(
horizontal: 32.0 - dotSize / 2), horizontal: 32.0 - dotSize / 2),
child: Icon( child: Icon(
Icons.person, MaterialCommunityIcons.account_hard_hat,
color: primaryColor, color: primaryColor,
size: 40, size: 40,
), ),

View File

@@ -8,7 +8,6 @@ import 'package:fcs/pages/widgets/local_text.dart';
import 'package:fcs/pages/widgets/progress.dart'; import 'package:fcs/pages/widgets/progress.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:flutter_icons_null_safety/flutter_icons_null_safety.dart';
import 'package:provider/provider.dart'; import 'package:provider/provider.dart';
import 'package:zefyrka/zefyrka.dart'; import 'package:zefyrka/zefyrka.dart';
// import 'package:zefyr/zefyr.dart'; // import 'package:zefyr/zefyr.dart';