12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- # 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')
- if !adapter_name
- raise 'Missing ticket_number setting option'
- end
- adapter = load_adapter(adapter_name)
- if !adapter
- raise "Can't load ticket_number adapter '#{adapter_name}'"
- end
- adapter
- end
- end
|