diff --git a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice_list.js b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice_list.js
index 1c43b7e..5b47c4d 100644
--- a/erpnext/accounts/doctype/purchase_invoice/purchase_invoice_list.js
+++ b/erpnext/accounts/doctype/purchase_invoice/purchase_invoice_list.js
@@ -6,13 +6,13 @@
 	add_fields: ["supplier", "supplier_name", "base_grand_total", "outstanding_amount", "due_date", "company",
 		"currency"],
 	get_indicator: function(doc) {
-		if(doc.outstanding_amount > 0 && doc.docstatus==1) {
+		if(flt(doc.outstanding_amount) > 0 && doc.docstatus==1) {
 			if(frappe.datetime.get_diff(doc.due_date) < 0) {
 				return [__("Overdue"), "red", "outstanding_amount,>,0|due_date,<,Today"];
 			} else {
 				return [__("Unpaid"), "orange", "outstanding_amount,>,0|due,>=,Today"];
 			}
-		} else if(doc.outstanding_amount==0 && doc.docstatus==1) {
+		} else if(flt(doc.outstanding_amount)==0 && doc.docstatus==1) {
 			return [__("Paid"), "green", "outstanding_amount,=,0"];
 		}
 	}
diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice_list.js b/erpnext/accounts/doctype/sales_invoice/sales_invoice_list.js
index 01dcc0e..1bcc194 100644
--- a/erpnext/accounts/doctype/sales_invoice/sales_invoice_list.js
+++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice_list.js
@@ -6,11 +6,11 @@
 	add_fields: ["customer", "customer_name", "base_grand_total", "outstanding_amount", "due_date", "company",
 		"currency"],
 	get_indicator: function(doc) {
-		if(doc.outstanding_amount==0) {
+		if(flt(doc.outstanding_amount)==0) {
 			return [__("Paid"), "green", "outstanding_amount,=,0"]
-		} else if (doc.outstanding_amount > 0 && doc.due_date > frappe.datetime.get_today()) {
+		} else if (flt(doc.outstanding_amount) > 0 && doc.due_date > frappe.datetime.get_today()) {
 			return [__("Unpaid"), "orange", "outstanding_amount,>,0|due_date,>,Today"]
-		} else if (doc.outstanding_amount > 0 && doc.due_date <= frappe.datetime.get_today()) {
+		} else if (flt(doc.outstanding_amount) > 0 && doc.due_date <= frappe.datetime.get_today()) {
 			return [__("Overdue"), "red", "outstanding_amount,>,0|due_date,<=,Today"]
 		}
 	},
diff --git a/erpnext/buying/doctype/purchase_order/purchase_order_list.js b/erpnext/buying/doctype/purchase_order/purchase_order_list.js
index b094a65..1b27b79 100644
--- a/erpnext/buying/doctype/purchase_order/purchase_order_list.js
+++ b/erpnext/buying/doctype/purchase_order/purchase_order_list.js
@@ -4,11 +4,11 @@
 	get_indicator: function(doc) {
         if(doc.status==="Stopped") {
 			return [__("Stopped"), "red", "status,=,Stopped"];
-		} else if(doc.per_received < 100 && doc.status!=="Stopped") {
+		} else if(flt(doc.per_received) < 100 && doc.status!=="Stopped") {
 			return [__("Not Received"), "orange", "per_received,<,100|status,!=,Stopped"];
-		} else if(doc.per_received == 100 && doc.per_billed < 100 && doc.status!=="Stopped") {
+		} else if(flt(doc.per_received) == 100 && flt(doc.per_billed) < 100 && doc.status!=="Stopped") {
 			return [__("To Bill"), "orange", "per_received,=,100|per_billed,<,100|status,!=,Stopped"];
-		} else if(doc.per_received == 100 && doc.per_billed == 100 && doc.status!=="Stopped") {
+		} else if(flt(doc.per_received) == 100 && flt(doc.per_billed) == 100 && doc.status!=="Stopped") {
 			return [__("Completed"), "green", "per_received,=,100|per_billed,=,100|status,!=,Stopped"];
 		}
 	}
diff --git a/erpnext/controllers/accounts_controller.py b/erpnext/controllers/accounts_controller.py
index def1585..744a0eb 100644
--- a/erpnext/controllers/accounts_controller.py
+++ b/erpnext/controllers/accounts_controller.py
@@ -52,8 +52,8 @@
 				break
 
 	def calculate_taxes_and_totals(self):
-		from erpnext.controllers.taxes_and_totals import taxes_and_totals
-		taxes_and_totals(self).calculate()
+		from erpnext.controllers.taxes_and_totals import calculate_taxes_and_totals
+		calculate_taxes_and_totals(self)
 
 		if self.doctype in ["Quotation", "Sales Order", "Delivery Note", "Sales Invoice"]:
 			self.calculate_commission()
diff --git a/erpnext/controllers/taxes_and_totals.py b/erpnext/controllers/taxes_and_totals.py
index 6e8d7f1..341b3ca 100644
--- a/erpnext/controllers/taxes_and_totals.py
+++ b/erpnext/controllers/taxes_and_totals.py
@@ -8,10 +8,12 @@
 from erpnext.setup.utils import get_company_currency
 from erpnext.controllers.accounts_controller import validate_conversion_rate
 
-class taxes_and_totals(object):
+class calculate_taxes_and_totals(object):
 	def __init__(self, doc):
 		self.doc = doc
 
+		self.calculate()
+
 	def calculate(self):
 		self.discount_amount_applied = False
 		self._calculate()
diff --git a/erpnext/patches/v5_0/manufacturing_activity_type.py b/erpnext/patches/v5_0/manufacturing_activity_type.py
index d4e7873..12bf296 100644
--- a/erpnext/patches/v5_0/manufacturing_activity_type.py
+++ b/erpnext/patches/v5_0/manufacturing_activity_type.py
@@ -4,10 +4,8 @@
 import frappe
 
 def execute():
-	if not frappe.db.exists('Activity Type','Manufacturing') {
-		doc = frappe.new_doc('Activity Type')
-		doc.update({
-			'activity_type' : 'Manufacturing'
-		})
-		doc.save()
-	}
\ No newline at end of file
+	if not frappe.db.exists('Activity Type','Manufacturing'):
+		frappe.get_doc({
+			"doctype": "Activity Type",
+			"activity_type": "Manufacturing"
+		}).insert()
diff --git a/erpnext/selling/doctype/sales_order/sales_order_list.js b/erpnext/selling/doctype/sales_order/sales_order_list.js
index eef9162..17681a3 100644
--- a/erpnext/selling/doctype/sales_order/sales_order_list.js
+++ b/erpnext/selling/doctype/sales_order/sales_order_list.js
@@ -4,13 +4,13 @@
 	get_indicator: function(doc) {
         if(doc.status==="Stopped") {
 			return [__("Stopped"), "red", "status,=,Stopped"];
-        } else if(doc.per_delivered < 100 && frappe.datetime.get_diff(doc.delivery_date) < 0) {
+        } else if(flt(doc.per_delivered) < 100 && frappe.datetime.get_diff(doc.delivery_date) < 0) {
 			return [__("Overdue"), "red", "per_delivered,<,100|delivery_date,<,Today|status,!=,Stopped"];
-		} else if(doc.per_delivered < 100 && doc.status!=="Stopped") {
+		} else if(flt(doc.per_delivered) < 100 && doc.status!=="Stopped") {
 			return [__("Not Delivered"), "orange", "per_delivered,<,100|status,!=,Stopped"];
-		} else if(doc.per_delivered == 100 && doc.per_billed < 100 && doc.status!=="Stopped") {
+		} else if(flt(doc.per_delivered) == 100 && flt(doc.per_billed) < 100 && doc.status!=="Stopped") {
 			return [__("To Bill"), "orange", "per_delivered,=,100|per_billed,<,100|status,!=,Stopped"];
-		} else if(doc.per_delivered == 100 && doc.per_billed == 100 && doc.status!=="Stopped") {
+		} else if(flt(doc.per_delivered) == 100 && flt(doc.per_billed) == 100 && doc.status!=="Stopped") {
 			return [__("Completed"), "green", "per_delivered,=,100|per_billed,=,100|status,!=,Stopped"];
 		}
 	}
diff --git a/erpnext/stock/doctype/material_request/material_request_list.js b/erpnext/stock/doctype/material_request/material_request_list.js
index 1b9bca3..293d960 100644
--- a/erpnext/stock/doctype/material_request/material_request_list.js
+++ b/erpnext/stock/doctype/material_request/material_request_list.js
@@ -1,12 +1,11 @@
 frappe.listview_settings['Material Request'] = {
 	add_fields: ["material_request_type", "status", "per_ordered"],
 	get_indicator: function(doc) {
-		console.log()
 		if(doc.status=="Stopped") {
 			return [__("Stopped"), "red", "status,=,Stopped"];
-		} else if(doc.docstatus==1 && doc.per_ordered < 100) {
+		} else if(doc.docstatus==1 && flt(doc.per_ordered) < 100) {
 			return [__("Pending"), "orange", "per_ordered,<,100"];
-		} else if(doc.docstatus==1 && doc.per_ordered == 100) {
+		} else if(doc.docstatus==1 && flt(doc.per_ordered) == 100) {
 			return [__("Ordered"), "green", "per_ordered,=,100"];
 		}
 	}
