Merge pull request #23831 from rohitwaghchaure/incorrect-assign-to-in-asset-maintenance-develop
fix: incorrect assign to in Maintenance Schedule
diff --git a/erpnext/assets/doctype/asset_finance_book/asset_finance_book.json b/erpnext/assets/doctype/asset_finance_book/asset_finance_book.json
index d422876..d9b7b69 100644
--- a/erpnext/assets/doctype/asset_finance_book/asset_finance_book.json
+++ b/erpnext/assets/doctype/asset_finance_book/asset_finance_book.json
@@ -50,13 +50,11 @@
"reqd": 1
},
{
- "depends_on": "eval:parent.doctype == 'Asset'",
"fieldname": "depreciation_start_date",
"fieldtype": "Date",
"in_list_view": 1,
"label": "Depreciation Posting Date",
- "mandatory_depends_on": "eval:parent.doctype == 'Asset'",
- "reqd": 1
+ "mandatory_depends_on": "eval:parent.doctype == 'Asset'"
},
{
"default": "0",
@@ -87,7 +85,7 @@
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
- "modified": "2020-10-30 15:22:29.119868",
+ "modified": "2020-11-05 16:30:09.213479",
"modified_by": "Administrator",
"module": "Assets",
"name": "Asset Finance Book",
diff --git a/erpnext/patches.txt b/erpnext/patches.txt
index 678c7e1..34dbdd0 100644
--- a/erpnext/patches.txt
+++ b/erpnext/patches.txt
@@ -632,7 +632,7 @@
execute:frappe.reload_doc('desk', 'doctype', 'dashboard_chart')
execute:frappe.reload_doc('desk', 'doctype', 'dashboard_chart_field')
erpnext.patches.v12_0.remove_bank_remittance_custom_fields
-erpnext.patches.v12_0.generate_leave_ledger_entries #27-08-2020
+erpnext.patches.v12_0.generate_leave_ledger_entries #04-11-2020
execute:frappe.delete_doc_if_exists("Report", "Loan Repayment")
erpnext.patches.v12_0.move_credit_limit_to_customer_credit_limit
erpnext.patches.v12_0.add_variant_of_in_item_attribute_table
diff --git a/erpnext/patches/v12_0/generate_leave_ledger_entries.py b/erpnext/patches/v12_0/generate_leave_ledger_entries.py
index 342c129..7afde37 100644
--- a/erpnext/patches/v12_0/generate_leave_ledger_entries.py
+++ b/erpnext/patches/v12_0/generate_leave_ledger_entries.py
@@ -11,8 +11,6 @@
frappe.reload_doc("HR", "doctype", "Leave Ledger Entry")
frappe.reload_doc("HR", "doctype", "Leave Encashment")
frappe.reload_doc("HR", "doctype", "Leave Type")
- if frappe.db.a_row_exists("Leave Ledger Entry"):
- return
if not frappe.get_meta("Leave Allocation").has_field("unused_leaves"):
frappe.reload_doc("HR", "doctype", "Leave Allocation")
diff --git a/erpnext/public/js/utils.js b/erpnext/public/js/utils.js
index ea2093e..891bbe5 100755
--- a/erpnext/public/js/utils.js
+++ b/erpnext/public/js/utils.js
@@ -539,7 +539,7 @@
fieldtype: "Table",
label: "Items",
cannot_add_rows: cannot_add_row,
- in_place_edit: true,
+ in_place_edit: false,
reqd: 1,
data: this.data,
get_data: () => {
diff --git a/erpnext/selling/doctype/sales_order/sales_order.js b/erpnext/selling/doctype/sales_order/sales_order.js
index 989bd33..f162291 100644
--- a/erpnext/selling/doctype/sales_order/sales_order.js
+++ b/erpnext/selling/doctype/sales_order/sales_order.js
@@ -573,12 +573,6 @@
"default": 0
},
{
- "fieldtype": "Section Break",
- "label": "",
- "fieldname": "sec_break_dialog",
- "hide_border": 1
- },
- {
fieldname: 'items_for_po', fieldtype: 'Table', label: 'Select Items',
fields: [
{
@@ -616,16 +610,13 @@
read_only:1,
in_list_view:1
},
- ],
- data: me.frm.doc.items.map((item) =>{
- item.pending_qty = (flt(item.stock_qty) - flt(item.ordered_qty)) / flt(item.conversion_factor);
- return item;
- }).filter((item) => {return item.pending_qty > 0;})
+ ]
}
],
primary_action_label: 'Create Purchase Order',
primary_action (args) {
if (!args) return;
+
let selected_items = dialog.fields_dict.items_for_po.grid.get_selected_children();
if(selected_items.length == 0) {
frappe.throw({message: 'Please select Items from the Table', title: __('Items Required'), indicator:'blue'})
@@ -635,8 +626,9 @@
var method = args.against_default_supplier ? "make_purchase_order_for_default_supplier" : "make_purchase_order"
return frappe.call({
- type: "GET",
method: "erpnext.selling.doctype.sales_order.sales_order." + method,
+ freeze: true,
+ freeze_message: __("Creating Purchase Order ..."),
args: {
"source_name": me.frm.doc.name,
"selected_items": selected_items
@@ -660,8 +652,9 @@
}
});
- dialog.fields_dict["against_default_supplier"].df.onchange = () => {
- console.log("yo");
+ dialog.fields_dict["against_default_supplier"].df.onchange = () => set_po_items_data(dialog);
+
+ function set_po_items_data (dialog) {
var against_default_supplier = dialog.get_value("against_default_supplier");
var items_for_po = dialog.get_value("items_for_po");
@@ -671,16 +664,28 @@
dialog.fields_dict["items_for_po"].df.data = items_with_supplier;
dialog.get_field("items_for_po").refresh();
} else {
- let pending_items = me.frm.doc.items.map((item) =>{
- item.pending_qty = (flt(item.stock_qty) - flt(item.ordered_qty)) / flt(item.conversion_factor);
- return item;
- }).filter((item) => {return item.pending_qty > 0;});
+ let po_items = [];
+ me.frm.doc.items.forEach(d => {
+ let pending_qty = (flt(d.stock_qty) - flt(d.ordered_qty)) / flt(d.conversion_factor);
+ if (pending_qty > 0) {
+ po_items.push({
+ "doctype": "Sales Order Item",
+ "name": d.name,
+ "item_name": d.item_name,
+ "item_code": d.item_code,
+ "pending_qty": pending_qty,
+ "uom": d.uom,
+ "supplier": d.supplier
+ });
+ }
+ });
- dialog.fields_dict["items_for_po"].df.data = pending_items;
+ dialog.fields_dict["items_for_po"].df.data = po_items;
dialog.get_field("items_for_po").refresh();
}
}
+ set_po_items_data(dialog);
dialog.get_field("items_for_po").grid.only_sortable();
dialog.get_field("items_for_po").refresh();
dialog.wrapper.find('.grid-heading-row .grid-row-check').click();
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index ae227e0..ec1c823 100755
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -779,7 +779,9 @@
return data
@frappe.whitelist()
-def make_purchase_order_for_default_supplier(source_name, selected_items=[], target_doc=None):
+def make_purchase_order_for_default_supplier(source_name, selected_items=None, target_doc=None):
+ if not selected_items: return
+
if isinstance(selected_items, string_types):
selected_items = json.loads(selected_items)
@@ -878,7 +880,9 @@
frappe.msgprint(_("Purchase Order already created for all Sales Order items"))
@frappe.whitelist()
-def make_purchase_order(source_name, selected_items=[], target_doc=None):
+def make_purchase_order(source_name, selected_items=None, target_doc=None):
+ if not selected_items: return
+
if isinstance(selected_items, string_types):
selected_items = json.loads(selected_items)