Exemplo n.º 1
0
    def test_payroll_frequency(self):
        fiscal_year = get_fiscal_year(nowdate(),
                                      company=erpnext.get_default_company())[0]
        month = "%02d" % getdate(nowdate()).month
        m = get_month_details(fiscal_year, month)

        for payroll_frequency in [
                "Monthly", "Bimonthly", "Fortnightly", "Weekly", "Daily"
        ]:
            make_employee(payroll_frequency + "*****@*****.**")
            ss = make_employee_salary_slip(
                payroll_frequency + "*****@*****.**",
                payroll_frequency,
                payroll_frequency + "_Test Payroll Frequency")
            if payroll_frequency == "Monthly":
                self.assertEqual(ss.end_date, m['month_end_date'])
            elif payroll_frequency == "Bimonthly":
                if getdate(ss.start_date).day <= 15:
                    self.assertEqual(ss.end_date, m['month_mid_end_date'])
                else:
                    self.assertEqual(ss.end_date, m['month_end_date'])
            elif payroll_frequency == "Fortnightly":
                self.assertEqual(ss.end_date, add_days(nowdate(), 13))
            elif payroll_frequency == "Weekly":
                self.assertEqual(ss.end_date, add_days(nowdate(), 6))
            elif payroll_frequency == "Daily":
                self.assertEqual(ss.end_date, nowdate())
Exemplo n.º 2
0
def execute():
    frappe.reload_doc("Payroll", "doctype", "Salary Slip")
    if not frappe.db.has_column('Salary Slip', 'fiscal_year'):
        return

    salary_slips = frappe.db.sql(
        """select month, name, fiscal_year from `tabSalary Slip`
				where (month is not null and month != '') and
				start_date is null and end_date is null and docstatus != 2""",
        as_dict=True)

    for salary_slip in salary_slips:
        if not cint(salary_slip.month):
            continue
        get_start_end_date = get_month_details(salary_slip.fiscal_year,
                                               cint(salary_slip.month))
        start_date = get_start_end_date['month_start_date']
        end_date = get_start_end_date['month_end_date']
        frappe.db.sql(
            """update `tabSalary Slip` set start_date = %s, end_date = %s where name = %s""",
            (start_date, end_date, salary_slip.name))