Class: NextSges::ApplicationRecord

Inherits:
ApplicationRecord
  • Object
show all
Defined in:
app/models/next_sges/application_record.rb

Constant Summary collapse

MAIL_REGEX =
/\A[a-z0-9._%+-]+@[a-z0-9._%+-].[a-z0-9._%+-]/i
CELL_REGEX =
/[[:digit:]]{9}/
DEFAULT_STATUS_ENUM =
{active: 0, inactive: 1}
DEFAULT_IDENTIFICATION_ENUM =
{identification: 0, passport: 2}

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.map_for_filter(map_method = :number) ⇒ Object



29
30
31
# File 'app/models/next_sges/application_record.rb', line 29

def self.map_for_filter(map_method = :number)
  map_for_select(map_method)
end

.map_for_select(map_method = :number) ⇒ Object



25
26
27
# File 'app/models/next_sges/application_record.rb', line 25

def self.map_for_select(map_method = :number)
  all.map{|f| [f.send(map_method), f.id]}
end

Instance Method Details

#create_numberObject

creates a sequencial number



11
12
13
14
15
16
17
18
# File 'app/models/next_sges/application_record.rb', line 11

def create_number
  allowed_classess = [NextSges::Parent, NextSges::Student, NextSges::School, NextSges::Deposit, NextSges::Administrator, NextSges::SchoolAdmin, NextSges::CollectionNote, NextSges::ResponsibleOther].map(&:name)
  this_class = self.class.name
  return nil unless allowed_classess.include?(this_class)
  i = self.class.all.map{|i| i.number.to_s.gsub(/\D/, '').to_i}.compact.sort.last || 0
  i = i + 1
  self.number = "#{self.class::INITIAL_LETTER}#{i.to_s.rjust(8, '0')}"
end

#create_number!Object

creates a number and safes object after



21
22
23
# File 'app/models/next_sges/application_record.rb', line 21

def create_number!
  self.save unless self.create_number.nil?
end