2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-06-13 10:45:29 +00:00

Allow user to manually remove (delete) a StockItem

This commit is contained in:
Oliver Walters
2022-03-26 18:33:02 +11:00
parent 6c3b83c05b
commit ea724fcf5f
4 changed files with 101 additions and 7 deletions

View File

@ -8,7 +8,7 @@ import "package:font_awesome_flutter/font_awesome_flutter.dart";
import "package:inventree/l10.dart";
import "package:one_context/one_context.dart";
Future<void> confirmationDialog(String title, String text, {String? acceptText, String? rejectText, Function? onAccept, Function? onReject}) async {
Future<void> confirmationDialog(String title, String text, {IconData icon = FontAwesomeIcons.questionCircle, String? acceptText, String? rejectText, Function? onAccept, Function? onReject}) async {
String _accept = acceptText ?? L10().ok;
String _reject = rejectText ?? L10().cancel;
@ -18,7 +18,7 @@ Future<void> confirmationDialog(String title, String text, {String? acceptText,
return AlertDialog(
title: ListTile(
title: Text(title),
leading: FaIcon(FontAwesomeIcons.questionCircle),
leading: FaIcon(icon),
),
content: Text(text),
actions: [

View File

@ -157,6 +157,27 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
});
}
/// Delete the stock item from the database
Future<void> _deleteItem(BuildContext context) async {
confirmationDialog(
L10().stockItemDelete,
L10().stockItemDeleteConfirm,
icon: FontAwesomeIcons.trashAlt,
onAccept: () async {
final bool result = await item.delete();
if (result) {
Navigator.of(context).pop();
showSnackIcon(L10().stockItemDeleteSuccess, success: true);
} else {
showSnackIcon(L10().stockItemDeleteFailure, success: false);
}
},
);
}
/// Opens a popup dialog allowing user to select a label for printing
Future <void> _printLabel(BuildContext context) async {
@ -1003,6 +1024,19 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
);
}
// If the user has permission to delete this stock item
if (InvenTreeAPI().checkPermission("stock", "delete")) {
tiles.add(
ListTile(
title: Text("Delete Stock Item"),
leading: FaIcon(FontAwesomeIcons.trashAlt, color: COLOR_DANGER),
onTap: () {
_deleteItem(context);
},
)
);
}
return tiles;
}