Class: Formulas::WithholdingTax
- Inherits:
-
Object
- Object
- Formulas::WithholdingTax
- Includes:
- FrequencyConversions
- Defined in:
- lib/formulas/withholding_tax.rb
Instance Attribute Summary collapse
-
#origin_frequency ⇒ Object
readonly
Returns the value of attribute origin_frequency.
Instance Method Summary collapse
-
#initialize(gross_pay, origin_frequency, tax_rate, options: {}) ⇒ WithholdingTax
constructor
A new instance of WithholdingTax.
- #net_pay(request_frequency:) ⇒ Object
Methods included from FrequencyConversions
#convert_annually_to_annually, #convert_annually_to_fortnightly, #convert_annually_to_monthly, #convert_annually_to_weekly, #convert_fortnightly_to_annually, #convert_fortnightly_to_monthly, #convert_fortnightly_to_weekly, #convert_monthly_to_annually, #convert_monthly_to_fortnightly, #convert_monthly_to_weekly, #convert_weekly_to_annually, #convert_weekly_to_fortnightly, #convert_weekly_to_monthly
Constructor Details
#initialize(gross_pay, origin_frequency, tax_rate, options: {}) ⇒ WithholdingTax
Returns a new instance of WithholdingTax.
9 10 11 12 13 14 |
# File 'lib/formulas/withholding_tax.rb', line 9 def initialize(gross_pay, origin_frequency, tax_rate, options: {}) @gross_pay = gross_pay @origin_frequency = origin_frequency @tax_rate = tax_rate = end |
Instance Attribute Details
#origin_frequency ⇒ Object (readonly)
Returns the value of attribute origin_frequency.
7 8 9 |
# File 'lib/formulas/withholding_tax.rb', line 7 def origin_frequency @origin_frequency end |
Instance Method Details
#net_pay(request_frequency:) ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/formulas/withholding_tax.rb', line 16 def net_pay(request_frequency:) annual_pay_after_tax = annual_gross_pay - calculate_tax(Formulas::ANNUALLY) if respond_to?(:levy) net_pay = annual_pay_after_tax - (acc_payable * send(:levy)) end return net_pay if request_frequency.to_s == Formulas::ANNUALLY.to_s send("convert_annually_to_#{request_frequency}", net_pay).round(2) end |