Merge branch 'develop' into payment-reco-mandatory-check
diff --git a/erpnext/hr/doctype/vehicle_log/test_vehicle_log.py b/erpnext/hr/doctype/vehicle_log/test_vehicle_log.py
index e9dc776..cf0048c 100644
--- a/erpnext/hr/doctype/vehicle_log/test_vehicle_log.py
+++ b/erpnext/hr/doctype/vehicle_log/test_vehicle_log.py
@@ -6,18 +6,28 @@
 import frappe
 import unittest
 from frappe.utils import nowdate,flt, cstr,random_string
+from erpnext.hr.doctype.employee.test_employee import make_employee
+from erpnext.hr.doctype.vehicle_log.vehicle_log import make_expense_claim
 
 class TestVehicleLog(unittest.TestCase):
+	def setUp(self):
+		employee_id = frappe.db.sql("""select name from `tabEmployee` where name='testdriver@example.com'""")
+		self.employee_id = employee_id[0][0] if employee_id else None
+
+		if not self.employee_id:
+			self.employee_id = make_employee("testdriver@example.com", company="_Test Company")
+
+		self.license_plate = get_vehicle(self.employee_id)
+	
+	def tearDown(self):
+		frappe.delete_doc("Vehicle", self.license_plate, force=1)
+		frappe.delete_doc("Employee", self.employee_id, force=1)
+
 	def test_make_vehicle_log_and_syncing_of_odometer_value(self):
-		employee_id = frappe.db.sql("""select name from `tabEmployee` where status='Active' order by modified desc limit 1""")
-		employee_id = employee_id[0][0] if employee_id else None
-
-		license_plate = get_vehicle(employee_id)
-
 		vehicle_log = frappe.get_doc({
 			"doctype": "Vehicle Log",
-			"license_plate": cstr(license_plate),
-			"employee":employee_id,
+			"license_plate": cstr(self.license_plate),
+			"employee": self.employee_id,
 			"date":frappe.utils.nowdate(),
 			"odometer":5010,
 			"fuel_qty":frappe.utils.flt(50),
@@ -27,7 +37,7 @@
 		vehicle_log.submit()
 
 		#checking value of vehicle odometer value on submit.
-		vehicle = frappe.get_doc("Vehicle", license_plate)
+		vehicle = frappe.get_doc("Vehicle", self.license_plate)
 		self.assertEqual(vehicle.last_odometer, vehicle_log.odometer)
 
 		#checking value vehicle odometer on vehicle log cancellation.
@@ -40,6 +50,28 @@
 
 		self.assertEqual(vehicle.last_odometer, current_odometer - distance_travelled)
 
+		vehicle_log.delete()
+	
+	def test_vehicle_log_fuel_expense(self):
+		vehicle_log = frappe.get_doc({
+			"doctype": "Vehicle Log",
+			"license_plate": cstr(self.license_plate),
+			"employee": self.employee_id,
+			"date": frappe.utils.nowdate(),
+			"odometer":5010,
+			"fuel_qty":frappe.utils.flt(50),
+			"price": frappe.utils.flt(500)
+		})
+		vehicle_log.save()
+		vehicle_log.submit()
+
+		expense_claim = make_expense_claim(vehicle_log.name)
+		fuel_expense = expense_claim.expenses[0].amount
+		self.assertEqual(fuel_expense, 50*500)
+
+		vehicle_log.cancel()
+		frappe.delete_doc("Expense Claim", expense_claim.name)
+		frappe.delete_doc("Vehicle Log", vehicle_log.name)
 
 def get_vehicle(employee_id):
 	license_plate=random_string(10).upper()
diff --git a/erpnext/hr/doctype/vehicle_log/vehicle_log.py b/erpnext/hr/doctype/vehicle_log/vehicle_log.py
index 8affab2..04c94e3 100644
--- a/erpnext/hr/doctype/vehicle_log/vehicle_log.py
+++ b/erpnext/hr/doctype/vehicle_log/vehicle_log.py
@@ -32,7 +32,7 @@
 	vehicle_log = frappe.get_doc("Vehicle Log", docname)
 	service_expense = sum([flt(d.expense_amount) for d in vehicle_log.service_detail])
 
-	claim_amount = service_expense + flt(vehicle_log.price)
+	claim_amount = service_expense + (flt(vehicle_log.price) * flt(vehicle_log.fuel_qty) or 1)
 	if not claim_amount:
 		frappe.throw(_("No additional expenses has been added"))