import "package:flutter/material.dart"; import "package:flutter_tabler_icons/flutter_tabler_icons.dart"; import "package:inventree/helpers.dart"; import "package:inventree/l10.dart"; import "package:inventree/widget/refreshable_state.dart"; import "package:inventree/widget/snacks.dart"; import "package:inventree/inventree/orders.dart"; class ExtraLineDetailWidget extends StatefulWidget { const ExtraLineDetailWidget(this.item, {Key? key}) : super(key: key); final InvenTreeExtraLineItem item; @override _ExtraLineDetailWidgetState createState() => _ExtraLineDetailWidgetState(); } class _ExtraLineDetailWidgetState extends RefreshableState { _ExtraLineDetailWidgetState(); @override String getAppBarTitle() => L10().extraLineItem; @override List appBarActions(BuildContext context) { List actions = []; if (widget.item.canEdit) { actions.add(IconButton( icon: Icon(TablerIcons.edit), onPressed: () { _editLineItem(context); })); } return actions; } // Function to request data for this page @override Future request(BuildContext context) async { await widget.item.reload(); } // Callback to edit this line item Future _editLineItem(BuildContext context) async { var fields = widget.item.formFields(); widget.item.editForm(context, L10().editLineItem, fields: fields, onSuccess: (data) async { refresh(context); showSnackIcon(L10().lineItemUpdated, success: true); }); } @override List getTiles(BuildContext context) { List tiles = []; tiles.add(ListTile( title: Text(L10().reference), trailing: Text(widget.item.reference), )); tiles.add(ListTile( title: Text(L10().description), trailing: Text(widget.item.description), )); tiles.add(ListTile( title: Text(L10().quantity), trailing: Text(widget.item.quantity.toString()), )); tiles.add(ListTile( title: Text(L10().unitPrice), trailing: Text( renderCurrency(widget.item.price, widget.item.priceCurrency)))); if (widget.item.notes.isNotEmpty) { tiles.add(ListTile( title: Text(L10().notes), subtitle: Text(widget.item.notes), )); } return tiles; } }