class PayrolleeCz::PayConceptGateway

Constants

CONCEPT_HOURS_ABSENCE
CONCEPT_HOURS_WORKING
CONCEPT_INCOME_GROSS
CONCEPT_INCOME_NETTO
CONCEPT_INSURANCE_HEALTH
CONCEPT_INSURANCE_HEALTH_BASE
CONCEPT_INSURANCE_SOCIAL
CONCEPT_INSURANCE_SOCIAL_BASE
CONCEPT_SALARY_MONTHLY
CONCEPT_SAVINGS_PENSIONS
CONCEPT_SCHEDULE_TERM
CONCEPT_SCHEDULE_WEEKLY
CONCEPT_TAX_ADVANCE
CONCEPT_TAX_ADVANCE_BASE
CONCEPT_TAX_ADVANCE_FINAL
CONCEPT_TAX_BONUS_CHILD
CONCEPT_TAX_CLAIM_CHILD
CONCEPT_TAX_CLAIM_DISABILITY
CONCEPT_TAX_CLAIM_PAYER
CONCEPT_TAX_CLAIM_STUDYING
CONCEPT_TAX_EMPLOYERS_HEALTH
CONCEPT_TAX_EMPLOYERS_SOCIAL
CONCEPT_TAX_INCOME_BASE
CONCEPT_TAX_RELIEF_CHILD
CONCEPT_TAX_RELIEF_DISABILITY
CONCEPT_TAX_RELIEF_PAYER
CONCEPT_TAX_RELIEF_STUDYING
CONCEPT_TAX_WITHHOLD
CONCEPT_TAX_WITHHOLD_BASE
CONCEPT_TIMESHEET_PERIOD
CONCEPT_TIMESHEET_WORK
CONCEPT_UNKNOWN
REFCON_HOURS_ABSENCE
REFCON_HOURS_WORKING
REFCON_INCOME_GROSS
REFCON_INCOME_NETTO
REFCON_INSURANCE_HEALTH
REFCON_INSURANCE_HEALTH_BASE
REFCON_INSURANCE_SOCIAL
REFCON_INSURANCE_SOCIAL_BASE
REFCON_SALARY_MONTHLY
REFCON_SAVINGS_PENSIONS
REFCON_SCHEDULE_TERM
REFCON_SCHEDULE_WEEKLY
REFCON_TAX_ADVANCE
REFCON_TAX_ADVANCE_BASE
REFCON_TAX_ADVANCE_FINAL
REFCON_TAX_BONUS_CHILD
REFCON_TAX_CLAIM_CHILD
REFCON_TAX_CLAIM_DISABILITY
REFCON_TAX_CLAIM_PAYER
REFCON_TAX_CLAIM_STUDYING
REFCON_TAX_EMPLOYERS_HEALTH
REFCON_TAX_EMPLOYERS_SOCIAL
REFCON_TAX_INCOME_BASE
REFCON_TAX_RELIEF_CHILD
REFCON_TAX_RELIEF_DISABILITY
REFCON_TAX_RELIEF_PAYER
REFCON_TAX_RELIEF_STUDYING
REFCON_TAX_WITHHOLD
REFCON_TAX_WITHHOLD_BASE
REFCON_TIMESHEET_PERIOD
REFCON_TIMESHEET_WORK
REFCON_UNKNOWN

Attributes

models[R]

Public Class Methods

new() click to toggle source
# File lib/payrollee_cz/core/pay_concept_gateway.rb, line 83
def initialize
  load_concepts
  @models = Hash.new
  @models[CONCEPT_UNKNOWN] = UnknownConcept.new
end

Public Instance Methods

classname_for(code_name) click to toggle source
# File lib/payrollee_cz/core/pay_concept_gateway.rb, line 95
def classname_for(code_name)
  concept_name = code_name.match(/CONCEPT_(.*)/)[1]
  class_name = concept_name.underscore.camelize + 'Concept'
  class_name
end
collect_pending_codes_for(term_hash) click to toggle source
# File lib/payrollee_cz/core/pay_concept_gateway.rb, line 135
def collect_pending_codes_for(term_hash)
  pending = term_hash.inject ([]) do |agr, term_item|
    term_concept = term_item.last
    term_pending_codes = term_concept.pending_codes
    agr.concat(rec_pending_codes(term_pending_codes))
  end
  pending_uniq = pending.uniq
end
concept_for(tag_code, concept_name, values) click to toggle source
# File lib/payrollee_cz/core/pay_concept_gateway.rb, line 89
def concept_for(tag_code, concept_name, values)
  concept_class = classname_for(concept_name)
  concept_class = self.class.const_get(concept_class)
  concept_class.new(tag_code, values)
end
concept_from_models(term_tag) click to toggle source

concept tree

# File lib/payrollee_cz/core/pay_concept_gateway.rb, line 108
def concept_from_models(term_tag)
  if !models.include?(term_tag.concept_code)
    base_concept = empty_concept_for(term_tag)
    models[term_tag.concept_code] = base_concept
  else
    base_concept = models[term_tag.concept_code]
  end
  base_concept
end
empty_concept_for(term_tag) click to toggle source
# File lib/payrollee_cz/core/pay_concept_gateway.rb, line 127
def empty_concept_for(term_tag)
  empty_values = {}
  empty_concept = concept_for(term_tag.code, term_tag.concept_name, empty_values)
  empty_pending = rec_pending_codes(empty_concept.pending_codes)
  empty_concept.set_pending_codes(empty_pending)
  return empty_concept
end
find_concept(concept_code) click to toggle source
# File lib/payrollee_cz/core/pay_concept_gateway.rb, line 118
def find_concept(concept_code)
  if models.include?(concept_code)
    base_concept = models[concept_code]
  else
    base_concept = models[CONCEPT_UNKNOWN]
  end
  base_concept
end
load_concepts() click to toggle source
# File lib/payrollee_cz/core/pay_concept_gateway.rb, line 101
def load_concepts
  lib_dir = File.dirname(__FILE__)
  full_pattern = File.join(lib_dir, '../concepts', '*.rb')
  Dir.glob(full_pattern).each {|file| require file}
end
pending_codes_for_tag_code(tag_refer) click to toggle source
# File lib/payrollee_cz/core/pay_concept_gateway.rb, line 153
def pending_codes_for_tag_code(tag_refer)
  base_concept = concept_from_models(tag_refer)
  if base_concept.tag_pending_codes.nil?
    rec_pending_codes(base_concept.pending_codes)
  else
    base_concept.tag_pending_codes
  end
end
rec_pending_codes(pending_codes) click to toggle source
# File lib/payrollee_cz/core/pay_concept_gateway.rb, line 144
def rec_pending_codes(pending_codes)
  #rspec_log_pending_array(pending_codes)
  ret_codes = pending_codes.inject(pending_codes.dup)  do |agr, tag|
    pending_codes_fot_tag = pending_codes_for_tag_code(tag)
    agr.concat(pending_codes_fot_tag)
  end
  ret_codes.uniq
end
rspec_log_pending_array(pending_codes) click to toggle source

debug log in RSpec log

# File lib/payrollee_cz/core/pay_concept_gateway.rb, line 163
def rspec_log_pending_array(pending_codes)
  pending_codes.each do |item|
    ::Rails.logger.info("#{item.name} - #{item.concept_name}\n")
  end
end