Fixed merge conflict
diff --git a/erpnext/__init__.py b/erpnext/__init__.py
index f07e9f2..d78f9f7 100644
--- a/erpnext/__init__.py
+++ b/erpnext/__init__.py
@@ -5,7 +5,7 @@
from erpnext.hooks import regional_overrides
from frappe.utils import getdate
-__version__ = '9.2.23'
+__version__ = '9.2.24'
def get_default_company(user=None):
'''Get default company for user'''
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.js b/erpnext/accounts/doctype/payment_entry/payment_entry.js
index 9c75257..496f412 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.js
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.js
@@ -409,7 +409,7 @@
}
// Make read only if Accounts Settings doesn't allow stale rates
- frm.set_df_property("source_exchange_rate", "read_only", erpnext.stale_rate_allowed());
+ frm.set_df_property("source_exchange_rate", "read_only", erpnext.stale_rate_allowed() ? 0 : 1);
},
target_exchange_rate: function(frm) {
@@ -430,7 +430,7 @@
frm.set_paid_amount_based_on_received_amount = false;
// Make read only if Accounts Settings doesn't allow stale rates
- frm.set_df_property("target_exchange_rate", "read_only", erpnext.stale_rate_allowed());
+ frm.set_df_property("target_exchange_rate", "read_only", erpnext.stale_rate_allowed() ? 0 : 1);
},
paid_amount: function(frm) {
diff --git a/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.js b/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.js
index a01cc0f..a0e56de 100644
--- a/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.js
+++ b/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.js
@@ -7,12 +7,14 @@
"label": __("From Date"),
"fieldtype": "Date",
"default": frappe.datetime.get_today(),
+ "reqd": 1,
"width": "80"
},
{
"fieldname":"to_date",
"label": __("To Date"),
"fieldtype": "Date",
+ "reqd": 1,
"default": frappe.datetime.get_today()
},
{
diff --git a/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py b/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py
index b46f1be..3fcc1d3 100644
--- a/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py
+++ b/erpnext/accounts/report/sales_payment_summary/sales_payment_summary.py
@@ -37,11 +37,11 @@
def get_conditions(filters):
conditions = ""
- if filters.get("company"): conditions += " a.company=%(company)s"
+ if filters.get("from_date"): conditions += "a.posting_date >= %(from_date)s"
+ if filters.get("to_date"): conditions += " and a.posting_date <= %(to_date)s"
+ if filters.get("company"): conditions += " and a.company=%(company)s"
if filters.get("customer"): conditions += " and a.customer = %(customer)s"
if filters.get("owner"): conditions += " and a.owner = %(owner)s"
- if filters.get("from_date"): conditions += " and a.posting_date >= %(from_date)s"
- if filters.get("to_date"): conditions += " and a.posting_date <= %(to_date)s"
if filters.get("is_pos"): conditions += " and a.is_pos = %(is_pos)s"
return conditions
diff --git a/erpnext/manufacturing/doctype/bom/bom.py b/erpnext/manufacturing/doctype/bom/bom.py
index 41670e0..1e723b1 100644
--- a/erpnext/manufacturing/doctype/bom/bom.py
+++ b/erpnext/manufacturing/doctype/bom/bom.py
@@ -522,6 +522,7 @@
# Did not use qty_consumed_per_unit in the query, as it leads to rounding loss
query = """select
bom_item.item_code,
+ bom_item.idx,
item.item_name,
sum(bom_item.stock_qty/ifnull(bom.quantity, 1)) * %(qty)s as qty,
item.description,
diff --git a/erpnext/public/js/utils/party.js b/erpnext/public/js/utils/party.js
index 5e1bd8b..75d5ce9 100644
--- a/erpnext/public/js/utils/party.js
+++ b/erpnext/public/js/utils/party.js
@@ -171,7 +171,10 @@
erpnext.utils.get_shipping_address = function(frm, callback){
frappe.call({
method: "frappe.contacts.doctype.address.address.get_shipping_address",
- args: {company: frm.doc.company},
+ args: {
+ company: frm.doc.company,
+ address: frm.doc.shipping_address
+ },
callback: function(r){
if(r.message){
frm.set_value("shipping_address", r.message[0]) //Address title or name
diff --git a/erpnext/selling/page/point_of_sale/point_of_sale.js b/erpnext/selling/page/point_of_sale/point_of_sale.js
index a058fdf..386e18d 100644
--- a/erpnext/selling/page/point_of_sale/point_of_sale.js
+++ b/erpnext/selling/page/point_of_sale/point_of_sale.js
@@ -1081,7 +1081,7 @@
}
curr_row += all_items[i];
- if(i == all_items.length - 1 && all_items.length % 4 !== 0) {
+ if(i == all_items.length - 1) {
row_items.push(curr_row);
}
}
diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.py b/erpnext/stock/doctype/stock_entry/stock_entry.py
index 8eb2bd2..6a6c667 100644
--- a/erpnext/stock/doctype/stock_entry/stock_entry.py
+++ b/erpnext/stock/doctype/stock_entry/stock_entry.py
@@ -50,6 +50,9 @@
self.validate_with_material_request()
self.validate_batch()
+ if not self.from_bom:
+ self.fg_completed_qty = 0.0
+
if self._action == 'submit':
self.make_batches('t_warehouse')
else:
@@ -372,6 +375,7 @@
if self.purpose == "Subcontract" and self.purchase_order:
purchase_order = frappe.get_doc("Purchase Order", self.purchase_order)
for se_item in self.items:
+ precision = cint(frappe.db.get_default("float_precision")) or 3
total_allowed = sum([flt(d.required_qty) for d in purchase_order.supplied_items \
if d.rm_item_code == se_item.item_code])
if not total_allowed:
@@ -385,7 +389,7 @@
and `tabStock Entry Detail`.parent = `tabStock Entry`.name""",
(self.purchase_order, se_item.item_code))[0][0]
- if total_supplied > total_allowed:
+ if flt(total_supplied, precision) > flt(total_allowed, precision):
frappe.throw(_("Row {0}# Item {1} cannot be transferred more than {2} against Purchase Order {3}")
.format(se_item.idx, se_item.item_code, total_allowed, self.purchase_order))
@@ -793,6 +797,9 @@
se_child.expense_account = item_dict[d].get("expense_account") or expense_account
se_child.cost_center = item_dict[d].get("cost_center") or cost_center
+ if item_dict[d].get("idx"):
+ se_child.idx = item_dict[d].get("idx")
+
if se_child.s_warehouse==None:
se_child.s_warehouse = self.from_warehouse
if se_child.t_warehouse==None: