Sha256: 74fc235ecdb838e926cba4f9376a0524ae4e685a13a61d3f3b41b6c7f619bea4

Contents?: true

Size: 1.05 KB

Versions: 17

Compression:

Stored size: 1.05 KB

Contents

class Openall_time_applet::Models::Worktime < Knj::Datarow
  has_one [
    :Task
  ]
  
  def self.update_cache(d, args)
    res = nil
    args[:oata].oa_conn do |conn|
      res = conn.request(:getLatestWorktimes)
    end
    
    #Update all worktimes.
    found = []
    res.each do |wt_d|
      found << wt_d["uid"]
      task = self.ob.get_by(:Task, {"openall_uid" => wt_d["task_uid"]})
      
      save_hash = {
        :openall_uid => wt_d["uid"],
        :task_id => task.id,
        :timestamp => Knj::Datet.in(wt_d["timestamp"]),
        :worktime => Knj::Strings.human_time_str_to_secs(wt_d["worktime"]),
        :transporttime => Knj::Strings.human_time_str_to_secs(wt_d["transporttime"]),
        :comment => wt_d["comment"]
      }
      
      wt = self.ob.get_by(:Worktime, {"openall_uid" => wt_d["uid"]})
      if wt
        wt.update(save_hash)
      else
        wt = self.ob.add(:Worktime, save_hash)
      end
    end
    
    #Delete the ones not given.
    list = self.ob.list(:Worktime, {"openall_uid_not" => found})
    self.ob.deletes(list)
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
openall_time_applet-0.0.21 models/worktime.rb
openall_time_applet-0.0.20 models/worktime.rb
openall_time_applet-0.0.19 models/worktime.rb
openall_time_applet-0.0.18 models/worktime.rb
openall_time_applet-0.0.17 models/worktime.rb
openall_time_applet-0.0.16 models/worktime.rb
openall_time_applet-0.0.15 models/worktime.rb
openall_time_applet-0.0.14 models/worktime.rb
openall_time_applet-0.0.13 models/worktime.rb
openall_time_applet-0.0.12 models/worktime.rb
openall_time_applet-0.0.11 models/worktime.rb
openall_time_applet-0.0.10 models/worktime.rb
openall_time_applet-0.0.7 models/worktime.rb
openall_time_applet-0.0.5 models/worktime.rb
openall_time_applet-0.0.4 models/worktime.rb
openall_time_applet-0.0.3 models/worktime.rb
openall_time_applet-0.0.2 models/worktime.rb