trabajo-afectivo/app/models/ticket/touches_associations.rb

38 lines
1.3 KiB
Ruby
Raw Permalink Normal View History

2022-01-01 13:38:12 +00:00
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
# Update assigned customer and organization change_time information on ticket changes.
module Ticket::TouchesAssociations
extend ActiveSupport::Concern
included do
after_create :ticket_touch_associations
after_update :ticket_touch_associations
after_destroy :ticket_touch_associations
end
private
def ticket_touch_associations
# return if we run import mode
return true if Setting.get('import_mode')
# touch old customer if changed
customer_id_changed = saved_changes['customer_id']
if customer_id_changed && customer_id_changed[0] != customer_id_changed[1] && customer_id_changed[0]
User.find(customer_id_changed[0]).touch # rubocop:disable Rails/SkipsModelValidations
end
# touch new/current customer
customer&.touch # rubocop:disable Rails/SkipsModelValidations
# touch old organization if changed
organization_id_changed = saved_changes['organization_id']
if organization_id_changed && organization_id_changed[0] != organization_id_changed[1] && organization_id_changed[0]
Organization.find(organization_id_changed[0]).touch # rubocop:disable Rails/SkipsModelValidations
end
organization&.touch # rubocop:disable Rails/SkipsModelValidations
end
end