https://github.com/zoltan-nz/payslip-app
This Rails 4 application generate payslips for employees. Manage your employee database, create and download payslips. Tax calculation is based on the latest Australian rules.
https://github.com/zoltan-nz/payslip-app
Last synced: about 2 months ago
JSON representation
This Rails 4 application generate payslips for employees. Manage your employee database, create and download payslips. Tax calculation is based on the latest Australian rules.
- Host: GitHub
- URL: https://github.com/zoltan-nz/payslip-app
- Owner: zoltan-nz
- Created: 2013-12-09T19:50:51.000Z (almost 12 years ago)
- Default Branch: master
- Last Pushed: 2016-01-15T08:46:36.000Z (almost 10 years ago)
- Last Synced: 2025-03-24T08:55:18.611Z (7 months ago)
- Language: JavaScript
- Homepage: http://payslip-app.herokuapp.com/
- Size: 634 KB
- Stars: 6
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
This app is available on Heroku: [http://payslip-app.herokuapp.com/](http://payslip-app.herokuapp.com/)
[](https://codeclimate.com/github/szines/payslip-app)
# How to launch this application
Supported environment: Linux or Mac with the latest Ruby 2.0.0
bundle install
If PostgreSQL does not exist on development machine, and production mode does not need, please use the following command:
bundle install --without production
bundle update (optional)
rake db:migrate
rake db:seed
rails s
# Features
## Import employees
1. Upload manual data via form.
2. Import from csv file. (Example data in db/employees.csv)
3. Generate sample data with rake db:seed
## Export payslips
1. Select employees
2. Setup date range
3. Download data in csv format.
Payslip generator can calculate fractal month.
#Employee monthly payslip
When I input the employee's details: first name, last name, annual salary(positive integer) and super rate (0% - 50% inclusive), payment start date,
the program should generate payslip information with name, pay period, gross income, income tax, net income and super.
The calculation details will be the following:
pay period = per calendar month
gross income = annual salary / 12 months
income tax = based on the tax table provide below
net income = gross income - income tax
super = gross income x super rate
> Notes: All calculation results should be rounded to the whole dollar. If >= 50 cents round up to the next dollar increment, otherwise round down.
### The following rates for 2012-13 apply from 1 July 2012.
| Taxable income | Tax on this income |
| ------|-------:|
| 0 - $18,200 | Nil |
| $18,201 - $37,000 | 19c for each $1 over $18,200 |
| $37,001 - $80,000 | $3,572 plus 32.5c for each $1 over $37,000 |
| $80,001 - $180,000 | $17,547 plus 37c for each $1 over $80,000 |
| $180,001 and over | $54,547 plus 45c for each $1 over $180,000 |
[The tax table is from ATO:](http://www.ato.gov.au/Individuals/Income%20and%20deductions/How%20much%20income%20tax%20you%20pay/Tax%20rates/)
###Example Data
Employee annual salary is 60,050, super rate is 9%, how much will this employee be paid for the month of March?
pay period = Month of March (01 March to 31 March)
gross income = 60,050 / 12 = 5,004.16666667 (round down) = 5,004
income tax = (3,572 + (60,050 - 37,000) x 0.325) / 12 = 921.9375 (round up) = 922
net income = 5,004 - 922 = 4,082
super = 5,004 x 9% = 450.36 (round down) = 450
Here is the csv input and output format we provide.
(But feel free to use any format you want)
Input:
first name, last name, annual salary, super rate (%), payment start date
David, Rudd, 60050, 9%, 01 March – 31 March
Ryan, Chen, 120000, 10%, 01 March – 31 March
Output:
name, pay period, gross income, income tax, net income, super
David Rudd, 01 March – 31 March, 5004, 922, 4082, 450
Ryan Chen, 01 March – 31 March, 10000, 2696, 7304, 1000
As part of your solution:
- List any assumptions that you have made in order to solve this problem.
- Provide instruction on how to run the application
### Todo
1. ~~ Update to Rails 4.2 ~~
2. ~~ Use Ruby 2.2 ~~
3. Rebuild models and controllers
4. Extend controller tests.
5. Create an api only version with emberjs/angularjs frontend.