Error when Making Bank Entry in payroll processing

Hello all

When processing payroll I get stumped when its time to make bank entry.

It gives me the following error message

“Total Debit must be equal to Total Credit. The difference is -0.0100000000093”

Is this a bug or am I doing something wrong??

Regards

I have the same issue when doing payroll for single employee, probably a bug.

@rmehta sorry for calling you out, but its payroll time.

I just need to know if this is a bug or we are doing something wrong, someone else appears to have been able to replicate the issue.

Regards

Looks like a rounding issue. Can you please share the salary slip so that we can replicate it at out end as well, since we are not able to replicate it. Also raise the github issue for the same please.

@olamide_shodunke and @Randy_Lowery Also on what version are you? If not on latest, I would say update and see if the error still persists.

@KanchanChauhan

We are on the latest version.

It happens when we run payroll for the entire organisation, so its not one salary slip thats involved.

So the JV is created correctly on submission of Salary Slips, right? The issue is when you create Payment Entry. You can create Payment Entry manually as well. We will look into the issue in the mean time.

1 Like

@KanchanChauhan We need to do rounding based on field precision while getting amount from salary slips.

2 Likes

Thanks @KanchanChauhan and @nabinhait

Will await the fix.

@KanchanChauhan, how do I create payment entry manually for the payroll run??

Regards

If you are getting the error on making Payment Entry and accrual entry has been submitted correctly. Then check the accrual entry to get the amount of Payroll Payable.
Then make a Journal Entry, debiting Process Payroll and crediting Bank account.

In case if you are getting this error while submitting salary slip via Process Payroll, then first submit salary slips individually and then make accrual entry debiting Salary expense account and crediting Payroll Payable.

Thank you @nabinhait

I don’t have a process payroll account. Is this a system generated account
? Or are you referring to my payroll expense account?

What happens when the error is fixed by your team? Will the ERPNext system
still retain the fact that the make bank entry step has not been made for
that particular payroll run? Could this lead to a double posting at the end
of the day ?

Regards

Hello @nabinhait

Am still stuck on this isssue, even if I want to use the manual approach pending when you fix the bug, how do I

  1. Check the accrual entry as you stated above?
  2. What is process payroll you said I should debit above?

Awaiting your response

Regards

Which version and branch are you using? If you are in develop branch, then only accrual system is available. For accrual entry, you need to create an payable account under Liability.

Otherwise, in master branch there is no accrual system for booking accounting entry for salary. And in that case, while doing payment entry, salary expense account should be debited and bank account should be credited.

It should not affect the existing accounting entry and salary slips.

TEMPORARY FIX FOUND!!!

I suggest you check each salary structure, and wrap any formulas entered in the salary component formula field, particularly those that have more than one or two operations, in the following Python function:

float("{0:.2f}".format(YOUR_FORMULA_HERE))

This will round everything to two decimal points, and will keep all your calculations from causing these errors before a fix is made.

All text below is the trial and error I followed to stumble upon the fix above. Read, only if you desire.
I´m getting the same, I have checked each salary structure formula to verify they all make equal amount, but the problem persists:

“Total Debit must be equal to Total Credit. The difference is -0.0010000000002”

I did have one test instance where ONE unique individual’s salary slip was not submitted, and it did create the Payment Entry for all others perfectly. I am using a Fortnightly payment structure.

I fixed the salary structure, but the problem persists:
Troubleshooting: In my case ERPNext says that “multiple active salary structures exist for that employee”, when pressing the “Create Salary Slip” button in the Process Payroll tool. I have verified, and I found ONE more salary structure for the time period which was active. I inactivated it, and no longer get the message when pressing “Create Salary Slips”. This was the employee who gives me “trouble” when making the payment entry.

One other factor that might be affecting is that this employee has a particular deduction which others do not have, and that might be generating the extra numbers. I tried removing that particular calculation, leaving all employees with the same calculation, and still got the same error. (NOTE: I took the deduction away and still get the error)

Question: Is there a formula that can be used to “round” the numbers within the formula square when calculating payroll? Should it be Python or Javascript notation? SELF-ANSWERED: It’s in Python.

One other thing I checked, is the specific accounts for each salary component. Since it was stated in another post, the component DocType does not automatically show Liability accounts, but will successfully link to them if entered manually.
Changing the account name AFTER linking and saving manually, does not affect the error.

However i have been able to isolate it to ONE employee’s salary structure. Even though the salary slip is in balance, something is up with this particular structure. I’m going back to check the formulas.

No luck. I tried everything and there seems to be a certain rounding issue.

Now trying a rounding formula using python (Formats and then converts back to float from string data type):
float("{0:.2f}".format(YOUR_FORMULA_HERE))

ERPNext: v7.2.27

Frappe Framework: v7.2.27

am having the same issue

any update ?

any update

is it done

I have created a github issue for this and included it in milestone “2017-06”. It should be fixed by the end of this month.

1 Like