Class: Ecom::Core::ResourceRequisitionItem

Inherits:
ApplicationRecord show all
Defined in:
app/models/ecom/core/resource_requisition_item.rb

Constant Summary collapse

PENDING =
'Pending'.freeze
APPROVED =
'Approved'.freeze
REJECTED =
'Rejected'.freeze
STATUSES =
[PENDING, APPROVED, REJECTED].freeze

Instance Method Summary collapse

Instance Method Details

#quantity_validatorObject



24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'app/models/ecom/core/resource_requisition_item.rb', line 24

def quantity_validator
  if requested_quantity.nil? || awaiting_quantity.nil? ||
     requested_quantity_measurement_unit_id.nil? ||
     awaiting_quantity_measurement_unit_id.nil?
    return
  end

  requested_quantity_measurement_unit =
    Ecom::Core::MeasurementUnit.find_by(id: requested_quantity_measurement_unit_id)
  awaiting_quantity_measurement_unit =
    Ecom::Core::MeasurementUnit.find_by(id: awaiting_quantity_measurement_unit_id)

  requested_quantity_in_si_unit = requested_quantity / requested_quantity_measurement_unit.conversion_factor
  awaiting_quantity_in_si_unit = awaiting_quantity / awaiting_quantity_measurement_unit.conversion_factor

  return unless awaiting_quantity_in_si_unit > requested_quantity_in_si_unit

  errors.add(:awaiting_quantity, 'awaiting quantity can not be greater than requested quantity')
end