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
Constant Summary
Constants included from Schedulable
Schedulable::SIMPLE_FORM_OPTIONS
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 Schedulable
Methods included from Models::AfterCommittable
Methods included from Models::EventPublishable
Instance Attribute Details
#qty ⇒ Object (readonly)
30 |
# File 'app/models/reserved_serial_number.rb', line 30 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
33 |
# File 'app/models/reserved_serial_number.rb', line 33 scope :committed, -> { where(is_committed: true) } |
.was_split ⇒ ActiveRecord::Relation<ReservedSerialNumber>
A relation of ReservedSerialNumbers that are was split. Active Record Scope
32 |
# File 'app/models/reserved_serial_number.rb', line 32 scope :was_split, -> { where("reserved_serial_numbers.serial_number_id != reserved_serial_numbers.original_serial_number_id") } |
Instance Method Details
#line_item ⇒ LineItem
Validations:
28 |
# File 'app/models/reserved_serial_number.rb', line 28 belongs_to :line_item, optional: true |
#number ⇒ Object
Alias for Serial_number#number
35 |
# File 'app/models/reserved_serial_number.rb', line 35 delegate :number, to: :serial_number |
#original_serial_number ⇒ SerialNumber
27 |
# File 'app/models/reserved_serial_number.rb', line 27 belongs_to :original_serial_number, class_name: "SerialNumber", optional: true |
#rejoin_serial_number ⇒ Object
44 45 46 47 48 49 50 51 |
# File 'app/models/reserved_serial_number.rb', line 44 def rejoin_serial_number return unless original_serial_number split_serial_number = serial_number orig_serial_number = original_serial_number update(serial_number_id: original_serial_number_id, original_serial_number_id: nil) orig_serial_number.rejoin(split_serial_number) end |
#serial_number ⇒ SerialNumber
Validations:
26 |
# File 'app/models/reserved_serial_number.rb', line 26 belongs_to :serial_number, optional: true |
#split_serial_number ⇒ Object
37 38 39 40 41 42 |
# File 'app/models/reserved_serial_number.rb', line 37 def split_serial_number return unless qty < serial_number.qty new_serial_number = serial_number.split(qty) update(serial_number_id: new_serial_number.id, original_serial_number_id: serial_number_id) end |
#was_split? ⇒ Boolean
53 54 55 |
# File 'app/models/reserved_serial_number.rb', line 53 def was_split? serial_number_id != original_serial_number_id end |