Open Source HR and Payroll Software
This report presents the forensic synthetic code analysis of frappe/hrms, a Python project with 8,692 GitHub stars. SynthScan v2.0 examined 140,791 lines of code across 1471 source files, recording 1402 pattern matches distributed across 12 syntactic categories. The overall adjusted score of 10.4 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 1402 distinct pattern matches across 12 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hrms/subscription_utils.py | 86 | def update_erpnext_workspaces(disable: bool = True): | CODE |
| LOW | hrms/telemetry.py | 64 | def on_leave_application_submit(doc, method=None): | CODE |
| LOW | hrms/telemetry.py | 97 | def on_attendance_request_submit(doc, method=None): | CODE |
| LOW | hrms/telemetry.py | 216 | def capture_daily_attendance_pulse(): | CODE |
| LOW | hrms/setup.py | 47 | def get_regional_custom_fields(): | CODE |
| LOW | hrms/setup.py | 588 | def create_default_role_profiles(): | CODE |
| LOW⚡ | hrms/setup.py | 642 | def create_salary_slip_loan_fields(): | CODE |
| LOW⚡ | hrms/setup.py | 647 | def add_lending_docperms_to_ess(): | CODE |
| LOW⚡ | hrms/setup.py | 657 | def remove_lending_docperms_from_ess(): | CODE |
| LOW | hrms/setup.py | 671 | def add_non_standard_user_types(): | CODE |
| LOW | hrms/setup.py | 722 | def get_lending_docperms_for_ess(): | CODE |
| LOW | hrms/setup.py | 762 | def append_docperms_to_user_type(docperms, doc): | CODE |
| LOW | hrms/setup.py | 776 | def update_select_perm_after_install(): | CODE |
| LOW | hrms/setup.py | 816 | def get_salary_slip_loan_fields(): | CODE |
| LOW | hrms/setup.py | 937 | def add_default_hr_permissions(): | CODE |
| LOW | hrms/overrides/dashboard_overrides.py | 7 | def get_dashboard_for_employee(data): | CODE |
| LOW⚡ | hrms/overrides/dashboard_overrides.py | 89 | def get_dashboard_for_holiday_list(data): | CODE |
| LOW⚡ | hrms/overrides/dashboard_overrides.py | 97 | def get_dashboard_for_timesheet(data): | CODE |
| LOW⚡ | hrms/overrides/dashboard_overrides.py | 103 | def get_dashboard_for_project(data): | CODE |
| LOW⚡ | hrms/overrides/dashboard_overrides.py | 111 | def get_dashboard_for_bank_account(data): | CODE |
| LOW | hrms/overrides/company.py | 119 | def validate_default_accounts(doc, method=None): | CODE |
| LOW | hrms/overrides/company.py | 142 | def delete_docs_with_company_field(doc, method=None): | CODE |
| LOW | hrms/overrides/company.py | 153 | def clear_company_field_for_single_doctypes(doc): | CODE |
| LOW | hrms/overrides/company.py | 168 | def get_single_doctypes_with_company_field(): | CODE |
| LOW | hrms/overrides/employee_payment_entry.py | 21 | def get_valid_reference_doctypes(self): | CODE |
| LOW | hrms/overrides/employee_payment_entry.py | 76 | def get_payment_entry_for_employee( | CODE |
| LOW | hrms/overrides/employee_payment_entry.py | 166 | def get_grand_total_and_outstanding_amount(doc, party_amount, party_account_currency): | CODE |
| LOW | hrms/overrides/employee_payment_entry.py | 201 | def get_paid_amount_and_received_amount( | CODE |
| LOW | hrms/overrides/employee_payment_entry.py | 232 | def get_payment_reference_details( | CODE |
| LOW | hrms/overrides/employee_payment_entry.py | 249 | def get_reference_details_for_employee( | CODE |
| LOW | hrms/overrides/employee_payment_entry.py | 289 | def get_total_amount_and_exchange_rate(ref_doc, party_account_currency, company_currency): | CODE |
| LOW | hrms/overrides/employee_payment_entry.py | 325 | def set_exchange_rate_in_advance(doc: Document, method: None = None): | CODE |
| LOW | hrms/overrides/employee_master.py | 31 | def validate_onboarding_process(doc, method=None): | CODE |
| LOW | hrms/overrides/employee_master.py | 56 | def update_job_applicant_and_offer(doc, method=None): | CODE |
| LOW | hrms/overrides/employee_master.py | 103 | def update_approver_user_roles(doc, method=None): | CODE |
| LOW⚡ | hrms/patches/v16_0/create_holiday_list_assignments.py | 19 | def create_holiday_list_assignment(entity_details): | CODE |
| LOW⚡ | hrms/patches/v16_0/create_holiday_list_assignments.py | 27 | def get_employee_holiday_details(): | CODE |
| LOW | hrms/patches/v16_0/create_holiday_list_assignments.py | 49 | def get_company_holiday_details(): | CODE |
| LOW | …_0/call_set_total_advance_paid_on_advance_documents.py | 17 | def call_set_total_advance_paid(doctype) -> list: | CODE |
| LOW | …ches/post_install/update_performance_module_changes.py | 68 | def update_kra_evaluation_method(): | CODE |
| LOW | hrms/tests/test_utils.py | 71 | def get_first_day_for_prev_month(): | CODE |
| LOW | hrms/tests/test_roster.py | 9 | def test_get_shifts_returns_shift_type_details(self): | CODE |
| LOW | hrms/tests/test_roster.py | 29 | def test_insert_shift_ignores_cancelled_assignment(self): | CODE |
| LOW⚡ | hrms/tests/test_sidebar_fixtures.py | 68 | def test_every_semantic_module_ships_one(self): | CODE |
| LOW⚡ | hrms/tests/test_sidebar_fixtures.py | 75 | def test_they_declare_the_renamed_doctype(self): | CODE |
| LOW⚡ | hrms/tests/test_sidebar_fixtures.py | 82 | def test_the_module_walk_picks_them_up(self): | CODE |
| LOW⚡ | hrms/tests/test_sidebar_fixtures.py | 90 | def test_record_name_and_filename_agree(self): | CODE |
| LOW | hrms/tests/test_sidebar_fixtures.py | 111 | def test_a_module_resolves_to_the_items_its_fixture_ships(self): | CODE |
| LOW | hrms/tests/test_sidebar_fixtures.py | 125 | def test_the_label_and_icon_are_the_fixture_s(self): | CODE |
| LOW | hrms/tests/test_sidebar_fixtures.py | 134 | def test_a_module_opens_on_its_own_navigation(self): | CODE |
| LOW | hrms/tests/utils.py | 129 | def make_holiday_list_assignment(self): | CODE |
| LOW | hrms/tests/utils.py | 335 | def update_email_account_settings(self): | CODE |
| LOW | hrms/tests/test_telemetry.py | 93 | def test_daily_pulse_summarises_yesterday_not_today(self): | CODE |
| LOW | hrms/tests/test_telemetry.py | 121 | def test_daily_pulse_reports_zero_when_only_today_has_checkins(self): | CODE |
| LOW | hrms/tests/test_telemetry.py | 137 | def test_daily_pulse_weekday_describes_the_summarised_day(self): | CODE |
| LOW⚡ | hrms/tests/test_telemetry.py | 150 | def test_milestone_fires_for_doctype_seeded_at_install(self): | CODE |
| LOW⚡ | hrms/tests/test_telemetry.py | 160 | def test_milestone_fires_only_once_per_site(self): | CODE |
| LOW⚡ | hrms/tests/test_telemetry.py | 168 | def test_milestone_carries_day_since_install(self): | CODE |
| LOW⚡ | hrms/tests/test_telemetry.py | 175 | def test_milestone_skipped_outside_activation_window(self): | CODE |
| LOW | hrms/tests/test_telemetry.py | 192 | def test_claim_loses_to_a_row_written_by_another_transaction(self): | CODE |
| 1096 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | hrms/hooks.py | 78 | # ---------- | COMMENT |
| MEDIUM⚡ | hrms/hooks.py | 88 | # ---------- | COMMENT |
| MEDIUM⚡ | hrms/hooks.py | 98 | # ------------ | COMMENT |
| MEDIUM⚡ | hrms/hooks.py | 107 | # ------------ | COMMENT |
| MEDIUM⚡ | hrms/hooks.py | 113 | # ---------------- | COMMENT |
| MEDIUM⚡ | hrms/hooks.py | 119 | # ------------------ | COMMENT |
| MEDIUM⚡ | hrms/hooks.py | 127 | # ------------------- | COMMENT |
| MEDIUM⚡ | hrms/hooks.py | 135 | # ------------------ | COMMENT |
| MEDIUM⚡ | hrms/hooks.py | 141 | # ----------- | COMMENT |
| MEDIUM | hrms/hooks.py | 24 | # ------------------ | COMMENT |
| MEDIUM | hrms/hooks.py | 65 | # ---------- | COMMENT |
| MEDIUM | hrms/hooks.py | 155 | # --------------- | COMMENT |
| MEDIUM | hrms/hooks.py | 166 | # --------------- | COMMENT |
| MEDIUM | hrms/hooks.py | 249 | # --------------- | COMMENT |
| MEDIUM | hrms/hooks.py | 303 | # ----------------------------- | COMMENT |
| MEDIUM | hrms/hooks.py | 354 | # -------------------- | COMMENT |
| MEDIUM | hrms/hooks.py | 378 | # -------------------------------- | COMMENT |
| MEDIUM | hrms/hooks.py | 385 | # -------------------------------- | COMMENT |
| MEDIUM | hrms/payroll/doctype/salary_slip/test_salary_slip.py | 1238 | # ------------------------------------ | COMMENT |
| MEDIUM⚡ | hrms/controllers/employee_reminders.py | 15 | # ----------------- | COMMENT |
| MEDIUM⚡ | hrms/controllers/employee_reminders.py | 17 | # ----------------- | COMMENT |
| MEDIUM | hrms/controllers/employee_reminders.py | 86 | # ------------------ | COMMENT |
| MEDIUM | hrms/controllers/employee_reminders.py | 88 | # ------------------ | COMMENT |
| MEDIUM⚡ | hrms/controllers/employee_reminders.py | 198 | # -------------------------- | COMMENT |
| MEDIUM⚡ | hrms/controllers/employee_reminders.py | 200 | # -------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hrms/subscription_utils.py | 107 | except Exception: | CODE |
| LOW | hrms/subscription_utils.py | 119 | except Exception: | CODE |
| LOW | hrms/uninstall.py | 11 | except Exception as e: | CODE |
| MEDIUM | hrms/uninstall.py | 6 | def before_uninstall(): | CODE |
| LOW | hrms/install.py | 13 | except Exception as e: | CODE |
| MEDIUM | hrms/install.py | 6 | def after_install(): | CODE |
| LOW | hrms/overrides/company.py | 34 | except Exception as e: | CODE |
| LOW | hrms/overrides/company.py | 47 | except Exception as e: | CODE |
| LOW | hrms/overrides/company.py | 61 | except Exception: | CODE |
| LOW | hrms/overrides/company.py | 86 | except Exception as e: | CODE |
| MEDIUM | hrms/overrides/company.py | 41 | def run_regional_setup(country): | CODE |
| MEDIUM | hrms/overrides/company.py | 54 | def get_error_message(error) -> str: | CODE |
| LOW⚡ | hrms/patches/v16_0/create_holiday_list_assignments.py | 15 | except Exception as e: | CODE |
| LOW | …hes/v15_0/rename_and_update_leave_encashment_fields.py | 9 | except Exception as e: | CODE |
| MEDIUM | …hes/v15_0/rename_and_update_leave_encashment_fields.py | 5 | def execute(): | CODE |
| LOW | …_0/call_set_total_advance_paid_on_advance_documents.py | 35 | except Exception as e: | CODE |
| LOW | …laim_date_to_payroll_date_in_employee_benefit_claim.py | 10 | except Exception as e: | CODE |
| MEDIUM | …laim_date_to_payroll_date_in_employee_benefit_claim.py | 5 | def execute(): | CODE |
| LOW | …_0/rename_enable_late_entry_early_exit_grace_period.py | 9 | except Exception as e: | CODE |
| MEDIUM | …_0/rename_enable_late_entry_early_exit_grace_period.py | 4 | def execute(): | CODE |
| LOW | hrms/patches/v15_0/migrate_loan_type_to_loan_product.py | 8 | except Exception as e: | CODE |
| MEDIUM | hrms/patches/v15_0/migrate_loan_type_to_loan_product.py | 4 | def execute(): | CODE |
| LOW | …ve_tax_slabs_from_payroll_period_to_income_tax_slab.py | 111 | except Exception: | STRING |
| LOW | …ve_tax_slabs_from_payroll_period_to_income_tax_slab.py | 139 | except Exception: | STRING |
| LOW | …ches/post_install/update_performance_module_changes.py | 63 | except Exception as e: | CODE |
| MEDIUM | …ches/post_install/update_performance_module_changes.py | 58 | def rename_fields(): | CODE |
| LOW | …post_install/rename_stop_to_send_birthday_reminders.py | 17 | except Exception as e: | CODE |
| LOW | hrms/utils/__init__.py | 27 | except Exception: | CODE |
| LOW⚡ | hrms/hr/utils.py | 387 | except Exception as e: | CODE |
| LOW | …shift_schedule_assignment/shift_schedule_assignment.py | 158 | except Exception as e: | CODE |
| LOW | hrms/hr/doctype/shift_type/shift_type.py | 163 | except Exception as e: | CODE |
| LOW | …ms/hr/doctype/daily_work_summary/daily_work_summary.py | 98 | except Exception: | CODE |
| LOW | hrms/hr/doctype/pwa_notification/pwa_notification.py | 49 | except Exception: | CODE |
| MEDIUM | hrms/hr/doctype/pwa_notification/pwa_notification.py | 33 | def send_push_notification(self): | CODE |
| LOW | …/hr/doctype/leave_control_panel/leave_control_panel.py | 85 | except Exception: | CODE |
| LOW | …/hr/doctype/leave_control_panel/leave_control_panel.py | 126 | except Exception: | CODE |
| LOW | hrms/hr/doctype/overtime_slip/overtime_slip.py | 483 | except Exception as e: | CODE |
| LOW | hrms/hr/doctype/overtime_slip/overtime_slip.py | 516 | except Exception as e: | CODE |
| LOW | hrms/hr/doctype/interview/interview.py | 144 | except Exception: | CODE |
| LOW | hrms/hr/doctype/interview/interview.py | 238 | except Exception: | CODE |
| LOW | …doctype/shift_assignment_tool/shift_assignment_tool.py | 262 | except Exception: | CODE |
| LOW | …doctype/shift_assignment_tool/shift_assignment_tool.py | 314 | except Exception: | CODE |
| LOW | …ype/leave_policy_assignment/leave_policy_assignment.py | 509 | except Exception: | CODE |
| MEDIUM | hrms/api/__init__.py | 131 | def are_push_notifications_enabled() -> bool: | CODE |
| LOW | hrms/api/__init__.py | 812 | except Exception as e: | CODE |
| LOW | …eport/income_tax_computation/income_tax_computation.py | 173 | except Exception: | CODE |
| LOW | hrms/payroll/doctype/income_tax_slab/income_tax_slab.py | 127 | except Exception as e: | CODE |
| LOW | …ctype/employee_benefit_claim/employee_benefit_claim.py | 229 | except Exception as e: | CODE |
| LOW | …ry_structure_assignment/salary_structure_assignment.py | 455 | except Exception as exc: | CODE |
| MEDIUM | hrms/payroll/doctype/salary_slip/salary_slip.py | 1395 | def eval_condition_and_formula(self, struct_row, data): | CODE |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 1422 | except Exception as exc: | CODE |
| LOW | …s/payroll/doctype/salary_structure/salary_structure.py | 289 | except Exception: | CODE |
| LOW | …ructure_assignment/bulk_salary_structure_assignment.py | 118 | except Exception: | CODE |
| MEDIUM | hrms/payroll/doctype/payroll_entry/payroll_entry.py | 1698 | def submit_salary_slips_for_employees(payroll_entry, salary_slips, publish_progr | CODE |
| LOW | hrms/payroll/doctype/payroll_entry/payroll_entry.py | 718 | except Exception as e: | CODE |
| LOW | hrms/payroll/doctype/payroll_entry/payroll_entry.py | 1589 | except Exception: | CODE |
| LOW | hrms/payroll/doctype/payroll_entry/payroll_entry.py | 1644 | except Exception as e: | CODE |
| LOW | hrms/payroll/doctype/payroll_entry/payroll_entry.py | 1729 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | hrms/hr/utils.py | 206 | # hack! if name is null, it could cause problems with != | COMMENT |
| HIGH | hrms/hr/utils.py | 206 | # hack! if name is null, it could cause problems with != | COMMENT |
| HIGH | hrms/hr/doctype/leave_application/leave_application.py | 506 | # hack! if name is null, it could cause problems with != | COMMENT |
| HIGH | hrms/hr/doctype/leave_application/leave_application.py | 506 | # hack! if name is null, it could cause problems with != | COMMENT |
| HIGH | hrms/regional/india/setup.py | 240 | "depends_on": "eval:doc.tax_relief_limit > 0 && doc.currency == 'INR'", | CODE |
| HIGH | hrms/payroll/doctype/payroll_period/payroll_period.py | 41 | # hack! if name is null, it could cause problems with != | COMMENT |
| HIGH | hrms/payroll/doctype/payroll_period/payroll_period.py | 41 | # hack! if name is null, it could cause problems with != | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ng_on_a_holiday/test_employees_working_on_a_holiday.py | 1 | CODE | |
| LOW | hrms/hr/report/leave_ledger/test_leave_ledger.py | 2 | CODE | |
| LOW | hrms/hr/report/leave_ledger/test_leave_ledger.py | 9 | CODE | |
| LOW | …r/report/employee_analytics/test_employee_analytics.py | 2 | CODE | |
| LOW | …t/monthly_attendance_sheet/monthly_attendance_sheet.py | 16 | CODE | |
| LOW | …t/monthly_attendance_sheet/monthly_attendance_sheet.py | 16 | CODE | |
| LOW | hrms/hr/doctype/attendance/test_attendance.py | 7 | CODE | |
| LOW | hrms/hr/doctype/attendance/test_attendance.py | 7 | CODE | |
| LOW | hrms/hr/doctype/job_applicant/test_job_applicant.py | 5 | CODE | |
| LOW | hrms/hr/doctype/leave_period/test_leave_period.py | 6 | CODE | |
| LOW | hrms/hr/doctype/leave_period/test_leave_period.py | 8 | CODE | |
| LOW | hrms/hr/doctype/shift_type/test_shift_type.py | 6 | CODE | |
| LOW | hrms/hr/doctype/employment_type/test_employment_type.py | 4 | CODE | |
| LOW | …/doctype/attendance_request/test_attendance_request.py | 13 | CODE | |
| LOW | …octype/employee_onboarding/test_employee_onboarding.py | 13 | CODE | |
| LOW | hrms/hr/doctype/overtime_type/test_overtime_type.py | 8 | CODE | |
| LOW | …s/hr/doctype/employee_checkin/test_employee_checkin.py | 7 | CODE | |
| LOW | …s/hr/doctype/employee_checkin/test_employee_checkin.py | 7 | CODE | |
| LOW | …s/hr/doctype/employee_checkin/test_employee_checkin.py | 19 | CODE | |
| LOW | …s/hr/doctype/employee_checkin/test_employee_checkin.py | 29 | CODE | |
| LOW | …doctype/leave_allocation/test_earned_leave_schedule.py | 5 | CODE | |
| LOW | hrms/hr/doctype/interview_type/interview_type.py | 5 | CODE | |
| LOW | hrms/hr/doctype/overtime_slip/overtime_slip.py | 5 | CODE | |
| LOW | hrms/hr/doctype/overtime_slip/overtime_slip.py | 6 | CODE | |
| LOW | hrms/hr/doctype/overtime_slip/overtime_slip.py | 10 | CODE | |
| LOW | hrms/hr/doctype/overtime_slip/overtime_slip.py | 13 | CODE | |
| LOW | …ms/hr/doctype/appraisal_template/appraisal_template.py | 5 | CODE | |
| LOW | …ms/hr/doctype/appraisal_template/appraisal_template.py | 6 | CODE | |
| LOW | …ms/hr/doctype/appraisal_template/appraisal_template.py | 8 | CODE | |
| LOW | …final_statement/full_and_final_statement_loan_utils.py | 7 | CODE | |
| LOW | …final_statement/full_and_final_statement_loan_utils.py | 12 | CODE | |
| LOW | …s/hr/doctype/leave_adjustment/test_leave_adjustment.py | 7 | CODE | |
| LOW | hrms/hr/doctype/leave_encashment/leave_encashment.py | 7 | CODE | |
| LOW | hrms/hr/doctype/leave_application/leave_application.py | 28 | CODE | |
| LOW | …hr/doctype/leave_application/test_leave_application.py | 38 | CODE | |
| LOW | hrms/hr/doctype/goal/goal.py | 4 | CODE | |
| LOW | hrms/hr/doctype/goal/test_goal.py | 9 | CODE | |
| LOW | hrms/api/oauth.py | 6 | CODE | |
| LOW | …ort/accrued_earnings_report/accrued_earnings_report.py | 7 | CODE | |
| LOW | …ort/employee_ctc_break_up/test_employee_ctc_breakup.py | 6 | CODE | |
| LOW | …declaration/test_employee_tax_exemption_declaration.py | 7 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 11 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 11 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 11 | CODE | |
| LOW | …/payroll/doctype/salary_slip/salary_slip_loan_utils.py | 10 | CODE | |
| LOW | …roll/doctype/salary_structure/test_salary_structure.py | 5 | CODE | |
| LOW | …roll/doctype/salary_structure/test_salary_structure.py | 8 | CODE | |
| LOW | …ll/doctype/additional_salary/test_additional_salary.py | 7 | CODE | |
| LOW | …ms/payroll/doctype/payroll_entry/test_payroll_entry.py | 4 | CODE | |
| LOW | …ms/payroll/doctype/payroll_entry/test_payroll_entry.py | 10 | CODE | |
| LOW | …ms/payroll/doctype/payroll_entry/test_payroll_entry.py | 11 | CODE | |
| LOW | …ms/payroll/doctype/payroll_entry/test_payroll_entry.py | 31 | CODE | |
| LOW | hrms/payroll/doctype/payroll_period/payroll_period.py | 8 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hrms/setup.py | 569 | CODE | |
| LOW | hrms/overrides/employee_payment_entry.py | 166 | CODE | |
| LOW | hrms/overrides/employee_payment_entry.py | 201 | CODE | |
| LOW | hrms/overrides/employee_payment_entry.py | 249 | CODE | |
| LOW | hrms/overrides/employee_payment_entry.py | 289 | CODE | |
| LOW | hrms/overrides/employee_payment_entry.py | 21 | CODE | |
| LOW | hrms/overrides/employee_payment_entry.py | 31 | CODE | |
| LOW | hrms/overrides/employee_master.py | 15 | CODE | |
| LOW | hrms/utils/holiday_list.py | 245 | CODE | |
| LOW | hrms/www/jobs/index.py | 112 | CODE | |
| LOW | hrms/hr/utils.py | 101 | CODE | |
| LOW | hrms/hr/utils.py | 190 | CODE | |
| LOW | …t/monthly_attendance_sheet/monthly_attendance_sheet.py | 273 | CODE | |
| LOW | …t/monthly_attendance_sheet/monthly_attendance_sheet.py | 710 | CODE | |
| LOW | …t/monthly_attendance_sheet/monthly_attendance_sheet.py | 798 | CODE | |
| LOW | hrms/hr/report/shift_attendance/shift_attendance.py | 245 | CODE | |
| LOW | hrms/hr/doctype/attendance/attendance.py | 416 | CODE | |
| LOW | hrms/hr/doctype/expense_claim/expense_claim.py | 122 | CODE | |
| LOW | hrms/hr/doctype/expense_claim/expense_claim.py | 402 | CODE | |
| LOW | …ms/hr/doctype/daily_work_summary/daily_work_summary.py | 59 | CODE | |
| LOW | …ms/hr/doctype/attendance_request/attendance_request.py | 312 | CODE | |
| LOW | …/hr/doctype/employee_onboarding/employee_onboarding.py | 69 | CODE | |
| LOW | hrms/hr/doctype/employee_checkin/employee_checkin.py | 399 | CODE | |
| LOW | hrms/hr/doctype/shift_assignment/shift_assignment.py | 488 | CODE | |
| LOW | …final_statement/full_and_final_statement_loan_utils.py | 16 | CODE | |
| LOW | hrms/hr/doctype/leave_application/leave_application.py | 1306 | CODE | |
| LOW | hrms/hr/doctype/leave_application/leave_application.py | 188 | CODE | |
| LOW | hrms/hr/doctype/leave_application/leave_application.py | 308 | CODE | |
| LOW | hrms/hr/doctype/vehicle_log/vehicle_log.py | 49 | CODE | |
| LOW | hrms/hr/doctype/employee_advance/employee_advance.py | 137 | CODE | |
| LOW | hrms/api/__init__.py | 256 | CODE | |
| LOW | hrms/regional/india/utils.py | 11 | CODE | |
| LOW | hrms/regional/india/utils.py | 144 | CODE | |
| LOW | …yroll/doctype/salary_withholding/salary_withholding.py | 216 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 366 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 843 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 1187 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 1642 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 2069 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 2160 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/test_salary_slip.py | 2326 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/test_salary_slip.py | 822 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/test_salary_slip.py | 925 | CODE | |
| LOW | hrms/payroll/doctype/arrear/arrear.py | 251 | CODE | |
| LOW | …s/payroll/doctype/salary_structure/salary_structure.py | 91 | CODE | |
| LOW | hrms/payroll/doctype/payroll_entry/payroll_entry.py | 1462 | CODE | |
| LOW | hrms/payroll/doctype/payroll_entry/payroll_entry.py | 1698 | CODE | |
| LOW | hrms/payroll/doctype/payroll_entry/payroll_entry.py | 440 | CODE | |
| LOW | hrms/payroll/doctype/payroll_entry/payroll_entry.py | 956 | CODE | |
| LOW | hrms/payroll/doctype/gratuity/gratuity.py | 234 | CODE | |
| LOW | .github/helper/documentation.py | 11 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hrms/utils/holiday_list.py | 204 | CODE | |
| LOW | …oard_chart_source/employees_by_age/employees_by_age.py | 15 | CODE | |
| LOW | …hiring_vs_attrition_count/hiring_vs_attrition_count.py | 15 | CODE | |
| LOW | …hiring_vs_attrition_count/hiring_vs_attrition_count.py | 78 | CODE | |
| LOW | hrms/hr/report/employee_exits/employee_exits.py | 125 | CODE | |
| LOW | hrms/hr/report/leave_ledger/leave_ledger.py | 166 | CODE | |
| LOW | …/report/project_profitability/project_profitability.py | 19 | CODE | |
| LOW | hrms/hr/report/shift_attendance/shift_attendance.py | 242 | CODE | |
| LOW | hrms/hr/report/shift_attendance/shift_attendance.py | 297 | CODE | |
| LOW | …e/employee_attendance_tool/employee_attendance_tool.py | 63 | CODE | |
| LOW | …e/employee_attendance_tool/employee_attendance_tool.py | 170 | CODE | |
| LOW | hrms/hr/doctype/leave_allocation/test_earned_leaves.py | 1198 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/test_salary_slip.py | 2588 | CODE | |
| LOW | …roll/doctype/salary_structure/test_salary_structure.py | 164 | CODE | |
| LOW | …roll/doctype/salary_structure/test_salary_structure.py | 256 | CODE | |
| LOW | …s/payroll/doctype/salary_structure/salary_structure.py | 393 | CODE | |
| LOW | …s/payroll/doctype/salary_structure/salary_structure.py | 202 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | …/doctype/attendance_request/test_attendance_request.py | 147 | include_holidays=1, # Set include_holidays to True | CODE |
| LOW⚡ | …/doctype/attendance_request/test_attendance_request.py | 150 | # Check if the attendance record is created on the holiday | COMMENT |
| LOW | …ms/hr/doctype/attendance_request/attendance_request.py | 224 | # Check if attendance_date is a holiday | COMMENT |
| LOW | …ms/hr/doctype/attendance_request/attendance_request.py | 233 | # Check if employee is on leave | COMMENT |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 2510 | # Check if Employee Benefit Application exists | COMMENT |
| LOW | hrms/payroll/doctype/salary_slip/test_salary_slip.py | 1861 | # Check if zero value component is included in salary slip based on component settings | COMMENT |
| LOW | …ms/payroll/doctype/payroll_entry/test_payroll_entry.py | 1072 | # Check if employee benefits have been fetched to accrued benefits table | COMMENT |
| LOW | …ms/payroll/doctype/payroll_entry/test_payroll_entry.py | 1087 | # Check if employee benefit ledger entries have been created for each component | COMMENT |
| LOW | …ms/payroll/doctype/payroll_entry/test_payroll_entry.py | 1101 | # Check if Employee Benefit Ledger exists for Accrued Earnings Component | COMMENT |
| LOW | .github/workflows/run-individual-tests.yml | 35 | # Loop through array and create JSON objects | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | hrms/tests/test_roster.py | 40 | # Create a shift assignment with a date range, submit it, then cancel it | COMMENT |
| MEDIUM⚡ | …/doctype/attendance_request/test_attendance_request.py | 138 | # Create a holiday on today's date | COMMENT |
| MEDIUM⚡ | …/doctype/attendance_request/test_attendance_request.py | 142 | # Create an Attendance Request with include_holidays checked | COMMENT |
| MEDIUM | hrms/controllers/tests/test_employee_reminders.py | 24 | # Create a test holiday list | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hrms/hooks.py | 61 | # doctype_tree_js = {"doctype" : "public/js/doctype_tree.js"} | COMMENT |
| LOW | hrms/hooks.py | 121 | # Name of the app being installed is passed as an argument | COMMENT |
| LOW | hrms/hooks.py | 141 | # ----------- | COMMENT |
| LOW | hrms/hooks.py | 361 | # "partial": 1, | COMMENT |
| LOW | hrms/tests/test_sidebar_fixtures.py | 21 | import json | COMMENT |
| LOW | …ployee_feedback_criteria/employee_feedback_criteria.js | 1 | // Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors | COMMENT |
| LOW | …shift_schedule_assignment/shift_schedule_assignment.js | 1 | // Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors | COMMENT |
| LOW | hrms/hr/doctype/overtime_type/overtime_type.js | 1 | // Copyright (c) 2024, Frappe Technologies Pvt. Ltd. and contributors | COMMENT |
| LOW | hrms/hr/doctype/pwa_notification/pwa_notification.js | 1 | // Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors | COMMENT |
| LOW | …ype/job_offer_term_template/job_offer_term_template.js | 1 | // Copyright (c) 2023, Frappe Technologies Pvt. Ltd. and contributors | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hrms/hr/doctype/leave_block_list/leave_block_list.py | 42 | def set_weekly_off_dates(self, start_date: str, end_date: str, days: list, reason: str) -> None: | CODE |
| LOW | hrms/hr/doctype/goal/goal.py | 229 | def update_progress(progress: float, goal: str) -> None: | CODE |
| LOW | hrms/hr/doctype/goal/goal.py | 239 | def update_status(status: str, goals: str | list) -> None: | CODE |
| LOW | …ry_structure_assignment/salary_structure_assignment.py | 187 | def set_payroll_cost_centers(self) -> None: | CODE |
| LOW | …ee_benefit_application/employee_benefit_application.py | 88 | def set_benefit_components_and_currency(self) -> None: | CODE |
| LOW | …yroll/doctype/salary_withholding/salary_withholding.py | 91 | def set_withholding_cycles_and_to_date(self) -> None: | CODE |
| LOW | …yroll/doctype/salary_withholding/salary_withholding.py | 192 | def _update_payment_status_in_payroll(withholdings: list[dict], cancel: bool = False) -> None: | CODE |
| LOW | …yroll/doctype/salary_withholding/salary_withholding.py | 216 | def _update_salary_withholdings(withholdings: list[dict], cancel: bool = False) -> None: | CODE |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 1273 | def _set_evaluated_components(self) -> None: | CODE |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 2346 | def set_totals(self) -> None: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hrms/telemetry.py | 222 | # Nothing set up yet — a zero-employee site would just add noise. | COMMENT |