Open Source HR and Payroll Software
This report presents the forensic synthetic code analysis of frappe/hrms, a Python project with 8,208 GitHub stars. SynthScan v2.0 examined 137,257 lines of code across 1428 source files, recording 1357 pattern matches distributed across 11 syntactic categories. The overall adjusted score of 10.1 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 1357 distinct pattern matches across 11 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/setup.py | 533 | def create_default_role_profiles(): | CODE |
| LOW⚡ | hrms/setup.py | 587 | def create_salary_slip_loan_fields(): | CODE |
| LOW⚡ | hrms/setup.py | 592 | def add_lending_docperms_to_ess(): | CODE |
| LOW⚡ | hrms/setup.py | 602 | def remove_lending_docperms_from_ess(): | CODE |
| LOW | hrms/setup.py | 616 | def add_non_standard_user_types(): | CODE |
| LOW | hrms/setup.py | 667 | def get_lending_docperms_for_ess(): | CODE |
| LOW | hrms/setup.py | 707 | def append_docperms_to_user_type(docperms, doc): | CODE |
| LOW | hrms/setup.py | 721 | def update_select_perm_after_install(): | CODE |
| LOW | hrms/setup.py | 761 | def get_salary_slip_loan_fields(): | CODE |
| LOW | hrms/setup.py | 859 | 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 | 71 | def get_dashboard_for_holiday_list(data): | CODE |
| LOW⚡ | hrms/overrides/dashboard_overrides.py | 79 | def get_dashboard_for_timesheet(data): | CODE |
| LOW⚡ | hrms/overrides/dashboard_overrides.py | 85 | def get_dashboard_for_project(data): | CODE |
| LOW⚡ | hrms/overrides/dashboard_overrides.py | 93 | 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 | 29 | def validate_onboarding_process(doc, method=None): | CODE |
| LOW | hrms/overrides/employee_master.py | 54 | def update_job_applicant_and_offer(doc, method=None): | CODE |
| LOW | hrms/overrides/employee_master.py | 101 | 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/utils.py | 128 | def make_holiday_list_assignment(self): | CODE |
| LOW | hrms/tests/utils.py | 331 | def update_email_account_settings(self): | CODE |
| LOW | hrms/utils/holiday_list.py | 8 | def get_holiday_dates_between( | CODE |
| LOW | hrms/utils/holiday_list.py | 35 | def get_holiday_dates_between_range( | CODE |
| LOW | hrms/utils/holiday_list.py | 96 | def get_holiday_list_for_employee( | CODE |
| LOW | hrms/utils/holiday_list.py | 119 | def get_assigned_holiday_list(assigned_to: str, as_on=None, as_dict: bool = False) -> str: | CODE |
| LOW | hrms/utils/holiday_list.py | 142 | def get_assigned_holiday_lists_to_employee_and_company( | CODE |
| LOW | hrms/utils/holiday_list.py | 207 | def build_effective_date_ranges_for_holiday_assignments( | CODE |
| LOW | hrms/utils/holiday_list.py | 245 | def fill_employee_holiday_list_date_gaps_with_company_holiday_list( | CODE |
| LOW | hrms/www/jobs/index.py | 112 | def get_filters_txt_sort_offset(page_len=20): | CODE |
| LOW⚡ | hrms/hr/utils.py | 395 | def get_upcoming_earned_leave_from_schedule(allocation_name, today): | CODE |
| LOW⚡ | hrms/hr/utils.py | 403 | def get_annual_allocation_from_policy(allocation, e_leave_type): | CODE |
| LOW⚡ | hrms/hr/utils.py | 411 | def calculate_upcoming_earned_leave(allocation, e_leave_type, date_of_joining): | CODE |
| LOW⚡ | hrms/hr/utils.py | 747 | def calculate_annual_eligible_hra_exemption(doc): | CODE |
| LOW⚡ | hrms/hr/utils.py | 754 | def calculate_hra_exemption_for_period(doc): | CODE |
| LOW⚡ | hrms/hr/utils.py | 761 | def calculate_tax_with_marginal_relief(tax_slab, tax_amount, annual_taxable_earning): | CODE |
| LOW⚡ | hrms/hr/utils.py | 767 | def get_previous_claimed_amount(employee, payroll_period, non_pro_rata=False, component=False): | CODE |
| LOW | hrms/hr/utils.py | 61 | def update_employee_work_history(employee, details, date=None, cancel=False): | CODE |
| LOW | hrms/hr/utils.py | 129 | def delete_employee_work_history(details, employee, date): | CODE |
| LOW | hrms/hr/utils.py | 149 | def update_to_date_in_work_history(employee, cancel): | CODE |
| LOW | hrms/hr/utils.py | 166 | def get_employee_field_property(employee: str, fieldname: str): | CODE |
| LOW | hrms/hr/utils.py | 259 | def validate_duplicate_exemption_for_payroll_period(doctype, docname, payroll_period, employee): | CODE |
| 1051 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 | 121 | # ------------------- | COMMENT |
| MEDIUM⚡ | hrms/hooks.py | 129 | # ------------------ | COMMENT |
| MEDIUM⚡ | hrms/hooks.py | 135 | # ----------- | COMMENT |
| MEDIUM | hrms/hooks.py | 24 | # ------------------ | COMMENT |
| MEDIUM | hrms/hooks.py | 65 | # ---------- | COMMENT |
| MEDIUM | hrms/hooks.py | 149 | # --------------- | COMMENT |
| MEDIUM | hrms/hooks.py | 160 | # --------------- | COMMENT |
| MEDIUM | hrms/hooks.py | 222 | # --------------- | COMMENT |
| MEDIUM | hrms/hooks.py | 275 | # ----------------------------- | COMMENT |
| MEDIUM | hrms/hooks.py | 326 | # -------------------- | COMMENT |
| MEDIUM | hrms/hooks.py | 350 | # -------------------------------- | COMMENT |
| MEDIUM | hrms/hooks.py | 357 | # -------------------------------- | COMMENT |
| MEDIUM | hrms/payroll/doctype/salary_slip/test_salary_slip.py | 1227 | # ------------------------------------ | COMMENT |
| MEDIUM⚡ | hrms/controllers/employee_reminders.py | 13 | # ----------------- | COMMENT |
| MEDIUM⚡ | hrms/controllers/employee_reminders.py | 15 | # ----------------- | COMMENT |
| MEDIUM | hrms/controllers/employee_reminders.py | 84 | # ------------------ | COMMENT |
| MEDIUM | hrms/controllers/employee_reminders.py | 86 | # ------------------ | COMMENT |
| MEDIUM⚡ | hrms/controllers/employee_reminders.py | 204 | # -------------------------- | STRING |
| MEDIUM⚡ | hrms/controllers/employee_reminders.py | 206 | # -------------------------- | STRING |
| 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 | 388 | 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 | 477 | except Exception as e: | CODE |
| LOW | hrms/hr/doctype/overtime_slip/overtime_slip.py | 510 | 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 | 482 | except Exception: | CODE |
| LOW | hrms/hr/doctype/upload_attendance/upload_attendance.py | 49 | except Exception as e: | CODE |
| LOW | hrms/hr/doctype/upload_attendance/upload_attendance.py | 223 | except Exception as e: | 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 | 398 | except Exception as exc: | CODE |
| MEDIUM | hrms/payroll/doctype/salary_slip/salary_slip.py | 1377 | def eval_condition_and_formula(self, struct_row, data): | CODE |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 1404 | except Exception as exc: | CODE |
| LOW | …s/payroll/doctype/salary_structure/salary_structure.py | 293 | except Exception: | CODE |
| LOW | …ructure_assignment/bulk_salary_structure_assignment.py | 118 | except Exception: | CODE |
| MEDIUM | hrms/payroll/doctype/payroll_entry/payroll_entry.py | 1683 | 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 | 1629 | except Exception as e: | CODE |
| LOW | hrms/payroll/doctype/payroll_entry/payroll_entry.py | 1714 | except Exception as e: | CODE |
| 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 | 27 | 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 | …hr/doctype/upload_attendance/test_upload_attendance.py | 7 | 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 | 9 | CODE | |
| LOW | …ms/payroll/doctype/payroll_entry/test_payroll_entry.py | 10 | CODE | |
| LOW | …ms/payroll/doctype/payroll_entry/test_payroll_entry.py | 30 | CODE | |
| LOW | hrms/payroll/doctype/payroll_period/payroll_period.py | 8 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | hrms/setup.py | 514 | 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 | 13 | 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 | 670 | CODE | |
| LOW | …t/monthly_attendance_sheet/monthly_attendance_sheet.py | 758 | CODE | |
| LOW | hrms/hr/report/shift_attendance/shift_attendance.py | 245 | CODE | |
| LOW | hrms/hr/doctype/attendance/attendance.py | 407 | CODE | |
| LOW | hrms/hr/doctype/expense_claim/expense_claim.py | 122 | CODE | |
| LOW | hrms/hr/doctype/expense_claim/expense_claim.py | 405 | 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 | 487 | CODE | |
| LOW | …final_statement/full_and_final_statement_loan_utils.py | 16 | CODE | |
| LOW | hrms/hr/doctype/leave_application/leave_application.py | 1262 | CODE | |
| LOW | hrms/hr/doctype/leave_application/leave_application.py | 185 | CODE | |
| LOW | hrms/hr/doctype/leave_application/leave_application.py | 300 | 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/hr/doctype/upload_attendance/upload_attendance.py | 78 | 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 | 361 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 837 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 1177 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 1624 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 2051 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 2142 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/test_salary_slip.py | 2277 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/test_salary_slip.py | 820 | CODE | |
| LOW | hrms/payroll/doctype/salary_slip/test_salary_slip.py | 923 | CODE | |
| LOW | hrms/payroll/doctype/arrear/arrear.py | 251 | CODE | |
| LOW | …s/payroll/doctype/salary_structure/salary_structure.py | 90 | CODE | |
| LOW | hrms/payroll/doctype/payroll_entry/payroll_entry.py | 1462 | CODE | |
| LOW | hrms/payroll/doctype/payroll_entry/payroll_entry.py | 1683 | 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 |
|---|---|---|---|---|
| HIGH | hrms/hr/utils.py | 213 | # hack! if name is null, it could cause problems with != | STRING |
| HIGH | hrms/hr/utils.py | 213 | # hack! if name is null, it could cause problems with != | STRING |
| HIGH | hrms/hr/doctype/leave_application/leave_application.py | 487 | # hack! if name is null, it could cause problems with != | COMMENT |
| HIGH | hrms/hr/doctype/leave_application/leave_application.py | 487 | # 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 | 49 | # hack! if name is null, it could cause problems with != | STRING |
| HIGH | hrms/payroll/doctype/payroll_period/payroll_period.py | 49 | # hack! if name is null, it could cause problems with != | STRING |
| 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 | 2539 | CODE | |
| LOW | …roll/doctype/salary_structure/test_salary_structure.py | 135 | CODE | |
| LOW | …roll/doctype/salary_structure/test_salary_structure.py | 227 | CODE | |
| LOW | …s/payroll/doctype/salary_structure/salary_structure.py | 393 | CODE | |
| LOW | …s/payroll/doctype/salary_structure/salary_structure.py | 206 | 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 | 2492 | # Check if Employee Benefit Application exists | COMMENT |
| LOW | hrms/payroll/doctype/salary_slip/test_salary_slip.py | 1843 | # 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 | 1050 | # Check if employee benefits have been fetched to accrued benefits table | COMMENT |
| LOW | …ms/payroll/doctype/payroll_entry/test_payroll_entry.py | 1065 | # Check if employee benefit ledger entries have been created for each component | COMMENT |
| LOW | …ms/payroll/doctype/payroll_entry/test_payroll_entry.py | 1079 | # 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⚡ | …/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/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 | 186 | 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 | 1258 | def _set_evaluated_components(self) -> None: | CODE |
| LOW | hrms/payroll/doctype/salary_slip/salary_slip.py | 2328 | def set_totals(self) -> None: | CODE |
| 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 | # ------------------- | COMMENT |
| LOW | hrms/hooks.py | 321 | # auto_cancel_exempted_doctypes = ["Auto Repeat"] | COMMENT |
| LOW | hrms/hooks.py | 341 | # "doctype": "{doctype_3}", | 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 |