Sha256: 5ed216dcfdf8c69ec1dacfbb4ecf47cdb0d8f0e48121592f16d2d05c7e5da39f

Contents?: true

Size: 865 Bytes

Versions: 2

Compression:

Stored size: 865 Bytes

Contents

require "train/tax/calculator/version"
require "train/tax/calculator/philhealth"
require "train/tax/calculator/pagibig"
require "train/tax/calculator/sss"
require "train/tax/calculator/deductions"
require "train/tax/calculator/withholding_tax"

module Train
  module Tax
    module Calculator

      def self.call(basic_salary)
        return 0.00 if basic_salary <= 0

        hash = Hash.new

        hash[:sss]              = Sss.compute_employee_share(basic_salary)
        hash[:pagibig]          = Pagibig.compute(basic_salary)
        hash[:philhealth]       = Philhealth.compute(basic_salary)
        hash[:total_deductions] = Deductions.compute(basic_salary)
        hash[:withholding_tax]  = WithholdingTax.compute(basic_salary)
        hash[:net_income]       = (basic_salary - hash[:withholding_tax]).round(2)

        hash
      end

    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
train-tax-calculator-2.3.2 lib/train/tax/calculator.rb
train-tax-calculator-2.3.1 lib/train/tax/calculator.rb