class PayrolleeCz::InsuranceSocialBaseConcept

Public Class Methods

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

Public Instance Methods

calc_category() click to toggle source
# File lib/payrollee_cz/concepts/insurance_social_base_concept.rb, line 21
def calc_category
  PayrollConcept::CALC_CATEGORY_GROSS
end
compute_result_value(tag_config, results) click to toggle source
# File lib/payrollee_cz/concepts/insurance_social_base_concept.rb, line 25
def compute_result_value(tag_config, results)
  result_income = 0
  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_social_base_concept.rb, line 14
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_social_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}

  IncomeBaseResult.new(@tag_code, @code, self, result_values)
end
export_xml(xml_builder) click to toggle source
# File lib/payrollee_cz/concepts/insurance_social_base_concept.rb, line 113
def export_xml(xml_builder)
  attributes = {}
  attributes[:interest_code] = @interest_code
  xml_builder.spec_value(attributes)
end
init_values(values) click to toggle source
# File lib/payrollee_cz/concepts/insurance_social_base_concept.rb, line 10
def init_values(values)
  @interest_code = values[:interest_code] || 0
end
interest?() click to toggle source
# File lib/payrollee_cz/concepts/insurance_social_base_concept.rb, line 64
def interest?
  @interest_code!=0
end
max_assessment_base(period, income_base) click to toggle source
# File lib/payrollee_cz/concepts/insurance_social_base_concept.rb, line 78
def max_assessment_base(period, income_base)
  if !interest?
    0
  else
    maximum_base = social_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_social_base_concept.rb, line 91
def min_assessment_base(period, income_base)
  income_base
end
min_max_assessment_base(period, ins_base) click to toggle source
# File lib/payrollee_cz/concepts/insurance_social_base_concept.rb, line 68
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
social_max_assessment(year) click to toggle source
# File lib/payrollee_cz/concepts/insurance_social_base_concept.rb, line 95
def social_max_assessment(year)
  if year>=2013
    1242432
  elsif year==2012
    1206576
  elsif year==2011
    1781280
  elsif year==2010
    1707048
  elsif year==2009
    1130640
  elsif year==2008
    1034880
  else
    0
  end
end
sum_term_for(tag_config, tag_code, result_key, result_item) click to toggle source
# File lib/payrollee_cz/concepts/insurance_social_base_concept.rb, line 53
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_social?
      return result_item.payment
    end
  end
  return 0
end