This commit is contained in:
phyothandar
2021-09-14 11:03:03 +06:30
parent 442449e1dd
commit 74b013a86d
8 changed files with 224 additions and 139 deletions

View File

@@ -0,0 +1,54 @@
import 'dart:async';
import 'dart:io';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/domain/entities/package.dart';
import 'package:fcs/domain/entities/processing.dart';
import 'package:fcs/pages/main/model/base_model.dart';
import 'package:fcs/pagination/paginator_listener.dart';
import 'package:logging/logging.dart';
class PickupModel extends BaseModel {
// List<Processing> pickups = [];
final log = Logger('PickupModel');
StreamSubscription<QuerySnapshot>? listener;
PaginatorListener<Package>? pickups;
int _menuSelectedIndex = 1;
set menuSelectedIndex(int index) {
_menuSelectedIndex = index;
// _loadPackages(_menuSelectedIndex == 2);
// _loadCustomerPackages(_menuSelectedIndex == 2);
notifyListeners();
}
int get menuSelectedIndex => _menuSelectedIndex;
void initUser(user) {
super.initUser(user);
}
void privilegeChanged() {
if (user != null) {
_initData();
}
}
Future<void> _initData() async {}
@override
logout() async {
if (listener != null) await listener!.cancel();
if (pickups != null) pickups!.close();
// pickups = [];
}
Future<void> createProcessing(Processing processing) async {}
Future<void> updateProcessing(Processing processing) async {}
}

View File

@@ -1,30 +0,0 @@
import 'dart:async';
import 'dart:io';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:fcs/domain/entities/package.dart';
import 'package:fcs/domain/entities/processing.dart';
import 'package:fcs/pages/main/model/base_model.dart';
import 'package:logging/logging.dart';
class ProcessingModel extends BaseModel {
List<Processing> processings = [];
final log = Logger('ProcessingModel');
StreamSubscription<QuerySnapshot>? listener;
void initUser(user) {
super.initUser(user);
}
@override
logout() async {
if (listener != null) await listener!.cancel();
processings = [];
}
Future<void> createProcessing(Processing processing) async {}
Future<void> updateProcessing(Processing processing) async {}
}

View File

