class XrayRetake < ApplicationRecord
after_commit :update_code, if: -> { previous_changes[:status] }
def update_code
prev_status = previous_changes[:status][0]
new_status = previous_changes[:status][1]
if prev_status == 'APPROVAL' && new_status == 'APPROVED'
self.update_columns(code: generate_retake_code)
end
end
def generate_retake_code
"99#{'%012i' % seq_nextval('retake_xray_seq')}"
end
end