blob: 44834c8a77c89a70ba0ecfa575189bdff14a5fa4 [file] [log] [blame]
Rucha Mahabal3cc85e12021-07-14 23:50:54 +05301import frappe
Rucha Mahabal3cc85e12021-07-14 23:50:54 +05302from frappe.utils import getdate
3
Chillar Anand915b3432021-09-02 16:44:59 +05304
Rucha Mahabal3cc85e12021-07-14 23:50:54 +05305@frappe.whitelist()
6def create_employee_records():
Rucha Mahabal525d4d42021-07-15 19:32:15 +05307 create_company()
Rucha Mahabal3cc85e12021-07-14 23:50:54 +05308 create_missing_designation()
9
Rucha Mahabal9e082292021-09-30 18:32:10 +053010 frappe.db.sql("DELETE FROM tabEmployee WHERE company='Test Org Chart'")
11
Ankush Menat494bd9e2022-03-28 18:52:46 +053012 emp1 = create_employee("Test Employee 1", "CEO")
13 emp2 = create_employee("Test Employee 2", "CTO")
14 emp3 = create_employee("Test Employee 3", "Head of Marketing and Sales", emp1)
15 emp4 = create_employee("Test Employee 4", "Project Manager", emp2)
16 emp5 = create_employee("Test Employee 5", "Engineer", emp2)
17 emp6 = create_employee("Test Employee 6", "Analyst", emp3)
18 emp7 = create_employee("Test Employee 7", "Software Developer", emp4)
Rucha Mahabal3cc85e12021-07-14 23:50:54 +053019
Rucha Mahabala1d379d2021-07-15 19:19:09 +053020 employees = [emp1, emp2, emp3, emp4, emp5, emp6, emp7]
Rucha Mahabal3cc85e12021-07-14 23:50:54 +053021 return employees
22
Ankush Menat494bd9e2022-03-28 18:52:46 +053023
Rucha Mahabal982a0972021-07-19 22:19:28 +053024@frappe.whitelist()
25def get_employee_records():
Ankush Menat494bd9e2022-03-28 18:52:46 +053026 return frappe.db.get_list(
27 "Employee", filters={"company": "Test Org Chart"}, pluck="name", order_by="name"
28 )
29
Rucha Mahabal982a0972021-07-19 22:19:28 +053030
Rucha Mahabal3cc85e12021-07-14 23:50:54 +053031def create_company():
Ankush Menat494bd9e2022-03-28 18:52:46 +053032 company = frappe.db.exists("Company", "Test Org Chart")
Rucha Mahabal3cc85e12021-07-14 23:50:54 +053033 if not company:
Ankush Menat494bd9e2022-03-28 18:52:46 +053034 company = (
35 frappe.get_doc(
36 {
37 "doctype": "Company",
38 "company_name": "Test Org Chart",
39 "country": "India",
40 "default_currency": "INR",
41 }
42 )
43 .insert()
44 .name
45 )
Rucha Mahabal3cc85e12021-07-14 23:50:54 +053046
47 return company
48
Ankush Menat494bd9e2022-03-28 18:52:46 +053049
Rucha Mahabal3cc85e12021-07-14 23:50:54 +053050def create_employee(first_name, designation, reports_to=None):
Ankush Menat494bd9e2022-03-28 18:52:46 +053051 employee = frappe.db.exists("Employee", {"first_name": first_name, "designation": designation})
Rucha Mahabal3cc85e12021-07-14 23:50:54 +053052 if not employee:
Ankush Menat494bd9e2022-03-28 18:52:46 +053053 employee = (
54 frappe.get_doc(
55 {
56 "doctype": "Employee",
57 "first_name": first_name,
58 "company": "Test Org Chart",
59 "gender": "Female",
60 "date_of_birth": getdate("08-12-1998"),
61 "date_of_joining": getdate("01-01-2021"),
62 "designation": designation,
63 "reports_to": reports_to,
64 }
65 )
66 .insert()
67 .name
68 )
Rucha Mahabal3cc85e12021-07-14 23:50:54 +053069
70 return employee
71
Ankush Menat494bd9e2022-03-28 18:52:46 +053072
Rucha Mahabal3cc85e12021-07-14 23:50:54 +053073def create_missing_designation():
Ankush Menat494bd9e2022-03-28 18:52:46 +053074 if not frappe.db.exists("Designation", "CTO"):
75 frappe.get_doc({"doctype": "Designation", "designation_name": "CTO"}).insert()