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