blob: f66d69ba232f7da20b08fca93dd7545718903fb0 [file] [log] [blame]
Rucha Mahabalf004b402021-07-14 23:50:54 +05301import frappe
Rucha Mahabalf004b402021-07-14 23:50:54 +05302from frappe.utils import getdate
3
4@frappe.whitelist()
5def create_employee_records():
Rucha Mahabal8961a262021-07-15 19:32:15 +05306 create_company()
Rucha Mahabalf004b402021-07-14 23:50:54 +05307 create_missing_designation()
8
9 emp1 = create_employee('Test Employee 1', 'CEO')
10 emp2 = create_employee('Test Employee 2', 'CTO')
11 emp3 = create_employee('Test Employee 3', 'Head of Marketing and Sales', emp1)
12 emp4 = create_employee('Test Employee 4', 'Project Manager', emp2)
Rucha Mahabalee7eaf92021-07-15 19:19:09 +053013 emp5 = create_employee('Test Employee 5', 'Engineer', emp2)
14 emp6 = create_employee('Test Employee 6', 'Analyst', emp3)
15 emp7 = create_employee('Test Employee 7', 'Software Developer', emp4)
Rucha Mahabalf004b402021-07-14 23:50:54 +053016
Rucha Mahabalee7eaf92021-07-15 19:19:09 +053017 employees = [emp1, emp2, emp3, emp4, emp5, emp6, emp7]
Rucha Mahabalf004b402021-07-14 23:50:54 +053018 return employees
19
20def create_company():
21 company = frappe.db.exists('Company', 'Test Org Chart')
22 if not company:
23 company = frappe.get_doc({
24 'doctype': 'Company',
25 'company_name': 'Test Org Chart',
26 'country': 'India',
27 'default_currency': 'INR'
28 }).insert().name
29
30 return company
31
32def create_employee(first_name, designation, reports_to=None):
33 employee = frappe.db.exists('Employee', {'first_name': first_name, 'designation': designation})
34 if not employee:
35 employee = frappe.get_doc({
36 'doctype': 'Employee',
37 'first_name': first_name,
38 'company': 'Test Org Chart',
39 'gender': 'Female',
40 'date_of_birth': getdate('08-12-1998'),
41 'date_of_joining': getdate('01-01-2021'),
42 'designation': designation,
43 'reports_to': reports_to
44 }).insert().name
45
46 return employee
47
48def create_missing_designation():
49 if not frappe.db.exists('Designation', 'CTO'):
50 frappe.get_doc({
51 'doctype': 'Designation',
52 'designation_name': 'CTO'
53 }).insert()