Class: Logistics::Core::ChargeableServiceUnitOfCharge

Inherits:
ApplicationRecord
  • Object
show all
Defined in:
app/models/logistics/core/chargeable_service_unit_of_charge.rb

Class Method Summary collapse

Methods inherited from ApplicationRecord

as_json

Class Method Details

.generate_chargeable_service_unitsObject



20
21
22
23
24
25
26
27
28
29
30
# File 'app/models/logistics/core/chargeable_service_unit_of_charge.rb', line 20

def self.generate_chargeable_service_units
  service_delivery_units = ServiceDeliveryUnit.all
  service_delivery_units.each { |sdu|
    chargeable_services = get_chargeable_service_for_sdu(sdu.id)
    chargeable_services.each { |cs|
      if ChargeableServiceUnitOfCharge.where('service_delivery_unit_id' => sdu.id, 'chargeable_service_id' => cs.id).count == 0
        ChargeableServiceUnitOfCharge.create('service_delivery_unit_id' => sdu.id, 'chargeable_service_id' => cs.id, 'has_increment' => FALSE)
      end
    }
  }
end

.get_chargeable_service_for_sdu(sdu_id) ⇒ Object



15
16
17
18
# File 'app/models/logistics/core/chargeable_service_unit_of_charge.rb', line 15

def self.get_chargeable_service_for_sdu(sdu_id)
  cs_ids = ServiceDeliveryUnitChargeableService.select(:chargeable_service_id).where('service_delivery_unit_id' => sdu_id)
  return ChargeableService.where('id' => cs_ids)
end

.get_chargeable_services_with_specific_sdu_and_uoc(sdu_id, code) ⇒ Object



45
46
47
48
49
50
# File 'app/models/logistics/core/chargeable_service_unit_of_charge.rb', line 45

def self.get_chargeable_services_with_specific_sdu_and_uoc(sdu_id, code)
  unit_of_charge_id = UnitOfCharge.find_by(code: code)
  cs_ids = ChargeableServiceUnitOfCharge.select(:chargeable_service_id).
                                          where(service_delivery_unit_id: sdu_id, unit_of_charge_id: unit_of_charge_id)
  chargeable_services = ChargeableService.where(id: cs_ids)
end

.get_sdus_with_specific_unit_of_charge(code) ⇒ Object



38
39
40
41
42
43
# File 'app/models/logistics/core/chargeable_service_unit_of_charge.rb', line 38

def self.get_sdus_with_specific_unit_of_charge(code)
  unit_of_charge_id = UnitOfCharge.find_by(code: code).id
  sdu_ids = ChargeableServiceUnitOfCharge.select(:service_delivery_unit_id).
                                          where(unit_of_charge_id: unit_of_charge_id).distinct
  sdus = ServiceDeliveryUnit.where(id: sdu_ids)
end

.get_unit_of_charge(sdu_id, cs_id) ⇒ Object



32
33
34
35
36
# File 'app/models/logistics/core/chargeable_service_unit_of_charge.rb', line 32

def self.get_unit_of_charge(sdu_id, cs_id)
  csuoc = ChargeableServiceUnitOfCharge.where('service_delivery_unit_id' => sdu_id, 'chargeable_service_id' => cs_id)
  unit_of_charge = UnitOfCharge.find(csuoc[0].unit_of_charge_id)
  return unit_of_charge.code
end