class PayrolleeCz::InsuranceHealthBaseConcept

Public Class Methods

new(tag_code, values) click to toggle source
Calls superclass method
# File lib/payrollee_cz/concepts/insurance_health_base_concept.rb, line 5
def initialize(tag_code, values)
  super(PayConceptGateway::REFCON_INSURANCE_HEALTH_BASE, tag_code)
  init_values(values)
end

Public Instance Methods

calc_category() click to toggle source
# File lib/payrollee_cz/concepts/insurance_health_base_concept.rb, line 22
def calc_category
  PayrollConcept::CALC_CATEGORY_GROSS
end
compute_result_value(tag_config, results) click to toggle source
# File lib/payrollee_cz/concepts/insurance_health_base_concept.rb, line 26
def compute_result_value(tag_config, results)
  if !interest?
    result_income = 0
  else
    result_income = results.inject(0) do |agr, term_item|
      term_key    = term_item.first
      term_result = term_item.last
      agr + sum_term_for(tag_config, tag_code, term_key, term_result)
    end
  end
  result_income
end
dup_with_value(code, values) click to toggle source
# File lib/payrollee_cz/concepts/insurance_health_base_concept.rb, line 15
def dup_with_value(code, values)
  new_concept = self.dup
  new_concept.init_code(code)
  new_concept.init_values(values)
  return new_concept
end
evaluate(period, tag_config, results) click to toggle source
# File lib/payrollee_cz/concepts/insurance_health_base_concept.rb, line 39
def evaluate(period, tag_config, results)
  result_income = compute_result_value(tag_config, results)

  employee_base = min_max_assessment_base(period, result_income)
  employer_base = max_assessment_base(period, result_income)

  result_values = {income_base: result_income,
                   employee_base: employee_base,
                   employer_base: employer_base,
                   interest_code: @interest_code,
                   mimimum_asses: @minimum_asses}

  IncomeBaseResult.new(@tag_code, @code, self, result_values)
end
export_xml(xml_builder) click to toggle source
# File lib/payrollee_cz/concepts/insurance_health_base_concept.rb, line 159
def export_xml(xml_builder)
  attributes = {}
  attributes[:interest_code] = @interest_code
  attributes[:minimum_asses] = @minimum_asses
  xml_builder.spec_value(attributes)
end
health_max_assessment(year) click to toggle source
# File lib/payrollee_cz/concepts/insurance_health_base_concept.rb, line 113
def health_max_assessment(year)
  if year>=2013
    0 #1863648L
  elsif year==2012
    1809864
  elsif year==2011
    1781280
  elsif year==2010
    1707048
  elsif year==2009
    1130640
  elsif year==2008
    1034880
  else
    0
  end
end
health_min_assessment(year, month) click to toggle source
# File lib/payrollee_cz/concepts/insurance_health_base_concept.rb, line 131
def health_min_assessment(year, month)
  if year>=2007
    8000
  elsif year==2006 && month>=7
    7955
  elsif year==2006
    7570
  elsif year==2005
    7185
  elsif year==2004
    6700
  elsif year==2003
    6200
  elsif year==2002
    5700
  elsif year==2001
    5000
  elsif year==2000 && month>=7
    4500
  elsif year==2000
    4000
  elsif year==1999 && month>=7
    3600
  else
    3250
  end
end
init_values(values) click to toggle source
# File lib/payrollee_cz/concepts/insurance_health_base_concept.rb, line 10
def init_values(values)
  @interest_code = values[:interest_code] || 0
  @minimum_asses = values[:minimum_asses] || 0
end
interest?() click to toggle source
# File lib/payrollee_cz/concepts/insurance_health_base_concept.rb, line 65
def interest?
  @interest_code!=0
end
max_assessment_base(period, income_base) click to toggle source
# File lib/payrollee_cz/concepts/insurance_health_base_concept.rb, line 83
def max_assessment_base(period, income_base)
  if !interest?
    0
  else
    maximum_base = health_max_assessment(period.year)
    if maximum_base==0
      income_base
    else
      [income_base, maximum_base].min
    end
  end
end
min_assessment_base(period, income_base) click to toggle source
# File lib/payrollee_cz/concepts/insurance_health_base_concept.rb, line 96
def min_assessment_base(period, income_base)
  if !interest?
    0
  else
    if !minimum_assessment?
      income_base
    else
      minimum_base = health_min_assessment(period.year, period.month)
      if minimum_base > income_base
        minimum_base
      else
        income_base
      end
    end
  end
end
min_max_assessment_base(period, ins_base) click to toggle source
# File lib/payrollee_cz/concepts/insurance_health_base_concept.rb, line 73
def min_max_assessment_base(period, ins_base)
  if !interest?
    0
  else
    min_base = min_assessment_base(period, ins_base)

    max_base = max_assessment_base(period, min_base)
  end
end
minimum_assessment?() click to toggle source
# File lib/payrollee_cz/concepts/insurance_health_base_concept.rb, line 69
def minimum_assessment?
  @minimum_asses!=0
end
sum_term_for(tag_config, tag_code, result_key, result_item) click to toggle source
# File lib/payrollee_cz/concepts/insurance_health_base_concept.rb, line 54
def sum_term_for(tag_config, tag_code, result_key, result_item)
  #find_tag(code) instead tag_from_models(CodeNameRefer) - no CodeNameRefer here in result_key
  tag_config_item = tag_config.find_tag(result_key.code)
  if result_item.summary_for?(tag_code)
    if tag_config_item.insurance_health?
      return result_item.payment
    end
  end
  return 0
end