Merge pull request #35409 from nabinhait/workspace-cleanup
refactor: Workspace cleanup
diff --git a/erpnext/accounts/doctype/budget/budget.py b/erpnext/accounts/doctype/budget/budget.py
index 4c628a4..63e7bc6 100644
--- a/erpnext/accounts/doctype/budget/budget.py
+++ b/erpnext/accounts/doctype/budget/budget.py
@@ -125,14 +125,27 @@
if not args.account:
return
- for budget_against in ["project", "cost_center"] + get_accounting_dimensions():
+ default_dimensions = [
+ {
+ "fieldname": "project",
+ "document_type": "Project",
+ },
+ {
+ "fieldname": "cost_center",
+ "document_type": "Cost Center",
+ },
+ ]
+
+ for dimension in default_dimensions + get_accounting_dimensions(as_list=False):
+ budget_against = dimension.get("fieldname")
+
if (
args.get(budget_against)
and args.account
and frappe.db.get_value("Account", {"name": args.account, "root_type": "Expense"})
):
- doctype = frappe.unscrub(budget_against)
+ doctype = dimension.get("document_type")
if frappe.get_cached_value("DocType", doctype, "is_tree"):
lft, rgt = frappe.db.get_value(doctype, args.get(budget_against), ["lft", "rgt"])
diff --git a/erpnext/assets/doctype/asset/asset.js b/erpnext/assets/doctype/asset/asset.js
index b9f16a7..43920ad 100644
--- a/erpnext/assets/doctype/asset/asset.js
+++ b/erpnext/assets/doctype/asset/asset.js
@@ -41,6 +41,8 @@
},
setup: function(frm) {
+ frm.ignore_doctypes_on_cancel_all = ['Journal Entry'];
+
frm.make_methods = {
'Asset Movement': () => {
frappe.call({
diff --git a/erpnext/assets/doctype/asset_category/asset_category.py b/erpnext/assets/doctype/asset_category/asset_category.py
index a4d2c82..2e1def9 100644
--- a/erpnext/assets/doctype/asset_category/asset_category.py
+++ b/erpnext/assets/doctype/asset_category/asset_category.py
@@ -96,7 +96,6 @@
frappe.throw(msg, title=_("Missing Account"))
-@frappe.whitelist()
def get_asset_category_account(
fieldname, item=None, asset=None, account=None, asset_category=None, company=None
):
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index 20b332e..707db8a 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -2444,7 +2444,7 @@
Returns a Sales/Purchase Order Item child item containing the default values
"""
p_doc = frappe.get_doc(parent_doctype, parent_doctype_name)
- child_item = frappe.new_doc(child_doctype, p_doc, child_docname)
+ child_item = frappe.new_doc(child_doctype, parent_doc=p_doc, parentfield=child_docname)
item = frappe.get_doc("Item", trans_item.get("item_code"))
for field in ("item_code", "item_name", "description", "item_group"):
diff --git a/erpnext/controllers/buying_controller.py b/erpnext/controllers/buying_controller.py
index e15b612..f87f38e 100644
--- a/erpnext/controllers/buying_controller.py
+++ b/erpnext/controllers/buying_controller.py
@@ -180,6 +180,7 @@
address_dict = {
"supplier_address": "address_display",
"shipping_address": "shipping_address_display",
+ "billing_address": "billing_address_display",
}
for address_field, address_display_field in address_dict.items():
diff --git a/erpnext/manufacturing/doctype/job_card/job_card.py b/erpnext/manufacturing/doctype/job_card/job_card.py
index a7d0b29..fcaa3fd 100644
--- a/erpnext/manufacturing/doctype/job_card/job_card.py
+++ b/erpnext/manufacturing/doctype/job_card/job_card.py
@@ -653,23 +653,19 @@
exc=JobCardOverTransferError,
)
- job_card_items_transferred_qty = _get_job_card_items_transferred_qty(ste_doc)
+ job_card_items_transferred_qty = _get_job_card_items_transferred_qty(ste_doc) or {}
+ allow_excess = frappe.db.get_single_value("Manufacturing Settings", "job_card_excess_transfer")
- if job_card_items_transferred_qty:
- allow_excess = frappe.db.get_single_value("Manufacturing Settings", "job_card_excess_transfer")
+ for row in ste_doc.items:
+ if not row.job_card_item:
+ continue
- for row in ste_doc.items:
- if not row.job_card_item:
- continue
+ transferred_qty = flt(job_card_items_transferred_qty.get(row.job_card_item, 0.0))
- transferred_qty = flt(job_card_items_transferred_qty.get(row.job_card_item))
+ if not allow_excess:
+ _validate_over_transfer(row, transferred_qty)
- if not allow_excess:
- _validate_over_transfer(row, transferred_qty)
-
- frappe.db.set_value(
- "Job Card Item", row.job_card_item, "transferred_qty", flt(transferred_qty)
- )
+ frappe.db.set_value("Job Card Item", row.job_card_item, "transferred_qty", flt(transferred_qty))
def set_transferred_qty(self, update_status=False):
"Set total FG Qty in Job Card for which RM was transferred."
diff --git a/erpnext/manufacturing/doctype/job_card/test_job_card.py b/erpnext/manufacturing/doctype/job_card/test_job_card.py
index 61766a6..22177f4 100644
--- a/erpnext/manufacturing/doctype/job_card/test_job_card.py
+++ b/erpnext/manufacturing/doctype/job_card/test_job_card.py
@@ -342,6 +342,12 @@
job_card.reload()
self.assertEqual(job_card.transferred_qty, 2)
+ transfer_entry_2.cancel()
+ transfer_entry.cancel()
+
+ job_card.reload()
+ self.assertEqual(job_card.transferred_qty, 0.0)
+
def test_job_card_material_transfer_correctness(self):
"""
1. Test if only current Job Card Items are pulled in a Stock Entry against a Job Card
diff --git a/erpnext/patches/v13_0/copy_custom_field_filters_to_website_item.py b/erpnext/patches/v13_0/copy_custom_field_filters_to_website_item.py
index e8d0b59..4ad572f 100644
--- a/erpnext/patches/v13_0/copy_custom_field_filters_to_website_item.py
+++ b/erpnext/patches/v13_0/copy_custom_field_filters_to_website_item.py
@@ -15,7 +15,7 @@
web_item = frappe.db.get_value("Website Item", {"item_code": row.parent})
web_item_doc = frappe.get_doc("Website Item", web_item)
- child_doc = frappe.new_doc(docfield.options, web_item_doc, field)
+ child_doc = frappe.new_doc(docfield.options, parent_doc=web_item_doc, parentfield=field)
for field in ["name", "creation", "modified", "idx"]:
row[field] = None
diff --git a/erpnext/stock/report/stock_and_account_value_comparison/stock_and_account_value_comparison.js b/erpnext/stock/report/stock_and_account_value_comparison/stock_and_account_value_comparison.js
index 50a78a8..254f527 100644
--- a/erpnext/stock/report/stock_and_account_value_comparison/stock_and_account_value_comparison.js
+++ b/erpnext/stock/report/stock_and_account_value_comparison/stock_and_account_value_comparison.js
@@ -53,11 +53,14 @@
<p>Are you sure you want to create Reposting Entries?</p>
</div>
`;
+ let indexes = frappe.query_report.datatable.rowmanager.getCheckedRows();
+ let selected_rows = indexes.map(i => frappe.query_report.data[i]);
+
+ if (!selected_rows.length) {
+ frappe.throw(__("Please select rows to create Reposting Entries"));
+ }
frappe.confirm(__(message), () => {
- let indexes = frappe.query_report.datatable.rowmanager.getCheckedRows();
- let selected_rows = indexes.map(i => frappe.query_report.data[i]);
-
frappe.call({
method: "erpnext.stock.report.stock_and_account_value_comparison.stock_and_account_value_comparison.create_reposting_entries",
args: {