Merge pull request #38127 from s-aga-r/FIX-37162
feat: add `Supplier Delivery Note` field in SCR
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py
index 448224b..ef304bc 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py
@@ -1022,6 +1022,7 @@
self.add_bank_gl_entries(gl_entries)
self.add_deductions_gl_entries(gl_entries)
self.add_tax_gl_entries(gl_entries)
+ add_regional_gl_entries(gl_entries, self)
return gl_entries
def make_gl_entries(self, cancel=0, adv_adj=0):
@@ -2621,3 +2622,8 @@
)
return doclist
+
+
+@erpnext.allow_regional
+def add_regional_gl_entries(gl_entries, doc):
+ return
diff --git a/erpnext/accounts/report/accounts_payable/accounts_payable.js b/erpnext/accounts/report/accounts_payable/accounts_payable.js
index 10362db..b608ebc 100644
--- a/erpnext/accounts/report/accounts_payable/accounts_payable.js
+++ b/erpnext/accounts/report/accounts_payable/accounts_payable.js
@@ -150,6 +150,11 @@
"fieldtype": "Check",
},
{
+ "fieldname": "for_revaluation_journals",
+ "label": __("Revaluation Journals"),
+ "fieldtype": "Check",
+ },
+ {
"fieldname": "ignore_accounts",
"label": __("Group by Voucher"),
"fieldtype": "Check",
diff --git a/erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py b/erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py
index 06c9e44..f6c7bd3 100644
--- a/erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py
+++ b/erpnext/accounts/report/tax_withholding_details/tax_withholding_details.py
@@ -184,6 +184,16 @@
"width": 180,
}
)
+ else:
+ columns.append(
+ {
+ "label": _(filters.get("party_type")),
+ "fieldname": "party",
+ "fieldtype": "Dynamic Link",
+ "options": "party_type",
+ "width": 180,
+ }
+ )
columns.extend(
[
diff --git a/erpnext/manufacturing/doctype/bom_creator/bom_creator.js b/erpnext/manufacturing/doctype/bom_creator/bom_creator.js
index 0cf2b51..243e52d 100644
--- a/erpnext/manufacturing/doctype/bom_creator/bom_creator.js
+++ b/erpnext/manufacturing/doctype/bom_creator/bom_creator.js
@@ -15,7 +15,7 @@
|| frappe.bom_configurator.bom_configurator !== frm.doc.name)) {
frm.trigger("build_tree");
}
- } else {
+ } else if (!frm.doc.items?.length ) {
let $parent = $(frm.fields_dict["bom_creator"].wrapper);
$parent.empty();
frm.trigger("make_new_entry");
diff --git a/erpnext/manufacturing/doctype/bom_creator/bom_creator.py b/erpnext/manufacturing/doctype/bom_creator/bom_creator.py
index 058caa3..49041a0 100644
--- a/erpnext/manufacturing/doctype/bom_creator/bom_creator.py
+++ b/erpnext/manufacturing/doctype/bom_creator/bom_creator.py
@@ -6,7 +6,7 @@
import frappe
from frappe import _
from frappe.model.document import Document
-from frappe.utils import flt
+from frappe.utils import cint, flt
from erpnext.manufacturing.doctype.bom.bom import get_bom_item_rate
@@ -91,11 +91,19 @@
parent_reference = {row.idx: row.name for row in self.items}
for row in self.items:
- if row.fg_reference_id:
+ ref_id = ""
+
+ if row.parent_row_no:
+ ref_id = parent_reference.get(cint(row.parent_row_no))
+
+ # Check whether the reference id of the FG Item has correct or not
+ if row.fg_reference_id and row.fg_reference_id == ref_id:
continue
if row.parent_row_no:
- row.fg_reference_id = parent_reference.get(row.parent_row_no)
+ row.fg_reference_id = ref_id
+ elif row.fg_item == self.item_code:
+ row.fg_reference_id = self.name
@frappe.whitelist()
def add_boms(self):
diff --git a/erpnext/manufacturing/doctype/bom_creator_item/bom_creator_item.json b/erpnext/manufacturing/doctype/bom_creator_item/bom_creator_item.json
index fdb5d3a..56acd8a 100644
--- a/erpnext/manufacturing/doctype/bom_creator_item/bom_creator_item.json
+++ b/erpnext/manufacturing/doctype/bom_creator_item/bom_creator_item.json
@@ -215,7 +215,6 @@
"fieldname": "parent_row_no",
"fieldtype": "Data",
"label": "Parent Row No",
- "no_copy": 1,
"print_hide": 1
},
{
@@ -231,7 +230,7 @@
"index_web_pages_for_search": 1,
"istable": 1,
"links": [],
- "modified": "2023-08-07 11:52:30.492233",
+ "modified": "2023-11-16 13:34:06.321061",
"modified_by": "Administrator",
"module": "Manufacturing",
"name": "BOM Creator Item",
diff --git a/erpnext/projects/doctype/timesheet/timesheet.py b/erpnext/projects/doctype/timesheet/timesheet.py
index 11156f4..8e464b5 100644
--- a/erpnext/projects/doctype/timesheet/timesheet.py
+++ b/erpnext/projects/doctype/timesheet/timesheet.py
@@ -69,7 +69,7 @@
def update_billing_hours(self, args):
if args.is_billable:
- if flt(args.billing_hours) == 0.0:
+ if flt(args.billing_hours) == 0.0 or flt(args.billing_hours) > flt(args.hours):
args.billing_hours = args.hours
else:
args.billing_hours = 0
diff --git a/erpnext/selling/doctype/sales_order/sales_order.py b/erpnext/selling/doctype/sales_order/sales_order.py
index e4f1a28..a97198a 100755
--- a/erpnext/selling/doctype/sales_order/sales_order.py
+++ b/erpnext/selling/doctype/sales_order/sales_order.py
@@ -767,8 +767,11 @@
if target.company_address:
target.update(get_fetch_values("Delivery Note", "company_address", target.company_address))
- # set target items names to ensure proper linking with packed_items
- target.set_new_name()
+ # if invoked in bulk creation, validations are ignored and thus this method is nerver invoked
+ if frappe.flags.bulk_transaction:
+ # set target items names to ensure proper linking with packed_items
+ target.set_new_name()
+
make_packing_list(target)
def condition(doc):
diff --git a/erpnext/utilities/bulk_transaction.py b/erpnext/utilities/bulk_transaction.py
index 402c305..57c2f9d 100644
--- a/erpnext/utilities/bulk_transaction.py
+++ b/erpnext/utilities/bulk_transaction.py
@@ -141,6 +141,7 @@
},
"Purchase Receipt": {"Purchase Invoice": purchase_receipt.make_purchase_invoice},
}
+ frappe.flags.bulk_transaction = True
if to_doctype in ["Payment Entry"]:
obj = mapper[from_doctype][to_doctype](from_doctype, doc_name)
else:
@@ -149,6 +150,7 @@
obj.flags.ignore_validate = True
obj.set_title_field()
obj.insert(ignore_mandatory=True)
+ del frappe.flags.bulk_transaction
def create_log(doc_name, e, from_doctype, to_doctype, status, log_date=None, restarted=0):