diff --git a/erpnext/regional/doctype/import_supplier_invoice/import_supplier_invoice.py b/erpnext/regional/doctype/import_supplier_invoice/import_supplier_invoice.py
index e28d305..f65c7f1 100644
--- a/erpnext/regional/doctype/import_supplier_invoice/import_supplier_invoice.py
+++ b/erpnext/regional/doctype/import_supplier_invoice/import_supplier_invoice.py
@@ -33,6 +33,11 @@
 		mop_str = re.sub('\n', ',', mop_options)
 		mop_dict = dict(item.split("-") for item in mop_str.split(","))
 
+		default_uom = frappe.db.get_value("Stock Settings", fieldname="stock_uom")
+
+		if not default_uom:
+			frappe.throw(_("Please set default UOM in Stock Settings"))
+
 		with zipfile.ZipFile(get_full_path(self.zip_file)) as zf:
 			file_count = 0
 			for file_name in zf.namelist():
@@ -54,6 +59,7 @@
 				for line in file_content.find_all("DatiTrasmissione"):
 					destination_code = line.CodiceDestinatario.text
 
+				#read address information from file
 				for line in file_content.find_all("DatiGeneraliDocumento"):
 					document_type = line.TipoDocumento.text
 					bill_date = dateutil.parser.parse(line.Data.text).strftime("%Y-%m-%d")
@@ -84,26 +90,27 @@
 
 						total_discount = 0
 
+						#read item information from file
 						for line in file_content.find_all("DettaglioLinee"):
 							if line.find("PrezzoUnitario") and line.find("PrezzoTotale"):
-								unit_rate = float(line.PrezzoUnitario.text) or float(0)
-								line_total = float(line.PrezzoTotale.text) or float(0)
+								unit_rate = flt(line.PrezzoUnitario.text) or 0
+								line_total = flt(line.PrezzoTotale.text) or 0
 
 								if (unit_rate == 0.0):
-									qty = float(1)
-									uom = "nos"
+									qty = 1.0
+									uom = default_uom
 									rate = tax_rate = 0
 								else:
 									if (line_total / unit_rate) == 1.0:
-										qty = float(1)
-										uom = "nos"
+										qty = 1.0
+										uom = default_uom
 									else:
 										if line.find("Quantita"):
-											qty = float(line.Quantita.text) or float(0)
+											qty = flt(line.Quantita.text) or 0
 											if line.find("UnitaMisura"):
 												uom = create_uom(line.UnitaMisura.text)
 											else:
-												uom = "nos"
+												uom = default_uom
 
 									if (unit_rate < 0 and line_total < 0):
 										qty *= -1
@@ -113,7 +120,7 @@
 
 									rate = unit_rate
 									if line.find("AliquotaIVA"):
-										tax_rate = float(line.AliquotaIVA.text)
+										tax_rate = flt(line.AliquotaIVA.text)
 
 								line_str = re.sub('[^A-Za-z0-9]+', '-', line.Descrizione.text)
 								item_name = line_str[0:140]
@@ -121,18 +128,19 @@
 												"item_code": self.item_code,
 												"item_name": item_name,
 												"description": line_str,
-												"qty": float(qty),
+												"qty": qty,
 												"uom": uom,
 												"rate": rate,
-												"conversion_factor": float(1),
+												"conversion_factor": 1.0,
 												"tax_rate": tax_rate
 											})
 
 								for disc_line in line.find_all("ScontoMaggiorazione"):
 									if disc_line.find("Percentuale"):
-										discount = float(disc_line.Percentuale.text) or float(0)
-										total_discount += float((discount / 100) * (rate * qty))
+										discount = flt(disc_line.Percentuale.text) or 0
+										total_discount += flt((discount / 100) * (rate * qty))
 
+						#read taxes from file
 						for line in file_content.find_all("DatiRiepilogo"):
 							if line.find("AliquotaIVA"):
 								if line.find("EsigibilitaIVA"):
@@ -142,11 +150,12 @@
 								taxes.append({
 									"charge_type": "Actual",
 									"account_head": self.tax_account,
-									"tax_rate": float(line.AliquotaIVA.text) or float(0),
+									"tax_rate": flt(line.AliquotaIVA.text) or 0,
 									"description": descr,
-									"tax_amount": float(line.Imposta.text) if len(line.find("Imposta"))!=0 else float(0)
+									"tax_amount": flt(line.Imposta.text) if len(line.find("Imposta"))!=0 else 0
 								})
