1.0.0 • Published 10 years ago
payslip-generator v1.0.0
#Payslip generator Generates payslip based on Australia's tax rate table and employee's super annuation rate.
##Installation
npm install payslip-generator --save##Running Tests
git clone git clone git@bitbucket.org:mehdivk/payslip-generator.git
cd payslip-generator
npm install
npm test##Getting Started
payslip-generator exports a single class, PayslipGenerator.
var PayslipGenerator = require('payslip-generator');
var payslipGenerator = new PayslipGenerator(taxTable);taxTable is an array of taxTble items. Each item in taxTable must have following fields:
- minSalary: A mandatory number (>= 0)
- maxSalary: A mandatory number (>= 0)
- baseTax: A mandatory number (>= 0)
- taxPerDollar: A mandatory number (>= 0 & < 1)
An example of taxTable array:
[
  {
    "minSalary": 0,
    "maxSalary": 18200,
    "baseTax": 0,
    "taxPerDollar": 0
  },
  {
    "minSalary": 18201,
    "maxSalary": 37000,
    "baseTax": 0,
    "taxPerDollar": 0.19
  },
  {
    "minSalary": 37001,
    "maxSalary": 80000,
    "baseTax": 3572,
    "taxPerDollar": 0.325
  },
  {
    "minSalary": 80001,
    "maxSalary": 180000,
    "baseTax": 17547,
    "taxPerDollar": 0.37
  },
  {
    "minSalary": 180001,
    "maxSalary": 0,
    "baseTax": 54547,
    "taxPerDollar": 0.45
  }
]##PayslipGenerator.prototype.generate()
.generate() function expects following params:
- firstName: mandatory string param
- lastName: mandatory string param
- annualSalary: mandatory positive number
- superRate: mandatory positive number
- paymentPeriod: A calendar month
var PayslipGenerator = require('payslip-generator');
var taxTable         = require('./tax-table.json');
var payslip          = new PayslipGenerator(taxTable);
var result           = payslip.generate('Mehdi', 'Valikhani', 60500, 9, 'March');.generate() function is a syncronous method, it may return an error or a payslip generator.
To make life easier we always return an array with maximum of two item.
- err: An instance of- Errorclass
- payslipObject: Payslip object
###An example of payslip object
{
  "firstName"      : "David",
  "lastName"       : "Rudd",
  "paymentPeriod"  : "March",
  "grossIncome"    : 5004,
  "incomeTax"      : 922,
  "netIncome"      : 4082,
  "superAnnuation" : 450
}1.0.0
10 years ago