Merge branch 'develop' into fix-22-23-05690
diff --git a/erpnext/accounts/doctype/payment_request/payment_request.py b/erpnext/accounts/doctype/payment_request/payment_request.py
index 2f43914..7005c17 100644
--- a/erpnext/accounts/doctype/payment_request/payment_request.py
+++ b/erpnext/accounts/doctype/payment_request/payment_request.py
@@ -495,26 +495,22 @@
"""get amount based on doctype"""
dt = ref_doc.doctype
if dt in ["Sales Order", "Purchase Order"]:
- grand_total = flt(ref_doc.rounded_total) - flt(ref_doc.advance_paid)
-
+ grand_total = flt(ref_doc.rounded_total) or flt(ref_doc.grand_total)
elif dt in ["Sales Invoice", "Purchase Invoice"]:
if ref_doc.party_account_currency == ref_doc.currency:
grand_total = flt(ref_doc.outstanding_amount)
else:
grand_total = flt(ref_doc.outstanding_amount) / ref_doc.conversion_rate
-
elif dt == "POS Invoice":
for pay in ref_doc.payments:
if pay.type == "Phone" and pay.account == payment_account:
grand_total = pay.amount
break
-
elif dt == "Fees":
grand_total = ref_doc.outstanding_amount
if grand_total > 0:
return grand_total
-
else:
frappe.throw(_("Payment Entry is already created"))
diff --git a/erpnext/accounts/doctype/payment_request/test_payment_request.py b/erpnext/accounts/doctype/payment_request/test_payment_request.py
index 477c726..4279aa4 100644
--- a/erpnext/accounts/doctype/payment_request/test_payment_request.py
+++ b/erpnext/accounts/doctype/payment_request/test_payment_request.py
@@ -45,7 +45,10 @@
frappe.get_doc(method).insert(ignore_permissions=True)
def test_payment_request_linkings(self):
- so_inr = make_sales_order(currency="INR")
+ so_inr = make_sales_order(currency="INR", do_not_save=True)
+ so_inr.disable_rounded_total = 1
+ so_inr.save()
+
pr = make_payment_request(
dt="Sales Order",
dn=so_inr.name,
diff --git a/erpnext/controllers/selling_controller.py b/erpnext/controllers/selling_controller.py
index 8b4d28b..3ea0216 100644
--- a/erpnext/controllers/selling_controller.py
+++ b/erpnext/controllers/selling_controller.py
@@ -84,6 +84,9 @@
)
if not self.meta.get_field("sales_team"):
party_details.pop("sales_team")
+ else:
+ self.set("sales_team", party_details.get("sales_team"))
+
self.update_if_missing(party_details)
elif lead:
@@ -136,7 +139,7 @@
self.in_words = money_in_words(amount, self.currency)
def calculate_commission(self):
- if not self.meta.get_field("commission_rate"):
+ if not self.meta.get_field("commission_rate") or self.docstatus.is_submitted():
return
self.round_floats_in(self, ("amount_eligible_for_commission", "commission_rate"))
diff --git a/erpnext/selling/sales_common.js b/erpnext/selling/sales_common.js
index 5ce6e9c..f1df3a1 100644
--- a/erpnext/selling/sales_common.js
+++ b/erpnext/selling/sales_common.js
@@ -253,7 +253,7 @@
}
calculate_commission() {
- if(!this.frm.fields_dict.commission_rate) return;
+ if(!this.frm.fields_dict.commission_rate || this.frm.doc.docstatus === 1) return;
if(this.frm.doc.commission_rate > 100) {
this.frm.set_value("commission_rate", 100);