fix: asset movement ux fixes (#19637)
diff --git a/erpnext/assets/doctype/asset/asset.js b/erpnext/assets/doctype/asset/asset.js
index f0889bf..6b3f2c7 100644
--- a/erpnext/assets/doctype/asset/asset.js
+++ b/erpnext/assets/doctype/asset/asset.js
@@ -42,6 +42,24 @@
},
setup: function(frm) {
+ frm.make_methods = {
+ 'Asset Movement': () => {
+ frappe.call({
+ method: "erpnext.assets.doctype.asset.asset.make_asset_movement",
+ freeze: true,
+ args:{
+ "assets": [{ name: cur_frm.doc.name }]
+ },
+ callback: function (r) {
+ if (r.message) {
+ var doc = frappe.model.sync(r.message)[0];
+ frappe.set_route("Form", doc.doctype, doc.name);
+ }
+ }
+ });
+ },
+ }
+
frm.set_query("purchase_receipt", (doc) => {
return {
query: "erpnext.controllers.queries.get_purchase_receipts",
@@ -487,92 +505,19 @@
})
};
-erpnext.asset.transfer_asset = function(frm) {
- var dialog = new frappe.ui.Dialog({
- title: __("Transfer Asset"),
- fields: [
- {
- "label": __("Target Location"),
- "fieldname": "target_location",
- "fieldtype": "Link",
- "options": "Location",
- "get_query": function () {
- return {
- filters: [
- ["Location", "is_group", "=", 0]
- ]
- }
- },
- "reqd": 1
- },
- {
- "label": __("Select Serial No"),
- "fieldname": "serial_nos",
- "fieldtype": "Link",
- "options": "Serial No",
- "get_query": function () {
- return {
- filters: {
- 'asset': frm.doc.name
- }
- }
- },
- "onchange": function() {
- let val = this.get_value();
- if (val) {
- let serial_nos = dialog.get_value("serial_no") || val;
- if (serial_nos) {
- serial_nos = serial_nos.split('\n');
- serial_nos.push(val);
-
- const unique_sn = serial_nos.filter(function(elem, index, self) {
- return index === self.indexOf(elem);
- });
-
- dialog.set_value("serial_no", unique_sn.join('\n'));
- dialog.set_value("serial_nos", "");
- }
- }
- }
- },
- {
- "label": __("Serial No"),
- "fieldname": "serial_no",
- "read_only": 1,
- "fieldtype": "Small Text"
- },
- {
- "label": __("Date"),
- "fieldname": "transfer_date",
- "fieldtype": "Datetime",
- "reqd": 1,
- "default": frappe.datetime.now_datetime()
+erpnext.asset.transfer_asset = function() {
+ frappe.call({
+ method: "erpnext.assets.doctype.asset.asset.make_asset_movement",
+ freeze: true,
+ args:{
+ "assets": [{ name: cur_frm.doc.name }],
+ "purpose": "Transfer"
+ },
+ callback: function (r) {
+ if (r.message) {
+ var doc = frappe.model.sync(r.message)[0];
+ frappe.set_route("Form", doc.doctype, doc.name);
}
- ]
+ }
});
-
- dialog.set_primary_action(__("Transfer"), function() {
- var args = dialog.get_values();
- if(!args) return;
- dialog.hide();
- return frappe.call({
- type: "GET",
- method: "erpnext.assets.doctype.asset.asset.transfer_asset",
- args: {
- args: {
- "asset": frm.doc.name,
- "transaction_date": args.transfer_date,
- "source_location": frm.doc.location,
- "target_location": args.target_location,
- "serial_no": args.serial_no,
- "company": frm.doc.company
- }
- },
- freeze: true,
- callback: function(r) {
- cur_frm.reload_doc();
- }
- })
- });
- dialog.show();
};
diff --git a/erpnext/assets/doctype/asset/asset.py b/erpnext/assets/doctype/asset/asset.py
index d4185ea..546f374 100644
--- a/erpnext/assets/doctype/asset/asset.py
+++ b/erpnext/assets/doctype/asset/asset.py
@@ -647,7 +647,7 @@
return je
@frappe.whitelist()
-def make_asset_movement(assets):
+def make_asset_movement(assets, purpose=None):
import json
from six import string_types
@@ -658,7 +658,7 @@
frappe.throw(_('Atleast one asset has to be selected.'))
asset_movement = frappe.new_doc("Asset Movement")
- asset_movement.quantity = len(assets)
+ asset_movement.purpose = purpose
prev_reference_docname = ''
for asset in assets:
diff --git a/erpnext/assets/doctype/asset/asset_list.js b/erpnext/assets/doctype/asset/asset_list.js
index 46cde6e..02f39e0 100644
--- a/erpnext/assets/doctype/asset/asset_list.js
+++ b/erpnext/assets/doctype/asset/asset_list.js
@@ -37,6 +37,7 @@
const assets = me.get_checked_items();
frappe.call({
method: "erpnext.assets.doctype.asset.asset.make_asset_movement",
+ freeze: true,
args:{
"assets": assets
},
diff --git a/erpnext/assets/doctype/asset_movement/asset_movement.js b/erpnext/assets/doctype/asset_movement/asset_movement.js
index a71212e..89977e2 100644
--- a/erpnext/assets/doctype/asset_movement/asset_movement.js
+++ b/erpnext/assets/doctype/asset_movement/asset_movement.js
@@ -132,7 +132,7 @@
if(asset_doc.location) frappe.model.set_value(cdt, cdn, 'source_location', asset_doc.location);
if(asset_doc.custodian) frappe.model.set_value(cdt, cdn, 'from_employee', asset_doc.custodian);
}).catch((err) => {
- console.log(err);
+ console.log(err); // eslint-disable-line
});
}
}
diff --git a/erpnext/assets/doctype/asset_movement/asset_movement.json b/erpnext/assets/doctype/asset_movement/asset_movement.json
index 19af81d..e62d684 100644
--- a/erpnext/assets/doctype/asset_movement/asset_movement.json
+++ b/erpnext/assets/doctype/asset_movement/asset_movement.json
@@ -54,7 +54,7 @@
{
"fieldname": "reference_doctype",
"fieldtype": "Link",
- "label": "Reference DocType",
+ "label": "Reference Document",
"no_copy": 1,
"options": "DocType",
"reqd": 1
@@ -62,7 +62,7 @@
{
"fieldname": "reference_name",
"fieldtype": "Dynamic Link",
- "label": "Reference Name",
+ "label": "Reference Document Name",
"no_copy": 1,
"options": "reference_doctype",
"reqd": 1
@@ -93,7 +93,7 @@
}
],
"is_submittable": 1,
- "modified": "2019-11-13 15:37:48.870147",
+ "modified": "2019-11-21 14:35:51.880332",
"modified_by": "Administrator",
"module": "Assets",
"name": "Asset Movement",