We’re happy to pick this up if the design isn’t too complex.
I’ve made a first attempt at a high level design below based on the latest version of ERPNext. Please feel free to update, amend, overhaul the design. For now let’s keep it to the bare minimum so we can get it out quicker.
Once the initial design is finalised I will be able to estimate the cost of development.
Cheers,
Tony
ERPNext Design Proposal for Weekly Payroll and Salary Slip
Some assumptions:
Weekly/fortnightly intervals determined by the employee start date and day of the week payroll is run. For example, payroll is run every Friday:
a. Employee A starts Wednesday October 19th 2016 – first weekly salary slip will be for 2 days (Wednesday & Thursday).
b. Subsequent weekly payroll run with be from Friday to Thursday.
Multiple payroll run dates are required.
Payroll Run Dates
New DocType to capture payroll run dates by Company. Future dates are pre-determined by the holiday calendar.
a. Weekly – fixed working day each week.
b. Fortnightly – fixed working day every fortnight.
c. Monthly – fixed working day each month.
Employee DocType changes:
New field called Payroll Run with drop down options:
a. Weekly
b. Fortnightly
c. Monthly
Salary Structure DocType changes:
No change to salary structure.
Salary structures created for following groups:
a. Weekly salary structure (separate group for each role or rate)
b. Fortnightly salary structure (separate group for each role or rate)
c. Monthly salary structure (separate group for each role)
Process Payroll DocType changes:
Change to Create Salary Slip button to check the current date against:
a. Weekly Payroll Run Date: If current date is >= the next Weekly Payroll Run Date then create weekly salary slips for all active employees where Payroll Run = Weekly.
b. Fortnightly Payroll Run Date: If current date is >= the next Fortnightly Payroll Run Date then create fortnightly salary slips for all active employees where Payroll Run = Fortnightly.
c. Monthly Payroll Run Date: If current date is >= the next Monthly Payroll Run Date then create monthly salary slips for all active employees where Payroll Run = Monthly.
d. If any of the above conditions are not met, then skip.
Salary Slip DocType changes:
Salary Slip primary key changes to allow
a. multiple salary slips per month
b. across multiple months i.e. when a week or fortnight spans 2 months.
c. across multiple years i.e. when a week or fortnight spans two fiscal years.
Interval dates for weekly and fortnightly salary slips.
Leave days, sick days, payment days to be calculated based on date intervals for weekly and fortnightly salary slips (need more details here).
The design looks good. We will definitely help in testing the prototype.
We can also help in the development by improving the Monthly Salary Register with a wider date range than just a month. Moreover, we have already contributed by adding the Posting Date as we need to report on a cash basis to the Tax Office. For example, in our company we run a monthly payroll the first Friday of the following month, so the month is not linked to the pay run and this makes a difference when reporting and lodging the Tax Return.
Like @JoEz HR and Payroll are an areaI know nothing about.
Would a lot of weekly and fortnightly payroll features be covered by simply adding a Week number field directly after the month field in the Process PayRoll Doctype?
So we would have Fiscal Year, Month and Week Number. We are currently in Week 43. @tonyta It does get a bit tricky when you start to factor in holidays
I am new to ERPNext and really like what I see so far. This is a feature I am quite interested in as well. Some thoughts to @tonyta post on 10/19.
Someone posted about week numbers, I think this is a key component to determining pay periods. You can pay weekly for each single week number, fortnightly for every 2 consecutive week numbers and monthly based on standard calendar (standard calendar would also “see” the week numbers). The start date can certainly need logic, but that is generally a one time thing when you hire someone and then again when you terminate someone.
You should be able to mention what day you pay your people by pay cycle. e.g. Every Friday (for weekly), ever other Wed for fortnightly, and day of month for monthly. I would think a Salary Slip Pay Cycle doctype would help to facilitate this if I understand the architecture well enough.
Do you assign the “Salary Slip Pay Cycle” to an employee document directly or via his/her department so everyone in a department is automatically getting paid the same way?
Unless this is in 7.1 or 7.2 future releases, I think it would be good to add a field in Salary Component for Component type. Drop down for Earning or Deduction selection. Then update the Salary Component to only show Earning types in earning table and the same for Deductions.