@@ -64,18 +64,17 @@ class _PickupEditorState extends State<PickupEditor> {
Container(
width: 150,
child: DisplayText(
text: '',
labelTextKey: "pickup.time",
iconData: Icons.timer,
text: '9:00 AM',
labelTextKey: "pickup.from_time",
iconData: MaterialCommunityIcons.clock_start,
),
),
Container(
width: 150,
child: DisplayText(
text: '',
labelTextKey: "pickup.time",
iconData: Icons.timer,
),
text: '12:00 AM',
labelTextKey: "pickup.to_time",
iconData: MaterialCommunityIcons.clock_end),
)
],
);
@@ -94,18 +93,25 @@ class _PickupEditorState extends State<PickupEditor> {
final completeProcessingBtn = fcsButton(
context,
getLocalString(context, 'pickup.edit.complete.btn'),
callack: _completeProcessing,
callack: _confirmComplete,
);
final descBox = DisplayText(
text: _package!.desc ?? "",
labelTextKey: 'processing.desc',
iconData: MaterialCommunityIcons.message_text_outline,
final staffNameBox = DisplayText(
text: _package != null ? _package!.userName : "",
labelTextKey: "pickup.staff.name",
iconData: Icons.perm_identity,
);
final remarkBox = InputText(
labelTextKey: 'pickup.remark',
iconData: Entypo.new_message,
controller: _remarkCtl);
final statusBox = DisplayText(
text: _package != null ? _package!.status : "",
labelTextKey: "pickup.status",
iconData: Icons.av_timer,
);
final img = MultiImageFile(
enabled: true,
controller: multiImgController,
@@ -144,7 +150,8 @@ class _PickupEditorState extends State<PickupEditor> {
pickupNumberBox,
pickupDateBox,
timeBox,
descBox,
staffNameBox,
statusBox,
remarkBox,
img,
_package!.status == 'packed'
@@ -236,7 +243,7 @@ class _PickupEditorState extends State<PickupEditor> {
);
}
_completeProcessing() async {
_completePickup() async {
if (_user!.fcsID == null || _user!.fcsID == "") {
showMsgDialog(context, "Error", "Expected FCS-ID");
return;
@@ -247,12 +254,12 @@ class _PickupEditorState extends State<PickupEditor> {
PackageModel packageModel =
Provider.of<PackageModel>(context, listen: false);
try {
_package!.fcsID = _user!.fcsID;
_package!.desc = _descCtl.text;
_package!.remark = _remarkCtl.text;
_package!.market = selectedMarket!;
await packageModel.updateProcessing(_package!,
multiImgController.getAddedFile, multiImgController.getDeletedUrl);
// _package!.fcsID = _user!.fcsID;
// _package!.desc = _descCtl.text;
// _package!.remark = _remarkCtl.text;
// _package!.market = selectedMarket!;
// await packageModel.updateProcessing(_package!,
// multiImgController.getAddedFile, multiImgController.getDeletedUrl);
Navigator.pop(context);
} catch (e) {
showMsgDialog(context, "Error", e.toString());
@@ -263,6 +270,12 @@ class _PickupEditorState extends State<PickupEditor> {
}
}
_confirmComplete() {
showConfirmDialog(context, "pickup.confirm.complete", () {
_completePickup();
});
}
isDataChanged() {
if (isNew) {
return _user!.fcsID != "" ||

View File

@@ -54,55 +54,29 @@ class _PickupInfoState extends State<PickupInfo> {
@override
Widget build(BuildContext context) {
final pickupNumberBox = DisplayText(
text: _package != null ? _package!.trackingID : '',
text: _package != null ? '210502-ASDFRE' : '210502-ASDFRE',
labelTextKey: "pickup.pickup_number",
iconData: SimpleLineIcons.direction,
);
var fcsIDBox = DisplayText(
text: _package != null ? _package!.fcsID : "",
labelTextKey: "pickup.fcs.id",
icon: FcsIDIcon(),
);
final phoneNumberBox = DisplayText(
text: _package != null ? _package!.phoneNumber : "",
labelTextKey: "pickup.phone",
iconData: Icons.phone,
);
final customerNameBox = DisplayText(
final staffNameBox = DisplayText(
text: _package != null ? _package!.userName : "",
labelTextKey: "pickup.consignee.name",
labelTextKey: "pickup.staff.name",
iconData: Icons.perm_identity,
);
var senderFcsIDBox = DisplayText(
text: _package != null ? _package!.senderFCSID : "",
labelTextKey: "pickup.fcs.id",
icon: FcsIDIcon(),
);
final senderPhoneNumberBox = DisplayText(
text: _package != null ? _package!.senderPhoneNumber : "",
labelTextKey: "pickup.phone",
iconData: Icons.phone,
);
final senderNameBox = DisplayText(
text: _package != null ? _package!.senderName : "",
labelTextKey: "pickup.shipper.name",
iconData: Icons.perm_identity,
);
final marketBox = DisplayText(
text: _package != null ? _package!.market : "-",
labelTextKey: "pickup.market",
iconData: Icons.store,
);
final descBox = DisplayText(
text: _package != null ? _package!.desc : "-",
labelTextKey: "pickup.desc",
iconData: MaterialCommunityIcons.message_text_outline,
);
final remarkBox = DisplayText(
text: _package != null ? _package!.remark : "-",
labelTextKey: "pickup.remark",
iconData: Entypo.new_message,
);
final statusBox = DisplayText(
text: _package != null ? _package!.status : "",
labelTextKey: "pickup.status",
iconData: Icons.av_timer,
);
final img = MultiImageFile(
enabled: false,
controller: multiImgController,
@@ -115,39 +89,26 @@ class _PickupInfoState extends State<PickupInfo> {
Container(
width: 150,
child: DisplayText(
text: '',
labelTextKey: "pickup.time",
iconData: Icons.timer,
text: '9:00 AM',
labelTextKey: "pickup.from_time",
iconData: MaterialCommunityIcons.clock_start,
),
),
Container(
width: 150,
child: DisplayText(
text: '',
labelTextKey: "pickup.time",
iconData: Icons.timer,
text: '12:00 AM',
labelTextKey: "pickup.to_time",
iconData: MaterialCommunityIcons.clock_end,
),
)
],
);
final consigneeBox = Container(
child: Column(
children: [
fcsIDBox,
phoneNumberBox,
customerNameBox,
],
),
);
final shipperBox = Container(
child: Column(
children: [
senderFcsIDBox,
senderPhoneNumberBox,
senderNameBox,
],
),
final continueBtn = fcsButton(
context,
getLocalString(context, 'pickup.continue.btn'),
callack: _gotoEditor,
);
final pickupDateBox = DisplayText(
@@ -173,16 +134,6 @@ class _PickupInfoState extends State<PickupInfo> {
fontSize: 20,
color: primaryColor,
),
actions: <Widget>[
IconButton(
icon: Icon(Icons.delete, color: primaryColor),
onPressed: _delete,
),
IconButton(
icon: Icon(Icons.edit, color: primaryColor),
onPressed: _gotoEditor,
),
],
),
body: Card(
child: Column(
@@ -194,12 +145,11 @@ class _PickupInfoState extends State<PickupInfo> {
pickupNumberBox,
pickupDateBox,
timeBox,
descBox,
staffNameBox,
remarkBox,
statusBox,
_package!.photoUrls.length == 0 ? Container() : img,
StatusTree(
shipmentHistory: _package!.shipmentHistory,
currentStatus: _package!.status ?? ""),
_package!.status == "packed" ? continueBtn : Container(),
SizedBox(
height: 20,
)