Class: ReservedSerialNumber
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- ReservedSerialNumber
- Defined in:
- app/models/reserved_serial_number.rb
Overview
== Schema Information
Table name: reserved_serial_numbers
Database name: primary
id :integer not null, primary key
is_committed :boolean
qty :integer
created_at :datetime
updated_at :datetime
line_item_id :integer not null
original_serial_number_id :integer
serial_number_id :integer
Indexes
index_reserved_serial_numbers_on_line_item_id (line_item_id)
index_reserved_serial_numbers_on_serial_number_id (serial_number_id)
Foreign Keys
fk_rails_... (line_item_id => line_items.id) ON DELETE => cascade
Instance Attribute Summary collapse
- #qty ⇒ Object readonly
Belongs to collapse
Delegated Instance Attributes collapse
-
#number ⇒ Object
Alias for Serial_number#number.
Class Method Summary collapse
-
.committed ⇒ ActiveRecord::Relation<ReservedSerialNumber>
A relation of ReservedSerialNumbers that are committed.
-
.was_split ⇒ ActiveRecord::Relation<ReservedSerialNumber>
A relation of ReservedSerialNumbers that are was split.
Instance Method Summary collapse
Methods inherited from ApplicationRecord
ransackable_associations, ransackable_attributes, ransackable_scopes, ransortable_attributes, #to_relation
Methods included from Models::EventPublishable
Instance Attribute Details
#qty ⇒ Object (readonly)
29 |
# File 'app/models/reserved_serial_number.rb', line 29 validates :serial_number, :line_item, :qty, presence: true |
Class Method Details
.committed ⇒ ActiveRecord::Relation<ReservedSerialNumber>
A relation of ReservedSerialNumbers that are committed. Active Record Scope
32 |
# File 'app/models/reserved_serial_number.rb', line 32 scope :committed, -> { where(is_committed: true) } |
.was_split ⇒ ActiveRecord::Relation<ReservedSerialNumber>
A relation of ReservedSerialNumbers that are was split. Active Record Scope
31 |
# File 'app/models/reserved_serial_number.rb', line 31 scope :was_split, -> { where("reserved_serial_numbers.serial_number_id != reserved_serial_numbers.original_serial_number_id") } |
Instance Method Details
#line_item ⇒ LineItem
Validations:
27 |
# File 'app/models/reserved_serial_number.rb', line 27 belongs_to :line_item, optional: true |
#number ⇒ Object
Alias for Serial_number#number
34 |
# File 'app/models/reserved_serial_number.rb', line 34 delegate :number, to: :serial_number |
#original_serial_number ⇒ SerialNumber
26 |
# File 'app/models/reserved_serial_number.rb', line 26 belongs_to :original_serial_number, class_name: "SerialNumber", optional: true |
#rejoin_serial_number ⇒ Object
43 44 45 46 47 48 49 50 |
# File 'app/models/reserved_serial_number.rb', line 43 def rejoin_serial_number if original_serial_number split_serial_number = serial_number orig_serial_number = original_serial_number self.update(serial_number_id: original_serial_number_id, :original_serial_number_id => nil) orig_serial_number.rejoin(split_serial_number) end end |
#serial_number ⇒ SerialNumber
Validations:
25 |
# File 'app/models/reserved_serial_number.rb', line 25 belongs_to :serial_number, optional: true |
#split_serial_number ⇒ Object
36 37 38 39 40 41 |
# File 'app/models/reserved_serial_number.rb', line 36 def split_serial_number if qty < serial_number.qty new_serial_number = serial_number.split(qty) self.update(serial_number_id: new_serial_number.id, :original_serial_number_id => serial_number_id) end end |
#was_split? ⇒ Boolean
52 53 54 |
# File 'app/models/reserved_serial_number.rb', line 52 def was_split? serial_number_id != original_serial_number_id end |