# Copyright (C) 2012-2016 Zammad Foundation, http://zammad-foundation.org/ class Ticket::Number include ApplicationLib =begin generate new ticket number result = Ticket::Number.generate returns result = "1234556" # new ticket number =end def self.generate # generate number 49_999.times do number = adapter.generate ticket = Ticket.find_by(number: number) return number if !ticket end raise "Can't generate new ticket number!" end =begin check if string contrains a valid ticket number result = Ticket::Number.check('some string [Ticket#123456]') returns result = ticket # Ticket model of ticket with matching ticket number =end def self.check(string) adapter.check(string) end def self.adapter # load backend based on config adapter_name = Setting.get('ticket_number') raise 'Missing ticket_number setting option' if !adapter_name adapter_name.constantize end end