time_accounting.rb 757 B

1234567891011121314151617181920212223242526
  1. # Copyright (C) 2012-2016 Zammad Foundation, http://zammad-foundation.org/
  2. class Ticket::TimeAccounting < ApplicationModel
  3. belongs_to :ticket
  4. belongs_to :ticket_article, class_name: 'Ticket::Article', inverse_of: :ticket_time_accounting
  5. after_create :ticket_time_unit_update
  6. after_update :ticket_time_unit_update
  7. def ticket_time_unit_update
  8. exists = false
  9. time_units = 0
  10. Ticket::TimeAccounting.where(ticket_id: ticket_id).each do |record|
  11. time_units += record.time_unit
  12. exists = true
  13. end
  14. return false if exists == false
  15. ticket = Ticket.lookup(id: ticket_id)
  16. return false if !ticket
  17. return false if ticket.time_unit == time_units
  18. ticket.time_unit = time_units
  19. ticket.save!
  20. true
  21. end
  22. end