mirror of
https://github.com/inventree/inventree-app.git
synced 2026-09-09 03:10:14 +00:00
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:
@@ -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;
|
||||
|
||||
@@ -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": {},
|
||||
};
|
||||
|
||||
|
||||
@@ -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": {},
|
||||
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user