Sha256: 8c73e4cd97f4b9297281249fcd87f99220fdc68fc413de8107119f01b4108a08

Contents?: true

Size: 683 Bytes

Versions: 3

Compression:

Stored size: 683 Bytes

Contents

# Bouquet::Storage.all
# Bouquet::Storage.with_material(1)
# Bouquet::Storage.last.quantity
module Bouquet
  class Storage < ApplicationRecord
    belongs_to :stock
    has_many :retrievals

    scope :with_material, ->(id) {
      joins({stock: {arrival: :purchase_order}})
        .where(bouquet_purchase_orders: {material_id: id})
    }

    def retrieval_quantity
      retrievals.reduce(0) {|sum, retrieval| sum + retrieval.quantity}
    end

    def quantity
      initial_quantity - retrieval_quantity
    end

    def material_id
      stock.arrival.purchase_order.material_id
    end

    def material_name
      stock.arrival.purchase_order.material.name
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
bouquet-0.2.2 core/app/models/bouquet/storage.rb
bouquet-0.2.1 core/app/models/bouquet/storage.rb
bouquet-0.2.0 core/app/models/bouquet/storage.rb