Merge branch 'hotfix'
diff --git a/erpnext/__init__.py b/erpnext/__init__.py
index b54ba59..97ab934 100644
--- a/erpnext/__init__.py
+++ b/erpnext/__init__.py
@@ -2,7 +2,7 @@
from __future__ import unicode_literals
import frappe
-__version__ = '7.1.22'
+__version__ = '7.1.23'
def get_default_company(user=None):
'''Get default company for user'''
diff --git a/erpnext/accounts/doctype/payment_entry/payment_entry.py b/erpnext/accounts/doctype/payment_entry/payment_entry.py
index d4f8edb..936b329 100644
--- a/erpnext/accounts/doctype/payment_entry/payment_entry.py
+++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py
@@ -639,7 +639,7 @@
if party_amount:
grand_total = outstanding_amount = party_amount
elif dt in ("Sales Invoice", "Purchase Invoice"):
- grand_total = doc.grand_total
+ grand_total = doc.base_grand_total if party_account_currency == doc.company_currency else doc.grand_total
outstanding_amount = doc.outstanding_amount
else:
total_field = "base_grand_total" if party_account_currency == doc.company_currency else "grand_total"
diff --git a/erpnext/accounts/report/financial_statements.py b/erpnext/accounts/report/financial_statements.py
index e66d20e..bc4a220 100644
--- a/erpnext/accounts/report/financial_statements.py
+++ b/erpnext/accounts/report/financial_statements.py
@@ -42,9 +42,6 @@
if to_date == get_first_day(to_date):
# if to_date is the first day, get the last day of previous month
to_date = add_days(to_date, -1)
- else:
- # to_date should be the last day of the new to_date's month
- to_date = get_last_day(to_date)
if to_date <= year_end_date:
# the normal case
diff --git a/erpnext/accounts/report/purchase_register/purchase_register.py b/erpnext/accounts/report/purchase_register/purchase_register.py
index 4bba066..47f79f1 100644
--- a/erpnext/accounts/report/purchase_register/purchase_register.py
+++ b/erpnext/accounts/report/purchase_register/purchase_register.py
@@ -185,7 +185,7 @@
pr_list = [d.purchase_receipt]
elif d.po_detail:
pr_list = frappe.db.sql_list("""select distinct parent from `tabPurchase Receipt Item`
- where docstatus=1 and prevdoc_detail_docname=%s""", d.po_detail)
+ where docstatus=1 and purchase_order_item=%s""", d.po_detail)
if pr_list:
invoice_po_pr_map.setdefault(d.parent, frappe._dict()).setdefault("purchase_receipt", pr_list)
diff --git a/erpnext/buying/doctype/quality_inspection/quality_inspection.py b/erpnext/buying/doctype/quality_inspection/quality_inspection.py
index d1d9518..8d85715 100644
--- a/erpnext/buying/doctype/quality_inspection/quality_inspection.py
+++ b/erpnext/buying/doctype/quality_inspection/quality_inspection.py
@@ -28,15 +28,12 @@
frappe.db.sql("""update `tabPurchase Receipt Item` t1, `tabPurchase Receipt` t2
set t1.qa_no = %s, t2.modified = %s
where t1.parent = %s and t1.item_code = %s and t1.parent = t2.name""",
- (self.name, self.modified, self.purchase_receipt_no,
- self.item_code))
+ (self.name, self.modified, self.purchase_receipt_no, self.item_code))
def on_cancel(self):
if self.purchase_receipt_no:
- frappe.db.sql("""update `tabPurchase Receipt Item` t1, `tabPurchase Receipt` t2
- set t1.qa_no = '', t2.modified = %s
- where t1.parent = %s and t1.item_code = %s and t1.parent = t2.name""",
- (self.modified, self.purchase_receipt_no, self.item_code))
+ frappe.db.sql("""update `tabPurchase Receipt Item` set qa_no = '', modified=%s
+ where qa_no = %s""", (self.modified, self.name))
def item_query(doctype, txt, searchfield, start, page_len, filters):
if filters.get("from"):
diff --git a/erpnext/buying/report/quoted_item_comparison/quoted_item_comparison.py b/erpnext/buying/report/quoted_item_comparison/quoted_item_comparison.py
index 1793fc3..f627b4a 100644
--- a/erpnext/buying/report/quoted_item_comparison/quoted_item_comparison.py
+++ b/erpnext/buying/report/quoted_item_comparison/quoted_item_comparison.py
@@ -3,11 +3,9 @@
from __future__ import unicode_literals
from erpnext.setup.utils import get_exchange_rate
-
import frappe
def execute(filters=None):
-
qty_list = get_quantity_list(filters.item)
data = get_quote_list(filters.item, qty_list)
@@ -15,12 +13,9 @@
columns = get_columns(qty_list)
return columns, data
-
def get_quote_list(item, qty_list):
-
out = []
-
if item:
price_data = []
suppliers = []
@@ -38,8 +33,11 @@
#Add a row for each supplier
for root in set(suppliers):
- supplier_currency = frappe.db.get_value("Supplier",root,"default_currency")
- exg = get_exchange_rate(supplier_currency,company_currency)
+ supplier_currency = frappe.db.get_value("Supplier", root, "default_currency")
+ if supplier_currency:
+ exchange_rate = get_exchange_rate(supplier_currency, company_currency)
+ else:
+ exchange_rate = 1
row = frappe._dict({
"supplier_name": root
@@ -48,7 +46,7 @@
# Get the quantity for this row
for item_price in price_data:
if str(item_price.qty) == col.key and item_price.supplier == root:
- row[col.key] = item_price.rate * exg
+ row[col.key] = item_price.rate * exchange_rate
row[col.key + "QUOTE"] = item_price.parent
break
else:
@@ -56,15 +54,11 @@
row[col.key + "QUOTE"] = ""
out.append(row)
-
-
return out
def get_quantity_list(item):
-
out = []
-
if item:
qty_list = frappe.db.sql("""select distinct qty from `tabSupplier Quotation Item` where ifnull(item_code,'')=%s and docstatus < 2""", item, as_dict=1)
qty_list.sort(reverse=False)
@@ -102,5 +96,4 @@
"width": 90
})
-
- return columns
\ No newline at end of file
+ return columns
diff --git a/erpnext/patches/v6_16/update_billing_status_in_dn_and_pr.py b/erpnext/patches/v6_16/update_billing_status_in_dn_and_pr.py
index b660d39..481f130 100644
--- a/erpnext/patches/v6_16/update_billing_status_in_dn_and_pr.py
+++ b/erpnext/patches/v6_16/update_billing_status_in_dn_and_pr.py
@@ -22,7 +22,7 @@
# Update billed_amt in DN and PR which are not against any order
for d in frappe.db.sql("""select name from `tabPurchase Receipt Item` item
- where (prevdoc_detail_docname is null or prevdoc_detail_docname = '') and docstatus=1""", as_dict=1):
+ where (purchase_order_item is null or purchase_order_item = '') and docstatus=1""", as_dict=1):
billed_amt = frappe.db.sql("""select sum(amount) from `tabPurchase Invoice Item`
where pr_detail=%s and docstatus=1""", d.name)
diff --git a/erpnext/patches/v7_0/update_status_of_po_so.py b/erpnext/patches/v7_0/update_status_of_po_so.py
index 0e2dd74..c0b6f59 100644
--- a/erpnext/patches/v7_0/update_status_of_po_so.py
+++ b/erpnext/patches/v7_0/update_status_of_po_so.py
@@ -18,9 +18,9 @@
`tabPurchase Order`.per_received = round((select sum(if(qty > ifnull(received_qty, 0),
ifnull(received_qty, 0), qty)) / sum(qty) *100 from `tabPurchase Order Item`
where parent = `tabPurchase Order`.name), 2),
- `tabPurchase Order`.per_billed = round((select sum( if(amount > ifnull(billed_amt, 0),
+ `tabPurchase Order`.per_billed = ifnull(round((select sum( if(amount > ifnull(billed_amt, 0),
ifnull(billed_amt, 0), amount)) / sum(amount) *100 from `tabPurchase Order Item`
- where parent = `tabPurchase Order`.name), 2)""")
+ where parent = `tabPurchase Order`.name), 2), 0)""")
def update_so_per_delivered_per_billed():
frappe.db.sql("""
@@ -30,9 +30,9 @@
`tabSales Order`.per_delivered = round((select sum( if(qty > ifnull(delivered_qty, 0),
ifnull(delivered_qty, 0), qty)) / sum(qty) *100 from `tabSales Order Item`
where parent = `tabSales Order`.name), 2),
- `tabSales Order`.per_billed = round((select sum( if(amount > ifnull(billed_amt, 0),
+ `tabSales Order`.per_billed = ifnull(round((select sum( if(amount > ifnull(billed_amt, 0),
ifnull(billed_amt, 0), amount)) / sum(amount) *100 from `tabSales Order Item`
- where parent = `tabSales Order`.name), 2)""")
+ where parent = `tabSales Order`.name), 2), 0)""")
def update_status():
frappe.db.sql("""