Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Manually override employee salary slip #11977

Closed
hballan opened this issue Dec 13, 2017 · 12 comments
Closed

Manually override employee salary slip #11977

hballan opened this issue Dec 13, 2017 · 12 comments

Comments

@hballan
Copy link

hballan commented Dec 13, 2017

After creating a salary slip for an employee, I need to modify some of the components values manually. However, I realized that after I save the slip it goes back to the salary structure and overrides any manual changes. The ability to have ERP Next generate a salary slip based on the salary structure and then to be able to modify the slip manually by either adding components, removing components or changing the value of certain components is greatly needed. Some employees earn commissions that are variable each month, others have absence which needs to be deducted, others have loans that need to be repaid as deduction from salary and many other particular scenarios, the flexibility to be able to manually modify the salary slip before saving would really help.

From a bit of trial and error, as the system is now you can add components and save, however you cannot remove or modify value of components that are present in the salary structure. On saving the slip it always reverts back to the value in the salary structure.<

@magic-overflow
Copy link

In HR, should have a new doctype (Monthly Salary Component data) which be able to upload Salary Component for each employee. So salary component amount in Salary Structure is based on data we upload into Monthly Salary Component Data.
Ex: In Salary Structure
Earning component

  • Basic Salary
  • Housing Allowance
  • OT
  • .
  • .
  • .

Monthly Salary Component Data

  • Basic Salary 20$
  • Housing Allowance 50$
  • OT 40$

@hballan
Copy link
Author

hballan commented Dec 14, 2017

Your suggestion is interesting but requires a redesign of the workflow.

Allowing the user to modify the salary slip and save without it reverting back to the salary structure is very easy and quick to implement. That way you can design the salary structure to contains all the possible components that a person can potentially earn, after you generate the slip for a particular month, you go in and modify the components with specific amounts for that month and remove the components that you don't needs and save.

@magic-overflow
Copy link

It takes much times and not safe to modify or remove components in Salary Slip. Imagine if there are hundreds of employee need to change very month.

If salary component amount is zero, it won't show at Salary Slip. You can have hundreds of Salary Component in Salary Structure, but it only calculate and show Salary Component that you upload in Monthly Salary Component Data by Excel file. We may not need to upload some salary components have fix amount, like gasoline allowance or any fix amount component, we can create child table in Employee which store those components. And if you want to overwrite those components for special case [ or you permanently change those value in Employee child table mentioned above], you just upload those component to Monthly Salary Component Data.

And we should have this as an option, if you disable it. It works as it was.

If can redesign the workflow, it will give more flexible.

@hballan
Copy link
Author

hballan commented Dec 14, 2017

Seems like a very complicated workflow.

You have every month some employees who earn variable bonuses for example. So in the salary structure you define a component "Bonus" and tie it to the appropriate account in the chart of accounts and place in it a sample approximate value let's say 1000. Then when you create the slip for the employee, you just replace this value with the actual exact value for the bonus for that month for example 1032 and save. You should be able to manually override the salary structure as this value changes every month. This is just one example of where you need to modify components in the salary slip, and yes it takes time but there is no other way if you have incentive programs for employees that earn variable amounts each month you have to enter those amounts manually.

Sometimes also you need to deduct absence or add overtime, it's very simple to implement just don't have the salary slip be overridden by the salary structure when you press save.

@akurungadam
Copy link
Contributor

Any variable benefits like Bonus, Commission etc. shall be submitted as Additional Salary for the Employee. while processing the payroll, the salary component will be added to Earnings (or Deductions based on the component) table in the Salary Slip. IMO, allowing users to change the calculated values of components as specified in the Salary Structure doesn't sound like a good approach. Moreover, the purpose of Additional Salary is to allow such monthly / periodical earnings (and deductions) in a more neat, documented way.

@hballan
Copy link
Author

hballan commented Jan 15, 2019

With all payroll systems it is always a balancing act between security and flexibility. Payroll is usually very complicated and specific to the legal requirements of the region you are operating in. Since ERPNext is used by lots of global customers, it is very difficult to program something that works for all users and matches their country specific requirements. Therefore, I would always select flexibility over security in this case and keep the option with the actual user. The reason I am not worried about security is because payroll gets reviewed before posting anyway so there is no need to overly complicate and limit the process. It is better to make it as flexible as possible to speed up the entry process. It is very simple to implement a feature to allow slips to be overridden (delete/add/modify components without reverting to the salary structure) and I am sure many users would find this feature extremely useful. Users who need this flexibility can enable it while others who prefer the standard workflow can keep it disabled.

It is hard to go into all the details of payroll to give you scenarios where the traditional workflow you are suggesting just doesn't work. Here is one simple example of many:

