Merge pull request #7171 from rohitwaghchaure/payment_entry_issue

[Fix] Payment entry showing wrong invoice amount
diff --git a/erpnext/__init__.py b/erpnext/__init__.py
index 2d1a24d..b54ba59 100644
--- a/erpnext/__init__.py
+++ b/erpnext/__init__.py
@@ -2,7 +2,7 @@
 from __future__ import unicode_literals
 import frappe
 
-__version__ = '7.1.21'
+__version__ = '7.1.22'
 
 def get_default_company(user=None):
 	'''Get default company for user'''
diff --git a/erpnext/accounts/doctype/sales_invoice/pos.py b/erpnext/accounts/doctype/sales_invoice/pos.py
index d6cf120..4e4ad78 100644
--- a/erpnext/accounts/doctype/sales_invoice/pos.py
+++ b/erpnext/accounts/doctype/sales_invoice/pos.py
@@ -296,4 +296,3 @@
 		si_doc.docstatus = 0
 		si_doc.flags.ignore_mandatory = True
 		si_doc.insert()
-		frappe.log_error(frappe.get_traceback())
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/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("""
diff --git a/erpnext/projects/doctype/timesheet/timesheet.py b/erpnext/projects/doctype/timesheet/timesheet.py
index f853692..5cb0184 100644
--- a/erpnext/projects/doctype/timesheet/timesheet.py
+++ b/erpnext/projects/doctype/timesheet/timesheet.py
@@ -80,8 +80,8 @@
 
 	def set_dates(self):
 		if self.docstatus < 2 and self.time_logs:
-			start_date = min([d.from_time for d in self.time_logs])
-			end_date = max([d.to_time for d in self.time_logs])
+			start_date = min([getdate(d.from_time) for d in self.time_logs])
+			end_date = max([getdate(d.to_time) for d in self.time_logs])
 
 			if start_date and end_date:
 				self.start_date = getdate(start_date)