class Formulas::PAYE

Calculate basic salary in frequency paye = Formulas::PAYE.new(gross_pay: 52_000, frequency: Formulas::ANNUAL)

paye.tax(:monthly)

> 718.33

Provide a way to calculate pay as you earn calculator

Constants

MAX_ACC_LEVY_PAYABLE
TAX_RATES

Provide a way to calculate PAYE tax

Public Class Methods

new(gross_pay:, frequency: Formulas::MONTHLY) click to toggle source
Calls superclass method
# File lib/formulas/paye.rb, line 24
def initialize(gross_pay:, frequency: Formulas::MONTHLY)
  super(gross_pay, frequency, TAX_RATES)
end

Public Instance Methods

acc_payable() click to toggle source
# File lib/formulas/paye.rb, line 36
def acc_payable
  annual_gross_pay > MAX_ACC_LEVY_PAYABLE ? MAX_ACC_LEVY_PAYABLE : annual_gross_pay
end
levy() click to toggle source
# File lib/formulas/paye.rb, line 32
def levy
  0.0139
end
tax(request_frequency: Formulas::WEEKLY) click to toggle source
# File lib/formulas/paye.rb, line 28
def tax(request_frequency: Formulas::WEEKLY)
  calculate_tax(request_frequency)
end