Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 
 

309 linhas
9.3 KiB

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