On stock transfer - added merge stock option (already on web UI) (#875)

* added merge stock transfer option

* update release notes and version
This commit is contained in:
Neil Beukes
2026-09-07 21:15:16 +10:00
committed by GitHub
parent 5418a71207
commit 609d096613
7 changed files with 40 additions and 29 deletions
+2 -2
View File
@@ -126,7 +126,7 @@ class StockItemScanIntoLocationHandler extends BarcodeScanStockLocationHandler {
bool result = false;
if (confirm) {
Map<String, dynamic> fields = item.transferFields();
Map<String, dynamic> fields = await item.transferFields();
// Override location with scanned value
fields["location"]?["value"] = locationId;
@@ -243,7 +243,7 @@ class StockLocationScanInItemsHandler extends BarcodeScanStockItemHandler {
return false;
} else {
if (confirm) {
Map<String, dynamic> fields = item.transferFields();
Map<String, dynamic> fields = await item.transferFields();
// Override location with provided location value
fields["location"]?["value"] = location.pk;
+14 -1
View File
@@ -146,13 +146,26 @@ class InvenTreeStockItem extends InvenTreeModel {
}
// Return a set of fields to transfer this stock item via dialog
Map<String, dynamic> transferFields() {
Future<Map<String, dynamic>> transferFields() async {
// Read the server-side global default for merge-on-transfer
final bool mergeDefault = await InvenTreeAPI().getGlobalBooleanSetting(
"STOCK_MERGE_ON_TRANSFER",
);
Map<String, dynamic> fields = {
"pk": {"parent": "items", "nested": true, "hidden": true, "value": pk},
"quantity": {"parent": "items", "nested": true, "value": quantity},
"location": {"value": locationId},
"status": {"parent": "items", "nested": true, "value": status},
"packaging": {"parent": "items", "nested": true, "value": packaging},
"merge": {
"parent": "items",
"nested": true,
"type": "boolean",
"label": L10().mergeStockOnTransfer,
"help_text": L10().mergeStockOnTransferDetail,
"value": mergeDefault,
},
"notes": {},
};
+6
View File
@@ -1882,6 +1882,12 @@
"transferStockLocationDetail": "Transfer this stock location into another",
"@transferStockLocationDetail": {},
"mergeStockOnTransfer": "Merge stock on transfer",
"@mergeStockOnTransfer": {},
"mergeStockOnTransferDetail": "Merge transferred stock into existing stock at destination if possible",
"@mergeStockOnTransferDetail": {},
"translate": "Translate",
"@translate": {},
+1 -1
View File
@@ -459,7 +459,7 @@ class _StockItemDisplayState extends RefreshableState<StockDetailWidget> {
* Launches an API Form to transfer this stock item to a new location
*/
Future<void> _transferStockDialog(BuildContext context) async {
Map<String, dynamic> fields = widget.item.transferFields();
Map<String, dynamic> fields = await widget.item.transferFields();
launchApiForm(
context,