You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

302 lines
9.0 KiB

  1. app_name = "hrms"
  2. app_title = "InfluxERP HR"
  3. app_publisher = "InfluxERP"
  4. app_description = "Modern HR and Payroll Software"
  5. app_email = "contact@influxerp.com"
  6. app_license = "GNU General Public License (v3)"
  7. required_apps = ["erpnext"]
  8. # Includes in <head>
  9. # ------------------
  10. # include js, css files in header of desk.html
  11. # app_include_css = "/assets/hrms/css/hrms.css"
  12. # app_include_js = "/assets/hrms/js/hrms.js"
  13. # include js, css files in header of web template
  14. # web_include_css = "/assets/hrms/css/hrms.css"
  15. # web_include_js = "/assets/hrms/js/hrms.js"
  16. # include custom scss in every website theme (without file extension ".scss")
  17. # website_theme_scss = "hrms/public/scss/website"
  18. # include js, css files in header of web form
  19. # webform_include_js = {"doctype": "public/js/doctype.js"}
  20. # webform_include_css = {"doctype": "public/css/doctype.css"}
  21. # include js in page
  22. # page_js = {"page" : "public/js/file.js"}
  23. # include js in doctype views
  24. doctype_js = {
  25. "Employee": "public/js/employee.js",
  26. "Company": "public/js/company.js",
  27. "Department": "public/js/department.js",
  28. "Timesheet": "public/js/timesheet.js",
  29. "Payment Entry": "public/js/payment_entry.js",
  30. "Journal Entry": "public/js/journal_entry.js",
  31. "Delivery Trip": "public/js/deliver_trip.js",
  32. "Bank Transaction": "public/js/bank_transaction.js",
  33. }
  34. # doctype_list_js = {"doctype" : "public/js/doctype_list.js"}
  35. # doctype_tree_js = {"doctype" : "public/js/doctype_tree.js"}
  36. # doctype_calendar_js = {"doctype" : "public/js/doctype_calendar.js"}
  37. # Home Pages
  38. # ----------
  39. # application home page (will override Website Settings)
  40. # home_page = "login"
  41. # website user home page (by Role)
  42. # role_home_page = {
  43. # "Role": "home_page"
  44. # }
  45. # Generators
  46. # ----------
  47. # automatically create page for each record of this doctype
  48. website_generators = ["Job Opening"]
  49. website_route_rules = [
  50. {"from_route": "/jobs", "to_route": "Job Opening"},
  51. ]
  52. # Jinja
  53. # ----------
  54. # add methods and filters to jinja environment
  55. jinja = {
  56. "methods": [
  57. "hrms.utils.get_country",
  58. ],
  59. }
  60. # Installation
  61. # ------------
  62. # before_install = "hrms.install.before_install"
  63. after_install = "hrms.setup.after_install"
  64. after_migrate = ["hrms.setup.update_select_perm_after_install"]
  65. # Uninstallation
  66. # ------------
  67. # before_uninstall = "hrms.uninstall.before_uninstall"
  68. # after_uninstall = "hrms.uninstall.after_uninstall"
  69. # Desk Notifications
  70. # ------------------
  71. # See frappe.core.notifications.get_notification_config
  72. # notification_config = "hrms.notifications.get_notification_config"
  73. # Permissions
  74. # -----------
  75. # Permissions evaluated in scripted ways
  76. # permission_query_conditions = {
  77. # "Event": "frappe.desk.doctype.event.event.get_permission_query_conditions",
  78. # }
  79. #
  80. # has_permission = {
  81. # "Event": "frappe.desk.doctype.event.event.has_permission",
  82. # }
  83. has_upload_permission = {
  84. "Employee": "erpnext.setup.doctype.employee.employee.has_upload_permission"
  85. }
  86. # DocType Class
  87. # ---------------
  88. # Override standard doctype classes
  89. override_doctype_class = {
  90. "Employee": "hrms.overrides.employee_master.EmployeeMaster",
  91. "Timesheet": "hrms.overrides.employee_timesheet.EmployeeTimesheet",
  92. "Payment Entry": "hrms.overrides.employee_payment_entry.EmployeePaymentEntry",
  93. "Project": "hrms.overrides.employee_project.EmployeeProject",
  94. }
  95. # Document Events
  96. # ---------------
  97. # Hook on document methods and events
  98. doc_events = {
  99. "User": {
  100. "validate": "erpnext.setup.doctype.employee.employee.validate_employee_role",
  101. "on_update": "erpnext.setup.doctype.employee.employee.update_user_permissions",
  102. },
  103. "Company": {
  104. "validate": "hrms.overrides.company.validate_default_accounts",
  105. "on_update": [
  106. "hrms.overrides.company.make_company_fixtures",
  107. "hrms.overrides.company.set_default_hr_accounts",
  108. ],
  109. },
  110. "Timesheet": {"validate": "hrms.hr.utils.validate_active_employee"},
  111. "Payment Entry": {
  112. "on_submit": "hrms.hr.doctype.expense_claim.expense_claim.update_payment_for_expense_claim",
  113. "on_cancel": "hrms.hr.doctype.expense_claim.expense_claim.update_payment_for_expense_claim",
  114. },
  115. "Journal Entry": {
  116. "validate": "hrms.hr.doctype.expense_claim.expense_claim.validate_expense_claim_in_jv",
  117. "on_submit": [
  118. "hrms.hr.doctype.expense_claim.expense_claim.update_payment_for_expense_claim",
  119. "hrms.hr.doctype.full_and_final_statement.full_and_final_statement.update_full_and_final_statement_status",
  120. ],
  121. "on_cancel": [
  122. "hrms.hr.doctype.expense_claim.expense_claim.update_payment_for_expense_claim",
  123. "hrms.payroll.doctype.salary_slip.salary_slip.unlink_ref_doc_from_salary_slip",
  124. "hrms.hr.doctype.full_and_final_statement.full_and_final_statement.update_full_and_final_statement_status",
  125. ],
  126. },
  127. "Loan": {"validate": "hrms.hr.utils.validate_loan_repay_from_salary"},
  128. "Employee": {
  129. "validate": [
  130. "hrms.overrides.employee_master.validate_onboarding_process",
  131. "hrms.overrides.employee_master.update_to_date_in_work_history",
  132. ],
  133. "on_update": "hrms.overrides.employee_master.update_approver_role",
  134. "on_trash": "hrms.overrides.employee_master.update_employee_transfer",
  135. },
  136. "Project": {
  137. "validate": "hrms.controllers.employee_boarding_controller.update_employee_boarding_status"
  138. },
  139. "Task": {"on_update": "hrms.controllers.employee_boarding_controller.update_task"},
  140. }
  141. # Scheduled Tasks
  142. # ---------------
  143. scheduler_events = {
  144. "all": [
  145. "hrms.hr.doctype.interview.interview.send_interview_reminder",
  146. ],
  147. "hourly": [
  148. "hrms.hr.doctype.daily_work_summary_group.daily_work_summary_group.trigger_emails",
  149. "hrms.hr.doctype.shift_type.shift_type.process_auto_attendance_for_all_shifts",
  150. ],
  151. "daily": [
  152. "hrms.controllers.employee_reminders.send_birthday_reminders",
  153. "hrms.controllers.employee_reminders.send_work_anniversary_reminders",
  154. "hrms.hr.doctype.daily_work_summary_group.daily_work_summary_group.send_summary",
  155. "hrms.hr.doctype.interview.interview.send_daily_feedback_reminder",
  156. ],
  157. "daily_long": [
  158. "hrms.hr.doctype.leave_ledger_entry.leave_ledger_entry.process_expired_allocation",
  159. "hrms.hr.utils.generate_leave_encashment",
  160. "hrms.hr.utils.allocate_earned_leaves",
  161. ],
  162. "weekly": ["hrms.controllers.employee_reminders.send_reminders_in_advance_weekly"],
  163. "monthly": ["hrms.controllers.employee_reminders.send_reminders_in_advance_monthly"],
  164. }
  165. advance_payment_doctypes = ["Gratuity", "Employee Advance"]
  166. invoice_doctypes = ["Expense Claim"]
  167. period_closing_doctypes = ["Payroll Entry"]
  168. accounting_dimension_doctypes = [
  169. "Expense Claim",
  170. "Expense Claim Detail",
  171. "Expense Taxes and Charges",
  172. "Payroll Entry",
  173. ]
  174. bank_reconciliation_doctypes = ["Expense Claim"]
  175. # Testing
  176. # -------
  177. before_tests = "hrms.utils.before_tests"
  178. # Overriding Methods
  179. # -----------------------------
  180. # get matching queries for Bank Reconciliation
  181. get_matching_queries = "hrms.hr.utils.get_matching_queries"
  182. regional_overrides = {
  183. "India": {
  184. "hrms.hr.utils.calculate_annual_eligible_hra_exemption": "hrms.regional.india.utils.calculate_annual_eligible_hra_exemption",
  185. "hrms.hr.utils.calculate_hra_exemption_for_period": "hrms.regional.india.utils.calculate_hra_exemption_for_period",
  186. },
  187. }
  188. # InfluxERP doctypes for Global Search
  189. global_search_doctypes = {
  190. "Default": [
  191. {"doctype": "Salary Slip", "index": 19},
  192. {"doctype": "Leave Application", "index": 20},
  193. {"doctype": "Expense Claim", "index": 21},
  194. {"doctype": "Employee Grade", "index": 37},
  195. {"doctype": "Job Opening", "index": 39},
  196. {"doctype": "Job Applicant", "index": 40},
  197. {"doctype": "Job Offer", "index": 41},
  198. {"doctype": "Salary Structure Assignment", "index": 42},
  199. {"doctype": "Appraisal", "index": 43},
  200. ],
  201. }
  202. # override_whitelisted_methods = {
  203. # "frappe.desk.doctype.event.event.get_events": "hrms.event.get_events"
  204. # }
  205. #
  206. # each overriding function accepts a `data` argument;
  207. # generated from the base implementation of the doctype dashboard,
  208. # along with any modifications made in other InfluxERP apps
  209. override_doctype_dashboards = {
  210. "Employee": "hrms.overrides.dashboard_overrides.get_dashboard_for_employee",
  211. "Holiday List": "hrms.overrides.dashboard_overrides.get_dashboard_for_holiday_list",
  212. "Task": "hrms.overrides.dashboard_overrides.get_dashboard_for_project",
  213. "Project": "hrms.overrides.dashboard_overrides.get_dashboard_for_project",
  214. "Timesheet": "hrms.overrides.dashboard_overrides.get_dashboard_for_timesheet",
  215. }
  216. # exempt linked doctypes from being automatically cancelled
  217. #
  218. # auto_cancel_exempted_doctypes = ["Auto Repeat"]
  219. # User Data Protection
  220. # --------------------
  221. # user_data_fields = [
  222. # {
  223. # "doctype": "{doctype_1}",
  224. # "filter_by": "{filter_by}",
  225. # "redact_fields": ["{field_1}", "{field_2}"],
  226. # "partial": 1,
  227. # },
  228. # {
  229. # "doctype": "{doctype_2}",
  230. # "filter_by": "{filter_by}",
  231. # "partial": 1,
  232. # },
  233. # {
  234. # "doctype": "{doctype_3}",
  235. # "strict": False,
  236. # },
  237. # {
  238. # "doctype": "{doctype_4}"
  239. # }
  240. # ]
  241. # Authentication and authorization
  242. # --------------------------------
  243. # auth_hooks = [
  244. # "hrms.auth.validate"
  245. # ]
  246. # Translation
  247. # --------------------------------
  248. # Make link fields search translated document names for these DocTypes
  249. # Recommended only for DocTypes which have limited documents with untranslated names
  250. # For example: Role, Gender, etc.
  251. # translated_search_doctypes = []