77 lines
2.3 KiB
Python
77 lines
2.3 KiB
Python
# Copyright (c) 2018, Frappe Technologies Pvt. Ltd. and Contributors
|
|
# License: GNU General Public License v3. See license.txt
|
|
|
|
|
|
import unittest
|
|
|
|
import frappe
|
|
from frappe.utils import getdate
|
|
|
|
from erpnext.accounts.utils import get_fiscal_year
|
|
from erpnext.hr.doctype.employee.test_employee import make_employee
|
|
from erpnext.hr.doctype.vehicle_log.test_vehicle_log import get_vehicle, make_vehicle_log
|
|
from erpnext.hr.doctype.vehicle_log.vehicle_log import make_expense_claim
|
|
from erpnext.hr.report.vehicle_expenses.vehicle_expenses import execute
|
|
|
|
|
|
class TestVehicleExpenses(unittest.TestCase):
|
|
@classmethod
|
|
def setUpClass(self):
|
|
frappe.db.sql('delete from `tabVehicle Log`')
|
|
|
|
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 test_vehicle_expenses_based_on_fiscal_year(self):
|
|
vehicle_log = make_vehicle_log(self.license_plate, self.employee_id, with_services=True)
|
|
expense_claim = make_expense_claim(vehicle_log.name)
|
|
|
|
# Based on Fiscal Year
|
|
filters = {
|
|
'filter_based_on': 'Fiscal Year',
|
|
'fiscal_year': get_fiscal_year(getdate())[0]
|
|
}
|
|
|
|
report = execute(filters)
|
|
|
|
expected_data = [{
|
|
'vehicle': self.license_plate,
|
|
'make': 'Maruti',
|
|
'model': 'PCM',
|
|
'location': 'Mumbai',
|
|
'log_name': vehicle_log.name,
|
|
'odometer': 5010,
|
|
'date': getdate(),
|
|
'fuel_qty': 50.0,
|
|
'fuel_price': 500.0,
|
|
'fuel_expense': 25000.0,
|
|
'service_expense': 2000.0,
|
|
'employee': self.employee_id
|
|
}]
|
|
|
|
self.assertEqual(report[1], expected_data)
|
|
|
|
# Based on Date Range
|
|
fiscal_year = get_fiscal_year(getdate(), as_dict=True)
|
|
filters = {
|
|
'filter_based_on': 'Date Range',
|
|
'from_date': fiscal_year.year_start_date,
|
|
'to_date': fiscal_year.year_end_date
|
|
}
|
|
|
|
report = execute(filters)
|
|
self.assertEqual(report[1], expected_data)
|
|
|
|
# clean up
|
|
vehicle_log.cancel()
|
|
frappe.delete_doc('Expense Claim', expense_claim.name)
|
|
frappe.delete_doc('Vehicle Log', vehicle_log.name)
|
|
|
|
def tearDown(self):
|
|
frappe.delete_doc('Vehicle', self.license_plate, force=1)
|
|
frappe.delete_doc('Employee', self.employee_id, force=1)
|