2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-08-21 03:15:56 +00:00

Allow purchase orders to be completed directly from the app (#686)

* Allow purchase orders to be completed directly from the app

* Code formatting
This commit is contained in:
Oliver
2025-08-19 11:37:37 +10:00
committed by GitHub
parent 7d32bd6d88
commit a0b8795b27
5 changed files with 44 additions and 1 deletions

View File

@@ -1,6 +1,7 @@
import "package:flutter/material.dart";
import "package:flutter_speed_dial/flutter_speed_dial.dart";
import "package:flutter_tabler_icons/flutter_tabler_icons.dart";
import "package:inventree/api_form.dart";
import "package:inventree/app_colors.dart";
import "package:inventree/barcode/barcode.dart";
@@ -122,6 +123,18 @@ class _PurchaseOrderDetailState
);
}
if (widget.order.isOpen && !widget.order.isPending) {
actions.add(
SpeedDialChild(
child: Icon(TablerIcons.circle_check, color: Colors.green),
label: L10().completeOrder,
onTap: () async {
_completeOrder(context);
},
),
);
}
if (widget.order.isOpen) {
actions.add(
SpeedDialChild(
@@ -182,6 +195,24 @@ class _PurchaseOrderDetailState
);
}
/// Complete this order
Future<void> _completeOrder(BuildContext context) async {
Map<String, Map<String, dynamic>> fields = {"accept_incomplete": {}};
String URL = "order/po/${widget.order.pk}/complete/";
launchApiForm(
context,
L10().completeOrder,
URL,
fields,
method: "POST",
onSuccess: (data) async {
refresh(context);
},
);
}
/// Cancel this order
Future<void> _cancelOrder(BuildContext context) async {
confirmationDialog(