update pickup
This commit is contained in:
@@ -1,15 +1,15 @@
|
||||
import 'package:fcs/domain/entities/market.dart';
|
||||
import 'package:fcs/domain/entities/package.dart';
|
||||
import 'package:fcs/domain/entities/pickup.dart';
|
||||
import 'package:fcs/domain/entities/user.dart';
|
||||
import 'package:fcs/helpers/theme.dart';
|
||||
import 'package:fcs/pages/market/market_editor.dart';
|
||||
import 'package:fcs/pages/market/model/market_model.dart';
|
||||
import 'package:fcs/pages/package/model/package_model.dart';
|
||||
import 'package:fcs/pages/package/tracking_id_page.dart';
|
||||
import 'package:fcs/pages/main/util.dart';
|
||||
import 'package:fcs/pages/user_search/user_serach.dart';
|
||||
import 'package:fcs/pages/pickup/model/pickup_model.dart';
|
||||
import 'package:fcs/pages/widgets/defalut_delivery_address.dart';
|
||||
import 'package:fcs/pages/widgets/display_text.dart';
|
||||
import 'package:fcs/pages/widgets/fcs_id_icon.dart';
|
||||
import 'package:fcs/pages/widgets/input_text.dart';
|
||||
import 'package:fcs/pages/widgets/local_text.dart';
|
||||
import 'package:fcs/pages/widgets/multi_img_controller.dart';
|
||||
@@ -22,49 +22,56 @@ import 'package:intl/intl.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
class PickupEditor extends StatefulWidget {
|
||||
final Package? package;
|
||||
PickupEditor({this.package});
|
||||
final Pickup? pickup;
|
||||
|
||||
const PickupEditor({Key? key, this.pickup}) : super(key: key);
|
||||
|
||||
@override
|
||||
_PickupEditorState createState() => _PickupEditorState();
|
||||
}
|
||||
|
||||
class _PickupEditorState extends State<PickupEditor> {
|
||||
TextEditingController _remarkCtl = new TextEditingController();
|
||||
TextEditingController _descCtl = new TextEditingController();
|
||||
var dateFormatter = new DateFormat('dd MMM yyyy');
|
||||
var timeFormatter = new DateFormat('h:mm a');
|
||||
|
||||
Package? _package;
|
||||
User? _user;
|
||||
TextEditingController _remarkCtl = new TextEditingController();
|
||||
MultiImgController multiImgController = MultiImgController();
|
||||
|
||||
Pickup? _pickup;
|
||||
bool _isLoading = false;
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
_package = widget.package;
|
||||
selectedMarket = _package!.market ?? "";
|
||||
_descCtl.text = _package!.desc ?? "";
|
||||
_remarkCtl.text = _package!.remark ?? "";
|
||||
multiImgController.setImageUrls = _package!.photoUrls;
|
||||
_user = User(
|
||||
fcsID: _package!.fcsID ?? "",
|
||||
name: _package!.userName ?? "",
|
||||
phoneNumber: _package!.phoneNumber ?? "");
|
||||
_pickup = widget.pickup;
|
||||
multiImgController.setImageUrls = _pickup!.photoUrls;
|
||||
}
|
||||
|
||||
final DateFormat dateFormat = DateFormat("d MMM yyyy");
|
||||
|
||||
bool isNew = false;
|
||||
MultiImgController multiImgController = MultiImgController();
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final pickupNumberBox = DisplayText(
|
||||
text: _pickup!.pickupNumber ?? "",
|
||||
labelTextKey: "pickup.pickup_number",
|
||||
iconData: SimpleLineIcons.direction,
|
||||
);
|
||||
|
||||
final pickupDateBox = DisplayText(
|
||||
text: _pickup!.pickupDate == null
|
||||
? ""
|
||||
: dateFormatter.format(_pickup!.pickupDate!),
|
||||
labelTextKey: "pickup.date",
|
||||
iconData: Icons.date_range,
|
||||
);
|
||||
|
||||
var timeBox = Row(
|
||||
mainAxisAlignment: MainAxisAlignment.spaceBetween,
|
||||
children: <Widget>[
|
||||
Container(
|
||||
width: 150,
|
||||
child: DisplayText(
|
||||
text: '9:00 AM',
|
||||
text: _pickup!.fromTime == null
|
||||
? ""
|
||||
: timeFormatter.format(_pickup!.fromTime!),
|
||||
labelTextKey: "pickup.from_time",
|
||||
iconData: MaterialCommunityIcons.clock_start,
|
||||
),
|
||||
@@ -72,42 +79,46 @@ class _PickupEditorState extends State<PickupEditor> {
|
||||
Container(
|
||||
width: 150,
|
||||
child: DisplayText(
|
||||
text: '12:00 AM',
|
||||
labelTextKey: "pickup.to_time",
|
||||
iconData: MaterialCommunityIcons.clock_end),
|
||||
text: _pickup!.toTime == null
|
||||
? ""
|
||||
: timeFormatter.format(_pickup!.toTime!),
|
||||
labelTextKey: "pickup.to_time",
|
||||
iconData: MaterialCommunityIcons.clock_end,
|
||||
),
|
||||
)
|
||||
],
|
||||
);
|
||||
|
||||
final pickupDateBox = DisplayText(
|
||||
text: "12-05-2021",
|
||||
labelTextKey: "pickup.date",
|
||||
iconData: Icons.date_range,
|
||||
final customerBox = DisplayText(
|
||||
text: _pickup!.customerName ?? "",
|
||||
labelTextKey: "pickup.customer",
|
||||
iconData: Icons.perm_identity,
|
||||
);
|
||||
|
||||
final pickupNumberBox = DisplayText(
|
||||
text: "210502-ASDFRE",
|
||||
labelTextKey: "pickup.pickup_number",
|
||||
iconData: SimpleLineIcons.direction,
|
||||
final staffNameBox = DisplayText(
|
||||
text: _pickup!.staffName ?? "",
|
||||
labelTextKey: "pickup.staff.name",
|
||||
iconData: Icons.perm_identity,
|
||||
);
|
||||
|
||||
final deliveryAddressBox = DefaultDeliveryAddress(
|
||||
deliveryAddress: _pickup!.pickupAddress,
|
||||
labelKey: "pickup.delivery.address",
|
||||
onTap: null);
|
||||
|
||||
final completeProcessingBtn = fcsButton(
|
||||
context,
|
||||
getLocalString(context, 'pickup.edit.complete.btn'),
|
||||
callack: _confirmComplete,
|
||||
);
|
||||
|
||||
final staffNameBox = DisplayText(
|
||||
text: _package != null ? _package!.userName : "",
|
||||
labelTextKey: "pickup.staff.name",
|
||||
iconData: Icons.perm_identity,
|
||||
);
|
||||
final remarkBox = InputText(
|
||||
labelTextKey: 'pickup.remark',
|
||||
final completeRemarkBox = InputText(
|
||||
labelTextKey: 'pickup.complete.remark',
|
||||
iconData: Entypo.new_message,
|
||||
controller: _remarkCtl);
|
||||
|
||||
final statusBox = DisplayText(
|
||||
text: _package != null ? _package!.status : "",
|
||||
text: _pickup != null ? _pickup!.status : "",
|
||||
labelTextKey: "pickup.status",
|
||||
iconData: Icons.av_timer,
|
||||
);
|
||||
@@ -117,6 +128,7 @@ class _PickupEditorState extends State<PickupEditor> {
|
||||
controller: multiImgController,
|
||||
title: "Receipt File",
|
||||
);
|
||||
|
||||
return LocalProgress(
|
||||
inAsyncCall: _isLoading,
|
||||
child: Scaffold(
|
||||
@@ -150,11 +162,13 @@ class _PickupEditorState extends State<PickupEditor> {
|
||||
pickupNumberBox,
|
||||
pickupDateBox,
|
||||
timeBox,
|
||||
customerBox,
|
||||
staffNameBox,
|
||||
statusBox,
|
||||
remarkBox,
|
||||
deliveryAddressBox,
|
||||
completeRemarkBox,
|
||||
img,
|
||||
_package!.status == 'packed'
|
||||
_pickup!.status == "confirmed" || _pickup!.status == "rescheduled"
|
||||
? completeProcessingBtn
|
||||
: Container(),
|
||||
SizedBox(
|
||||
@@ -244,22 +258,15 @@ class _PickupEditorState extends State<PickupEditor> {
|
||||
}
|
||||
|
||||
_completePickup() async {
|
||||
if (_user!.fcsID == null || _user!.fcsID == "") {
|
||||
showMsgDialog(context, "Error", "Expected FCS-ID");
|
||||
return;
|
||||
}
|
||||
setState(() {
|
||||
_isLoading = true;
|
||||
});
|
||||
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);
|
||||
_pickup?.completeRemark = _remarkCtl.text;
|
||||
await context.read<PickupModel>().complete(_pickup!,
|
||||
multiImgController.getAddedFile, multiImgController.getDeletedUrl);
|
||||
|
||||
Navigator.pop(context);
|
||||
} catch (e) {
|
||||
showMsgDialog(context, "Error", e.toString());
|
||||
@@ -277,23 +284,10 @@ class _PickupEditorState extends State<PickupEditor> {
|
||||
}
|
||||
|
||||
isDataChanged() {
|
||||
if (isNew) {
|
||||
return _user!.fcsID != "" ||
|
||||
selectedMarket != null ||
|
||||
_descCtl.text != "" ||
|
||||
_remarkCtl.text != "" ||
|
||||
multiImgController.getAddedFile.isNotEmpty;
|
||||
} else {
|
||||
var _package = Package(
|
||||
trackingID: widget.package!.trackingID,
|
||||
fcsID: _user!.fcsID,
|
||||
market: selectedMarket!,
|
||||
desc: _descCtl.text,
|
||||
remark: _remarkCtl.text,
|
||||
photoUrls: widget.package!.photoUrls);
|
||||
return widget.package!.isChangedForEditProcessing(_package) ||
|
||||
multiImgController.getAddedFile.isNotEmpty ||
|
||||
multiImgController.getDeletedUrl.isNotEmpty;
|
||||
}
|
||||
var _pickup = Pickup(
|
||||
completeRemark: _remarkCtl.text, photoUrls: widget.pickup!.photoUrls);
|
||||
return widget.pickup!.isChangedForEdit(_pickup) ||
|
||||
multiImgController.getAddedFile.isNotEmpty ||
|
||||
multiImgController.getDeletedUrl.isNotEmpty;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user