Salary structure for employees includes basic salary and an addition and a deduction component for GOSI (General Organisation for Social Insurance). These are standard components that are present for all employees. Operating in the GCC we have a lot of expat employees who take 2-3 month unpaid vacations to go back to their respective country. When an employee is on vacation, you still have to accrue the GOSI components in the Salary Slip but you need to remove the basic salary component and all other components as employee is on unpaid leave. The way ERPNext is setup now this is impossible to do this without either modifying the salary structure or creating a new salary structure for employees on vacation and then moving employees between salary structures based on status. This is very time consuming and difficult. The much much easier solution would be to just be able to modify the salary slip and delete the salary component for the month where the employee is on vacation.

Please consider the above, this simple flexibility feature would make our payroll processing so much simpler to do and would avoid having to constantly modify employee structures. Employee salary structure should only be modified if there is a permanent change in his position and compensation package.

@aakvatech
Copy link
Contributor

With all payroll systems it is always a balancing act between security and flexibility. Payroll is usually very complicated and specific to the legal requirements of the region you are operating in. Since ERPNext is used by lots of global customers, it is very difficult to program something that works for all users and matches their country specific requirements. Therefore, I would always select flexibility over security in this case and keep the option with the actual user. The reason I am not worried about security is because payroll gets reviewed before posting anyway so there is no need to overly complicate and limit the process. It is better to make it as flexible as possible to speed up the entry process. It is very simple to implement a feature to allow slips to be overridden (delete/add/modify components without reverting to the salary structure) and I am sure many users would find this feature extremely useful. Users who need this flexibility can enable it while others who prefer the standard workflow can keep it disabled.

It is hard to go into all the details of payroll to give you scenarios where the traditional workflow you are suggesting just doesn't work. Here is one simple example of many:

Salary structure for employees includes basic salary and an addition and a deduction component for GOSI (General Organisation for Social Insurance). These are standard components that are present for all employees. Operating in the GCC we have a lot of expat employees who take 2-3 month unpaid vacations to go back to their respective country. When an employee is on vacation, you still have to accrue the GOSI components in the Salary Slip but you need to remove the basic salary component and all other components as employee is on unpaid leave. The way ERPNext is setup now this is impossible to do this without either modifying the salary structure or creating a new salary structure for employees on vacation and then moving employees between salary structures based on status. This is very time consuming and difficult. The much much easier solution would be to just be able to modify the salary slip and delete the salary component for the month where the employee is on vacation.

Please consider the above, this simple flexibility feature would make our payroll processing so much simpler to do and would avoid having to constantly modify employee structures. Employee salary structure should only be modified if there is a permanent change in his position and compensation package.

Need to break this down in parts that can be individually addressed.

@aakvatech
Copy link
Contributor

When an employee is on vacation, you still have to accrue the GOSI components in the Salary Slip but you need to remove the basic salary component and all other components as employee is on unpaid leave.

Isn't this same as setting Basic Salary as Deduct Leave Without Pay? And the leave is of type LWP.

@hballan
Copy link
Author

hballan commented May 4, 2019

There is really no need to complicate the issue, it's really simple. There are many situations where you need to manually override the salary slip based on a case (vacation, end of service, special one time bonus, one time deduction, ect..) during a particular month. It doesn't make sense to have to go back to the salary structure and change it all the time, the salary structure is just a template a starting point, you must have the flexibility to remove components, add components or modify the value of components before submitting the slip. The way things are now in ERPNext, is that when you modify the slip and try to submit it reverts back to the salary structure. The solution is to simply have an option where you allow the slip to be overridden independently from the salary structure for companies that want this feature. Payroll gets checked and verified anyway before submitting it to the bank for processing so it is not a security concern but the added flexibility would save so much time in entering payroll in ERPNext so please consider implementing this and this is is an simple option for those who don't want this behaviour they can just turn off the feature.

@nateriches
Copy link

I know it's an old thread, but the way I got around this was:
Custom Field in the Payslip to enter in an amount (e.g. salary_override, or commission_amount, etc.)
Component Based on Formula: salary_override*1

Then it will just always be the amount you enter in.

@dawoodjee
Copy link
Contributor

@nateriches kindly elaborate further on this

@ankush ankush added the to-validate Old issues pending validation label Dec 10, 2021
@ankush ankush removed the to-validate Old issues pending validation label Dec 18, 2021
@stale
Copy link

stale bot commented Feb 16, 2022

This issue has been automatically marked as inactive because it has not had recent activity and it wasn't validated by maintainer team. It will be closed within a week if no further activity occurs.

@stale stale bot added the inactive label Feb 16, 2022
@stale stale bot closed this as completed Feb 24, 2022
@github-actions github-actions bot locked as resolved and limited conversation to collaborators Feb 22, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

8 participants