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"))