An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          

This app is available on Heroku: [http://payslip-app.herokuapp.com/](http://payslip-app.herokuapp.com/)

[![Code Climate](https://codeclimate.com/github/szines/payslip-app.png)](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.