New Improved Salary Structure and Salary Slip

Please watch the video on our new improved version of Salary Structure and Salary Slip. It is condition and formula based as requested by many of the community members.

Please provide your valuable feedback as well.


Awesome job! We’re finally getting there :slight_smile:

I however noticed that there’s still no option to differentiate between Earning and Deduction Components which means that all components appear when trying to make a selection for either Earnings or Deductions. Unless there’s a use case for this, I think it only causes unnecessary clutter. Please look into it

Thanks plenty for the great work… much appreciated

1 Like

Hi there, great work.

I’m new on HR module, any hint on how to make it work on daily/weekly worked hours?

Thx in advance


Looks very good.

The one thing I think is missing is a way to look up Timesheets for users when creating the salary slip. Being able add them based on filters (Project, Billable, start/end dates) would be very useful.

1 Like

I have already raised this about having Earning and Deductions together instead of separating …
I have made a local change to split when creating new Salary Structure but would be great to have by default and with less code …
This on
def make_table(self, doct_name, tab_fname, tab_name):
list1 = frappe.db.sql(“select name, component_type from tab%s where docstatus != 2” % doct_name,as_dict=True)
for li in list1:

		if(tab_fname == 'earnings' and li.component_type ==str('Earning')):
			child = self.append(tab_fname, {})
			child.salary_component = #li.salary_component #component_type cstr(li[0])
			child.amount = 0
		elif(tab_fname == 'deductions' and li.component_type ==str('Deduction') ):
			child = self.append(tab_fname, {})
			print "adicionou " + li.component_type
			child.salary_component = #i.salary_component
			child.amount = 0

Hi all, what about if an employee need less than half day leave? let’s say 1 or 2 hours?

Any hint?

Thanks a lot

thanks for the hard work. Is there any chance to have weekly bimonthly salary?

Is this has been pushed in the update? As mine is still showing old salary structure even after update.

According to Redesigned Salary Structure post,

These new features will be released with ERPNext Version 7.1

1 Like

@Mukesh_Variyani @strixaluco changes already pushed in develop branch

1 Like

Great progress. At present it is still based on monthly payroll - any future plans to implement weekly / fortnightly?


It is really good, can I have more help in upgrading existing structures?

We have manually taken backup and have previous data in all salary structures but not conditions & all.

Great Work.Can we please make allowance for the variation of the rate payable to an employee in case of time sheet based payroll.Take for an example a staff of a company X works at various project sites of company project A ,B and C.In a particular month he worked for 14 days in a site A at the rate of $80 per day,he worked for 8 days in site B at the rate of $100 per day and spent the remaining 4 days in site C at the rate of $135 per day.I know you can add more than one time sheet but i am not sure whether different rate is possible.If is not possible,we would request such feature should be added
Secondly,we would also request that it should be made possible that formula can be written on the output of salary calculation to determine one of the salary component.Take for example a staff that has the following salary component: Basic $2,000,HRA $800,Transport $700 .Gross Pay is therefore $3,500.To get his net pay the only deduction which is Personal Income Tax must be calculated.Information needed to calculate his personal income tax are as follow:
$1,200 + 10%of his gross income is declared as not taxable while the remaining balance of his gross income (in this case it is $1,950 i.e $3,500-($1,200+0.1*$3,500)) is subjected to prorated tax as follows:
First $500 at the tax rate of 7% which equal $35
second $500 at the rate of 10% which equal $50
First $1,000 at the rate of 20% which equal $190 (i.e 0.2*$950 )since balance is not up to $1,000 you take the balance.
In this case the Personal Income Tax payable by the staff is $275 (i.e 35+50+190).
The Net Pay of the staff is Gross ($3,500) minus Personal Income Tax ($275) which equal $3,225.
The question is this can we write a formula to calculate this $275:The Personal Income Tax in this New Improved Salary Structure?
Earnestly waiting for positive reply

For condition, is it possible to put more than 1 condition?

If those conditions will have same formula associated with it, you can.
Can you give an example?

Hi @KanchanChauhan,

For example,

if age=>30 & bs<2000, bs*30%

You should be able to add it like this:

age => 30 and bs < 20000

That is cool!!! Thanks!