| import frappe |
| from frappe.utils import getdate |
| |
| |
| @frappe.whitelist() |
| def create_employee_records(): |
| create_company() |
| create_missing_designation() |
| |
| frappe.db.sql("DELETE FROM tabEmployee WHERE company='Test Org Chart'") |
| |
| emp1 = create_employee("Test Employee 1", "CEO") |
| emp2 = create_employee("Test Employee 2", "CTO") |
| emp3 = create_employee("Test Employee 3", "Head of Marketing and Sales", emp1) |
| emp4 = create_employee("Test Employee 4", "Project Manager", emp2) |
| emp5 = create_employee("Test Employee 5", "Engineer", emp2) |
| emp6 = create_employee("Test Employee 6", "Analyst", emp3) |
| emp7 = create_employee("Test Employee 7", "Software Developer", emp4) |
| |
| employees = [emp1, emp2, emp3, emp4, emp5, emp6, emp7] |
| return employees |
| |
| |
| @frappe.whitelist() |
| def get_employee_records(): |
| return frappe.db.get_list( |
| "Employee", filters={"company": "Test Org Chart"}, pluck="name", order_by="name" |
| ) |
| |
| |
| def create_company(): |
| company = frappe.db.exists("Company", "Test Org Chart") |
| if not company: |
| company = ( |
| frappe.get_doc( |
| { |
| "doctype": "Company", |
| "company_name": "Test Org Chart", |
| "country": "India", |
| "default_currency": "INR", |
| } |
| ) |
| .insert() |
| .name |
| ) |
| |
| return company |
| |
| |
| def create_employee(first_name, designation, reports_to=None): |
| employee = frappe.db.exists("Employee", {"first_name": first_name, "designation": designation}) |
| if not employee: |
| employee = ( |
| frappe.get_doc( |
| { |
| "doctype": "Employee", |
| "first_name": first_name, |
| "company": "Test Org Chart", |
| "gender": "Female", |
| "date_of_birth": getdate("08-12-1998"), |
| "date_of_joining": getdate("01-01-2021"), |
| "designation": designation, |
| "reports_to": reports_to, |
| } |
| ) |
| .insert() |
| .name |
| ) |
| |
| return employee |
| |
| |
| def create_missing_designation(): |
| if not frappe.db.exists("Designation", "CTO"): |
| frappe.get_doc({"doctype": "Designation", "designation_name": "CTO"}).insert() |