mirror of
https://github.com/inventree/inventree-app.git
synced 2025-04-28 05:26:47 +00:00
Add notes field to stock actions
This commit is contained in:
parent
b10931f3b6
commit
5a9dead4e6
@ -277,7 +277,7 @@ class InvenTreeAPI {
|
||||
var _url = makeApiUrl(url);
|
||||
var _headers = jsonHeaders();
|
||||
|
||||
print("POST: " + _url);
|
||||
print("POST: ${_url} -> ${body.toString()}");
|
||||
|
||||
var data = jsonEncode(body);
|
||||
|
||||
|
@ -85,8 +85,6 @@ class InvenTreeModel {
|
||||
*/
|
||||
Future<bool> reload() async {
|
||||
|
||||
print("Reloading data from $url");
|
||||
|
||||
var response = await api.get(url, params: defaultGetFilters());
|
||||
|
||||
if (response.statusCode != 200) {
|
||||
|
@ -157,7 +157,7 @@ class InvenTreeStockItem extends InvenTreeModel {
|
||||
return item;
|
||||
}
|
||||
|
||||
Future<http.Response> countStock(double quan) async {
|
||||
Future<http.Response> countStock(double quan, {String notes}) async {
|
||||
|
||||
// Cannot 'count' a serialized StockItem
|
||||
if (isSerialized()) {
|
||||
@ -172,12 +172,13 @@ class InvenTreeStockItem extends InvenTreeModel {
|
||||
return api.post("/stock/count/", body: {
|
||||
"item": {
|
||||
"pk": "${pk}",
|
||||
"quantity": "${quan}"
|
||||
}
|
||||
"quantity": "${quan}",
|
||||
},
|
||||
"notes": notes ?? '',
|
||||
});
|
||||
}
|
||||
|
||||
Future<http.Response> addStock(double quan) async {
|
||||
Future<http.Response> addStock(double quan, {String notes}) async {
|
||||
|
||||
if (isSerialized() || quan <= 0) return null;
|
||||
|
||||
@ -185,11 +186,12 @@ class InvenTreeStockItem extends InvenTreeModel {
|
||||
"item": {
|
||||
"pk": "${pk}",
|
||||
"quantity": "${quan}",
|
||||
}
|
||||
},
|
||||
"notes": notes ?? '',
|
||||
});
|
||||
}
|
||||
|
||||
Future<http.Response> removeStock(double quan) async {
|
||||
Future<http.Response> removeStock(double quan, {String notes}) async {
|
||||
|
||||
if (isSerialized() || quan <= 0) return null;
|
||||
|
||||
@ -197,7 +199,8 @@ class InvenTreeStockItem extends InvenTreeModel {
|
||||
"item": {
|
||||
"pk": "${pk}",
|
||||
"quantity": "${quan}",
|
||||
}
|
||||
},
|
||||
"notes": notes ?? '',
|
||||
});
|
||||
}
|
||||
|
||||
|
@ -27,6 +27,9 @@ class StockDetailWidget extends StatefulWidget {
|
||||
|
||||
class _StockItemDisplayState extends State<StockDetailWidget> {
|
||||
|
||||
// Single TextEditingController which can be shared between dialogs
|
||||
final TextEditingController _notesController = TextEditingController();
|
||||
|
||||
final _addStockKey = GlobalKey<FormState>();
|
||||
final _removeStockKey = GlobalKey<FormState>();
|
||||
final _countStockKey = GlobalKey<FormState>();
|
||||
@ -47,7 +50,8 @@ class _StockItemDisplayState extends State<StockDetailWidget> {
|
||||
Navigator.of(context).pop();
|
||||
|
||||
// Await response to prevent the button from being pressed multiple times
|
||||
var response = await item.addStock(quantity);
|
||||
var response = await item.addStock(quantity, notes: _notesController.text);
|
||||
_notesController.clear();
|
||||
|
||||
// TODO - Handle error cases
|
||||
|
||||
@ -95,6 +99,12 @@ class _StockItemDisplayState extends State<StockDetailWidget> {
|
||||
return null;
|
||||
},
|
||||
),
|
||||
TextFormField(
|
||||
decoration: InputDecoration(
|
||||
labelText: "Notes",
|
||||
),
|
||||
controller: _notesController,
|
||||
)
|
||||
],
|
||||
)
|
||||
),
|
||||
@ -107,7 +117,8 @@ class _StockItemDisplayState extends State<StockDetailWidget> {
|
||||
void _removeStock(double quantity) async {
|
||||
Navigator.of(context).pop();
|
||||
|
||||
var response = await item.removeStock(quantity);
|
||||
var response = await item.removeStock(quantity, notes: _notesController.text);
|
||||
_notesController.clear();
|
||||
|
||||
// TODO - Handle error cases
|
||||
|
||||
@ -156,7 +167,13 @@ class _StockItemDisplayState extends State<StockDetailWidget> {
|
||||
|
||||
return null;
|
||||
},
|
||||
)
|
||||
),
|
||||
TextFormField(
|
||||
decoration: InputDecoration(
|
||||
labelText: "Notes",
|
||||
),
|
||||
controller: _notesController,
|
||||
),
|
||||
],
|
||||
)
|
||||
),
|
||||
@ -169,7 +186,8 @@ class _StockItemDisplayState extends State<StockDetailWidget> {
|
||||
|
||||
Navigator.of(context).pop();
|
||||
|
||||
var response = await item.countStock(quantity);
|
||||
var response = await item.countStock(quantity, notes: _notesController.text);
|
||||
_notesController.clear();
|
||||
|
||||
// TODO - Handle error cases
|
||||
|
||||
@ -217,6 +235,12 @@ class _StockItemDisplayState extends State<StockDetailWidget> {
|
||||
|
||||
return null;
|
||||
},
|
||||
),
|
||||
TextFormField(
|
||||
decoration: InputDecoration(
|
||||
labelText: "Notes",
|
||||
),
|
||||
controller: _notesController,
|
||||
)
|
||||
],
|
||||
)
|
||||
|
Loading…
x
Reference in New Issue
Block a user