fix: list mutation within loop (#29766)

Prevent list mutation within loop leading to incorrect data

(cherry picked from commit 894a406ed406f8e6fa3efed9315609ffc33075f6)

Co-authored-by: Govind S Menokee <govindsmenokee@gmail.com>
This commit is contained in:
mergify[bot] 2022-02-12 12:14:19 +05:30 committed by GitHub
parent 80944e666f
commit 749005eb8b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -527,11 +527,12 @@ def get_emp_list(sal_struct, cond, end_date, payroll_payable_account):
""" % cond, {"sal_struct": tuple(sal_struct), "from_date": end_date, "payroll_payable_account": payroll_payable_account}, as_dict=True)
def remove_payrolled_employees(emp_list, start_date, end_date):
new_emp_list = []
for employee_details in emp_list:
if frappe.db.exists("Salary Slip", {"employee": employee_details.employee, "start_date": start_date, "end_date": end_date, "docstatus": 1}):
emp_list.remove(employee_details)
if not frappe.db.exists("Salary Slip", {"employee": employee_details.employee, "start_date": start_date, "end_date": end_date, "docstatus": 1}):
new_emp_list.append(employee_details)
return emp_list
return new_emp_list
@frappe.whitelist()
def get_start_end_dates(payroll_frequency, start_date=None, company=None):