Class: DocumentNumber::Numerator

Inherits:
Object
  • Object
show all
Defined in:
lib/document_number/numerator.rb

Class Method Summary collapse

Class Method Details

.next_number(document, options) ⇒ Object

Gets next number for document



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/document_number/numerator.rb', line 6

def self.next_number(document, options)
  DocumentNumber.transaction(:requires_new => true) do
    if ActiveRecord::VERSION::MAJOR < 4
      document_number = DocumentNumber.lock(true).find_or_initialize_by_document(document)
    else
      document_number = DocumentNumber.lock(true).find_or_initialize_by(:document => document)
    end

    number = document_number.number == 1 ? options[:start] : document_number.number

    document_number.number = number + 1
    document_number.save!

    number
  end
end