@@ -444,6 +444,41 @@ def test_payroll_entry_cancellation(self):
444444 journal_entries = get_linked_journal_entries (payroll_entry .name , docstatus = 2 )
445445 self .assertEqual (len (journal_entries ), 2 )
446446
447+ def test_payroll_entry_cancellation_with_hr_manager (self ):
448+ company_doc = frappe .get_doc ("Company" , "_Test Company" )
449+ employee = make_employee ("test_hr_manager_employee@payroll.com" , company = company_doc .name )
450+
451+ setup_salary_structure (employee , company_doc )
452+ dates = get_start_end_dates ("Monthly" , nowdate ())
453+ payroll_entry = make_payroll_entry (
454+ start_date = dates .start_date ,
455+ end_date = dates .end_date ,
456+ payable_account = company_doc .default_payroll_payable_account ,
457+ currency = company_doc .default_currency ,
458+ company = company_doc .name ,
459+ cost_center = "Main - _TC" ,
460+ payment_account = "Cash - _TC" ,
461+ )
462+
463+ hr_user = frappe .get_doc (
464+ {
465+ "doctype" : "User" ,
466+ "email" : "test_hr_manager@payroll.com" ,
467+ "first_name" : "Test HR Manager" ,
468+ "enabled" : 1 ,
469+ }
470+ ).insert (ignore_if_duplicate = True )
471+ hr_user .add_roles ("HR Manager" )
472+ frappe .set_user (hr_user .name )
473+
474+ payroll_entry .submit ()
475+ self .assertEqual (payroll_entry .status , "Submitted" )
476+
477+ payroll_entry .cancel ()
478+ self .assertEqual (payroll_entry .status , "Cancelled" )
479+
480+ frappe .set_user ("Administrator" )
481+
447482 def test_payroll_entry_status (self ):
448483 company_doc = frappe .get_doc ("Company" , "_Test Company" )
449484 employee = make_employee ("test_employee@payroll.com" , company = company_doc .name )
0 commit comments