Sha256: ddd9dbdbcc3541f579b3f58533bec37f0ac89770b4cd3de7d4b2bce187ac8472

Contents?: true

Size: 815 Bytes

Versions: 1

Compression:

Stored size: 815 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.(basic_salary)
        hash[:pagibig]          = Pagibig.(basic_salary)
        hash[:philhealth]       = Philhealth.(basic_salary)
        hash[:total_deductions] = Deductions.(basic_salary)
        hash[:withholding_tax]  = WithholdingTax.(basic_salary)
        hash[:net_income]       = (basic_salary - hash[:withholding_tax]).round(2)

        hash
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
train-tax-calculator-3.0.0 lib/train/tax/calculator.rb