Hello ,
When we click on the Submit Salary slip button from the Payroll entry is failed
Please guide me
Hello ,
When we click on the Submit Salary slip button from the Payroll entry is failed
Please guide me
Hie anyone please help me ? why this issue ?
When we create an single employee entry it working fine but when we add more employee like 15 20 it not working
share screenshot of the error log
Please check total error log please reply i am waiting
Traceback with variables (most recent call last):
File "apps/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry.py", line 1537, in submit_salary_slips_for_employees
payroll_entry.make_accrual_jv_entry(submitted)
payroll_entry = <PayrollEntry: HR-PRUN-2025-00017 docstatus=1>
salary_slips = (('Sal Slip/HR-EMP-A107/00012', 'Tax Component'), ('Sal Slip/HR-EMP-A108/00012', 'Tax Component'), ('Sal Slip/HR-EMP-A114/00011', 'Tax Component'), ('Sal Slip/HR-EMP-A12/00011', 'Tax Component'), ('Sal Slip/HR-EMP-A120/00011', 'Tax Component'))
publish_progress = False
submitted = [<SalarySlip: Sal Slip/HR-EMP-A107/00012 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A108/00012 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A114/00011 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A12/00011 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A120/00011 docstatus=1>]
unsubmitted = []
count = 5
entry = ('Sal Slip/HR-EMP-A120/00011', 'Tax Component')
salary_slip = <SalarySlip: Sal Slip/HR-EMP-A120/00011 docstatus=1>
e = ValidationError('Row 4: Party Type and Party is required for Receivable / Payable account Debtors - AJB')
File "apps/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry.py", line 588, in make_accrual_jv_entry
self.make_journal_entry(
self = <PayrollEntry: HR-PRUN-2025-00017 docstatus=1>
submitted_salary_slips = [<SalarySlip: Sal Slip/HR-EMP-A107/00012 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A108/00012 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A114/00011 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A12/00011 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A120/00011 docstatus=1>]
employee_wise_accounting_enabled = 0
earnings = {('Payroll Payable - AJB', 'Main - AJB'): 511994.8, ('Marketing Expenses - AJB', 'Main - AJB'): 10625.0}
deductions = {('Payroll Payable - AJB', 'Main - AJB'): 88013.64, ('Debtors - AJB', 'Main - AJB'): 17300.0}
precision = 2
accounts = [{'account': 'Payroll Payable - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'debit_in_account_currency': 511994.8, 'doctype': 'Journal Entry Account'}, {'account': 'Marketing Expenses - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'debit_in_account_currency': 10625.0, 'doctype': 'Journal Entry Account'}, {'account': 'Payroll Payable - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'credit_in_account_currency': 88013.64, 'doctype': 'Journal Entry Account'}, {'account': 'Debtors - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'credit_in_account_currency': 17300.0, 'doctype': 'Journal Entry Account'}, {'account': 'Payroll Payable - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'credit_in_account_currency': 417306.16, 'reference_type': 'Payroll Entry', 'reference_name': 'HR-PRUN-2025-00017', 'doctype': 'Journal Entry Account'}]
currencies = ['INR']
payable_amount = 417306.16
accounting_dimensions = []
company_currency = 'INR'
File "apps/hrms/hrms/payroll/doctype/payroll_entry/payroll_entry.py", line 626, in make_journal_entry
journal_entry.save(ignore_permissions=True)
self = <PayrollEntry: HR-PRUN-2025-00017 docstatus=1>
accounts = [{'account': 'Payroll Payable - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'debit_in_account_currency': 511994.8, 'doctype': 'Journal Entry Account'}, {'account': 'Marketing Expenses - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'debit_in_account_currency': 10625.0, 'doctype': 'Journal Entry Account'}, {'account': 'Payroll Payable - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'credit_in_account_currency': 88013.64, 'doctype': 'Journal Entry Account'}, {'account': 'Debtors - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'credit_in_account_currency': 17300.0, 'doctype': 'Journal Entry Account'}, {'account': 'Payroll Payable - AJB', 'exchange_rate': 1.0, 'cost_center': 'Main - AJB', 'project': None, 'credit_in_account_currency': 417306.16, 'reference_type': 'Payroll Entry', 'reference_name': 'HR-PRUN-2025-00017', 'doctype': 'Journal Entry Account'}]
currencies = ['INR']
payroll_payable_account = 'Payroll Payable - AJB'
voucher_type = 'Journal Entry'
user_remark = 'Accrual Journal Entry for salaries from 2025-03-01 to 2025-03-31'
submitted_salary_slips = [<SalarySlip: Sal Slip/HR-EMP-A107/00012 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A108/00012 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A114/00011 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A12/00011 docstatus=1>, <SalarySlip: Sal Slip/HR-EMP-A120/00011 docstatus=1>]
submit_journal_entry = True
multi_currency = 0
journal_entry = <JournalEntry: ACC-JV-2025-00008>
File "apps/frappe/frappe/model/document.py", line 378, in save
return self._save(*args, **kwargs)
self = <JournalEntry: ACC-JV-2025-00008>
args = ()
kwargs = {'ignore_permissions': True}
File "apps/frappe/frappe/model/document.py", line 400, in _save
return self.insert()
self = <JournalEntry: ACC-JV-2025-00008>
ignore_permissions = True
ignore_version = None
File "apps/frappe/frappe/model/document.py", line 309, in insert
self.run_before_save_methods()
self = <JournalEntry: ACC-JV-2025-00008>
ignore_permissions = None
ignore_links = None
ignore_if_duplicate = False
ignore_mandatory = None
set_name = None
set_child_names = True
File "apps/frappe/frappe/model/document.py", line 1136, in run_before_save_methods
self.run_method("validate")
self = <JournalEntry: ACC-JV-2025-00008>
File "apps/frappe/frappe/model/document.py", line 1007, in run_method
out = Document.hook(fn)(self, *args, **kwargs)
self = <JournalEntry: ACC-JV-2025-00008>
method = 'validate'
args = ()
kwargs = {}
fn = <function Document.run_method.<locals>.fn at 0x7f2fc887fa60>
File "apps/frappe/frappe/model/document.py", line 1367, in composer
return composed(self, method, *args, **kwargs)
self = <JournalEntry: ACC-JV-2025-00008>
args = ()
kwargs = {}
hooks = [<function validate_accounting_period_on_doc_save at 0x7f2fc81f7560>, <function validate_expense_claim_in_jv at 0x7f2fc87f00e0>, <function apply at 0x7f2fc81e9c60>, <function check_for_running_deletion_job at 0x7f2fc81eb880>]
method = 'validate'
doc_events = {'*': {'on_update': ['frappe.desk.notifications.clear_doctype_notifications', 'frappe.workflow.doctype.workflow_action.workflow_action.process_workflow_actions', 'frappe.core.doctype.file.utils.attach_files_to_document', 'frappe.automation.doctype.assignment_rule.assignment_rule.apply', 'frappe.automation.doctype.assignment_rule.assignment_rule.update_due_date', 'frappe.core.doctype.user_type.user_type.apply_permissions_for_non_standard_user_type'], 'after_rename': ['frappe.desk.notifications.clear_doctype_notifications'], 'on_cancel': ['frappe.desk.notifications.clear_doctype_notifications', 'frappe.workflow.doctype.workflow_action.workflow_action.process_workflow_actions', 'frappe.automation.doctype.assignment_rule.assignment_rule.apply'], 'on_trash': ['frappe.desk.notifications.clear_doctype_notifications', 'frappe.workflow.doctype.workflow_action.workflow_action.process_workflow_actions'], 'on_update_after_submit': ['frappe.workflow.doctype.workflow_action.workflow_action.process_w...
handler = 'erpnext.setup.doctype.transaction_deletion_record.transaction_deletion_record.check_for_running_deletion_job'
composed = <function Document.hook.<locals>.compose.<locals>.runner at 0x7f2fc8827240>
compose = <function Document.hook.<locals>.compose at 0x7f2fc8930d60>
f = <function Document.run_method.<locals>.fn at 0x7f2fc887fa60>
File "apps/frappe/frappe/model/document.py", line 1349, in runner
add_to_return_value(self, fn(self, *args, **kwargs))
self = <JournalEntry: ACC-JV-2025-00008>
method = 'validate'
args = ()
kwargs = {}
add_to_return_value = <function Document.hook.<locals>.add_to_return_value at 0x7f2fc8b8e840>
fn = <function Document.run_method.<locals>.fn at 0x7f2fc887fa60>
hooks = (<function validate_accounting_period_on_doc_save at 0x7f2fc81f7560>, <function validate_expense_claim_in_jv at 0x7f2fc87f00e0>, <function apply at 0x7f2fc81e9c60>, <function check_for_running_deletion_job at 0x7f2fc81eb880>)
File "apps/frappe/frappe/model/document.py", line 1004, in fn
return method_object(*args, **kwargs)
self = <JournalEntry: ACC-JV-2025-00008>
args = ()
kwargs = {}
method_object = <bound method JournalEntry.validate of <JournalEntry: ACC-JV-2025-00008>>
method = 'validate'
File "apps/erpnext/erpnext/accounts/doctype/journal_entry/journal_entry.py", line 124, in validate
self.validate_party()
self = <JournalEntry: ACC-JV-2025-00008>
File "apps/erpnext/erpnext/accounts/doctype/journal_entry/journal_entry.py", line 553, in validate_party
frappe.throw(
self = <JournalEntry: ACC-JV-2025-00008>
d = <JournalEntryAccount: 0bloqs4m9u parent=ACC-JV-2025-00008>
account_type = 'Receivable'
File "apps/frappe/frappe/__init__.py", line 606, in throw
msgprint(
msg = 'Row 4: Party Type and Party is required for Receivable / Payable account Debtors - AJB'
exc = <class 'frappe.exceptions.ValidationError'>
title = None
is_minimizable = False
wide = False
as_list = False
primary_action = None
File "apps/frappe/frappe/__init__.py", line 571, in msgprint
_raise_exception()
msg = 'Row 4: Party Type and Party is required for Receivable / Payable account Debtors - AJB'
title = None
raise_exception = <class 'frappe.exceptions.ValidationError'>
as_table = False
as_list = False
indicator = 'red'
alert = False
primary_action = None
is_minimizable = False
wide = False
realtime = False
sys = <module 'sys' (built-in)>
_raise_exception = <function msgprint.<locals>._raise_exception at 0x7f2fc8825e40>
inspect = <module 'inspect' from '/usr/lib/python3.12/inspect.py'>
out = {'message': 'Row 4: Party Type and Party is required for Receivable / Payable account Debtors - AJB', 'title': 'Message', 'indicator': 'red', 'raise_exception': 1, '__frappe_exc_id': 'e61616361880bcf3beb761cf5415a72fb5876022c5175c923b7ae592'}
File "apps/frappe/frappe/__init__.py", line 522, in _raise_exception
raise exc
exc = ValidationError('Row 4: Party Type and Party is required for Receivable / Payable account Debtors - AJB')
inspect = <module 'inspect' from '/usr/lib/python3.12/inspect.py'>
msg = 'Row 4: Party Type and Party is required for Receivable / Payable account Debtors - AJB'
out = {'message': 'Row 4: Party Type and Party is required for Receivable / Payable account Debtors - AJB', 'title': 'Message', 'indicator': 'red', 'raise_exception': 1, '__frappe_exc_id': 'e61616361880bcf3beb761cf5415a72fb5876022c5175c923b7ae592'}
raise_exception = <class 'frappe.exceptions.ValidationError'>
frappe.exceptions.ValidationError: Row 4: Party Type and Party is required for Receivable / Payable account Debtors - AJB
frappe Version is-15
please show your journal entry list
Please use payroll payable account in payroll entry and keep that GL account’s account type empty as below;
its allready empty
please show Debtors-AJB
Issue solved