diff --git a/erpnext/__init__.py b/erpnext/__init__.py index b54ba59943cf..97ab9343d2a3 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 d4f8edbb6f73..936b3298eadc 100644 --- a/erpnext/accounts/doctype/payment_entry/payment_entry.py +++ b/erpnext/accounts/doctype/payment_entry/payment_entry.py @@ -639,7 +639,7 @@ def get_payment_entry(dt, dn, party_amount=None, bank_account=None, bank_amount= 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 e66d20eb4d4b..bc4a220faa10 100644 --- a/erpnext/accounts/report/financial_statements.py +++ b/erpnext/accounts/report/financial_statements.py @@ -42,9 +42,6 @@ def get_period_list(from_fiscal_year, to_fiscal_year, periodicity): 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 4bba066f44e5..47f79f171263 100644 --- a/erpnext/accounts/report/purchase_register/purchase_register.py +++ b/erpnext/accounts/report/purchase_register/purchase_register.py @@ -185,7 +185,7 @@ def get_invoice_po_pr_map(invoice_list): 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 d1d9518bc25b..8d85715fc866 100644 --- a/erpnext/buying/doctype/quality_inspection/quality_inspection.py +++ b/erpnext/buying/doctype/quality_inspection/quality_inspection.py @@ -28,15 +28,12 @@ def on_submit(self): 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 1793fc314058..f627b4a6cd10 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 @@ def execute(filters=None): 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 @@ def get_quote_list(item, qty_list): #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 @@ def get_quote_list(item, qty_list): # 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 @@ def get_quote_list(item, qty_list): 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 @@ def get_columns(qty_list): "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 b660d39d53b4..481f13005ba2 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 @@ def execute(): # 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 0e2dd74a23a1..c0b6f59eaf57 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 @@ def update_po_per_received_per_billed(): `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 @@ def update_so_per_delivered_per_billed(): `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("""