class Planik::Arbeitszeitkonto::ZeitkontoCalculator

Zulagen berechnen für Medphone

Protected Instance Methods

calc(zeitspannen, zeitspannen_des_zeitkontos) click to toggle source

Hilfsfunktion, um die Zeiten für die Zulagen zu berechnen liefert die Anzahl Sekunde der Überlappung(en) und den Rest als Zeitspanne zurück

# File lib/arbeitszeitkonto/zeitkonto_calculator.rb, line 23
def calc zeitspannen, zeitspannen_des_zeitkontos
  sum_seconds = 0
  zeitspannen_des_zeitkontos.each do |zeitspanne_des_kontos|
    neue_zeitspannen = []
    zeitspannen.each do |zeitspanne|

      #puts "#{self.class.name}#calc: kandidat_zeitspanne   = #{zeitspanne.to_s}"
      #puts "#{self.class.name}#calc: zeitspanne_des_kontos = #{zeitspanne_des_kontos.to_s}"
      seconds, reste = zeitspanne_des_kontos.overlap(zeitspanne)
      neue_zeitspannen.push(*reste)
      sum_seconds += seconds
    end
    zeitspannen = neue_zeitspannen
  end
  #puts "#{self.class.name}#calc: Reste = #{zeitspannen.map(&:to_s).join(", ")}"
  [sum_seconds, zeitspannen]
end
kombiniere(datum, zeit) click to toggle source

Erstellt ein neues Time Objekt mit Datum von @datum und dem Reste von @zeit

# File lib/arbeitszeitkonto/zeitkonto_calculator.rb, line 15
def kombiniere(datum, zeit)
  zeit.change(year: datum.year, month: datum.month, day: datum.day)
end