Class: Cats::Core::TransportOrder
- Inherits:
 - 
      ApplicationRecord
      
        
- Object
 - ActiveRecord::Base
 - ApplicationRecord
 - Cats::Core::TransportOrder
 
 
- Defined in:
 - app/models/cats/core/transport_order.rb
 
Constant Summary collapse
- DRAFT =
 "Draft".freeze
- APPROVED =
 "Approved".freeze
- STATUSES =
 [DRAFT, APPROVED].freeze
- ACTIVE =
 "Active".freeze
- CANCELLED =
 "Cancelled".freeze
- EXPIRED =
 "Expired".freeze
- ORDER_STATUSES =
 [ACTIVE, CANCELLED, EXPIRED].freeze
Instance Method Summary collapse
Instance Method Details
#approve(user) ⇒ Object
      46 47 48 49 50 51 52 53 54 55 56 57 58  | 
    
      # File 'app/models/cats/core/transport_order.rb', line 46 def approve(user) raise(StandardError, "Transport order is already approved.") if status == APPROVED begin self.status = APPROVED self.approved_by = user save! self rescue ActiveRecord::RecordInvalid => e error = e.record.errors.(:status)[0] raise(StandardError, error) end end  | 
  
#validate_against_requisition ⇒ Object
      28 29 30 31 32 33 34  | 
    
      # File 'app/models/cats/core/transport_order.rb', line 28 def validate_against_requisition return unless transport_requisition return if transport_requisition.approved? errors.add(:transport_requisition, "is not approved.") end  | 
  
#validate_status ⇒ Object
      36 37 38 39 40 41 42 43 44  | 
    
      # File 'app/models/cats/core/transport_order.rb', line 36 def validate_status return unless status return if status == DRAFT return if transport_order_items.count.positive? errors.add(:status, 'cannot be set to "APPROVED" because the order has no items.') if status == APPROVED end  |