1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- # Copyright (C) 2012-2014 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
- (1..50_000).each { |i|
- number = adapter.generate
- ticket = Ticket.where( :number => number ).first
- return number if !ticket
- }
- 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
|