-				
+
+						#read payment data from file
 						for line in file_content.find_all("DettaglioPagamento"):
 							mop_code = line.ModalitaPagamento.text + '-' + mop_dict.get(line.ModalitaPagamento.text)
 							
@@ -162,19 +171,18 @@
 							})
 
 						supplier_name = create_supplier(supplier = supplier, supplier_group = self.supplier_group, 
-														tax_id = tax_id, fiscal_code = fiscal_code,
-														fiscal_regime = fiscal_regime)
+											tax_id = tax_id, fiscal_code = fiscal_code,
+											fiscal_regime = fiscal_regime)
 
 						address = create_address(supplier_name = supplier_name, address_line1 = address_line1, 
-												city = city, province = province, 
-												pin_code = pin_code, country = country)
+									city = city, province = province, 
+									pin_code = pin_code, country = country)
 
 						pi_name = create_purchase_invoice(company = self.company, naming_series = self.invoice_series,
-														supplier_name = supplier_name, bill_no = invoice_no,
-														document_type = document_type, bill_date = bill_date,
-														is_return = return_invoice, destination_code = destination_code,
-														total_discount = total_discount, items = items,
-														taxes = taxes, terms = terms,file_name = file_name)
+									supplier_name = supplier_name, bill_no = invoice_no,document_type = document_type, 
+									bill_date = bill_date,is_return = return_invoice, destination_code = destination_code,
+									total_discount = total_discount, items = items,taxes = taxes, terms = terms,
+									file_name = file_name)
 
 						file_count += 1
 						if pi_name:
@@ -264,36 +272,31 @@
 	existing_address = frappe.get_list("Address", filters)
 
 	if args.address_line1:
-		make_address = frappe.new_doc("Address")
-		make_address.address_line1 = args.address_line1
+		new_address_doc = frappe.new_doc("Address")
+		new_address_doc.address_line1 = args.address_line1
 
 		if args.city:
-			make_address.city = args.city
+			new_address_doc.city = args.city
 		else:
-			make_address.city = "Not Provided"
+			new_address_doc.city = "Not Provided"
 
-		if args.province:
-			make_address.state_code = args.province
-
-		if args.pincode:
-			make_address.pincode = args.pincode
-
-		if args.country:
-			make_address.country = args.country
+		for field in ["province", "pincode", "country"]:
+			if args.get(field):
+				new_address_doc.set(field, args.get(field))
 
 		for address in existing_address:
 			address_doc = frappe.get_doc("Address", address["name"])
-			if (address_doc.address_line1 == make_address.address_line1 and
-				address_doc.pincode == make_address.pincode):
+			if (address_doc.address_line1 == new_address_doc.address_line1 and
+				address_doc.pincode == new_address_doc.pincode):
 				return address
 
-		make_address.append("links", {
+		new_address_doc.append("links", {
 			"link_doctype": "Supplier",
 			"link_name": args.supplier_name
 		})
-		make_address.address_type = "Billing"
-		make_address.insert()
-		return make_address.name
+		new_address_doc.address_type = "Billing"
+		new_address_doc.insert()
+		return new_address_doc.name
 	else:
 		return None
 
@@ -316,28 +319,32 @@
 		})
 
 	try:
+		pi.set_missing_values()
 		pi.insert(ignore_permissions=True)
 
+		#if discount exists in file, apply any discount on grand total
 		if args.total_discount > 0:
 			pi.apply_discount_on = "Grand Total"
 			pi.discount_amount = args.total_discount
 			pi.save()
 
+		#adjust payment amount to match with grand total calculated
 		calc_total = 0
 		adj = 0
 		for term in args.terms:
-			calc_total += float(term["payment_amount"])
-		if float(calc_total - float(pi.grand_total)) != 0:
-			adj = calc_total - float(pi.grand_total)
+			calc_total += flt(term["payment_amount"])
+		if flt(calc_total - flt(pi.grand_total)) != 0:
+			adj = calc_total - flt(pi.grand_total)
 		pi.payment_schedule = []
 		for term in args.terms:
 			pi.append('payment_schedule',{"mode_of_payment_code": term["mode_of_payment_code"],
 			"bank_account_iban": term["bank_account_iban"],
 			"due_date": term["due_date"],
-			"payment_amount": float(term["payment_amount"]) - adj })
+			"payment_amount": flt(term["payment_amount"]) - adj })
 			adj = 0
 		pi.imported_grand_total = calc_total
 		pi.save()
+
 		return pi.name
 	except Exception as e:
 		frappe.log_error(message=e, title="Create Purchase Invoice: " + args.bill_no + "File Name: " + args.file_name)
