Sha256: 933623936e1ab62363074de3ff9c82d8f6255854ec1d9892f4d7984eb4f142c2
Contents?: true
Size: 1.3 KB
Versions: 3
Compression:
Stored size: 1.3 KB
Contents
# Bouquet::Shipment.last.delivering module Bouquet class Shipment < ApplicationRecord belongs_to :sales_order has_many :deliveries has_many :locations, through: :deliveries def delivering location = Bouquet::Location.first deliverie = deliveries.new(quantity: quantity, location_id: location.id) deliverie.date = Time.current deliverie.save sales_order.product.assemblies.each do |assembly| assembly_quantity = assembly.quantity storages = Bouquet::Storage.with_material(assembly.material_id) storages.each do |storage| break if assembly_quantity <= 0 if storage.quantity > 0 retrieval_quantity = if storage.quantity - assembly_quantity >= 0 assembly_quantity else storage.quantity end retrieval = deliverie.retrievals.create(quantity: retrieval_quantity, storage_id: storage.id) retrieval.date = Time.current retrieval.save assembly_quantity = assembly_quantity - retrieval_quantity end end if assembly_quantity > 0 puts "Delivering Error: Shortage #{assembly.material.name} = #{assembly_quantity}" raise ActiveRecord::Rollback end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
bouquet-0.2.2 | core/app/models/bouquet/shipment.rb |
bouquet-0.2.1 | core/app/models/bouquet/shipment.rb |
bouquet-0.2.0 | core/app/models/bouquet/shipment.rb |