Ладно, у меня есть таблица заказов, элементы-порядки и элементы. Все отлично работает, кроме 1 вещи.
class CreateOrders < ActiveRecord::Migration[5.0]
def change
create_table :orders do |t|
t.integer :seller_id
t.integer :customer_id
t.string :shipping_method
t.string :shipping_terms
t.string :payment_method
t.date :delivery_date
t.date :due_date
t.decimal :total_discount, :precision =>8, :scale => 2
t.decimal :subtotal, :precision =>8, :scale => 2
t.decimal :sales_tax, :precision =>8, :scale => 2
t.decimal :total, :precision =>8, :scale => 2
t.timestamps
end
end
end
class CreateOrderItems < ActiveRecord::Migration[5.0]
def change
create_table :order_items do |t|
t.integer :order_id
t.integer :item_id
t.integer :quantity
t.decimal :discount, :precision =>8, :scale => 2
t.decimal :line_total, :precision =>8, :scale => 2
t.boolean :packed
t.string :packed_by
t.string :ffr
t.timestamps
end
end
end
class CreateItems < ActiveRecord::Migration[5.0]
def change
create_table :items do |t|
t.integer :sku
t.string :name
t.decimal :price, :precision =>8, :scale => 2
t.string :description
t.decimal :weight, :precision =>8, :scale => 2
t.timestamps
end
end
end
Как правило, необходимо выполнить расчеты либо при добавлении товаров в заказ, либо до того, как все будет сохранено.
В таблице «Заказы» должно произойти следующее
Рассчитать: total_discount (сумма в долларах), sub_total,: sales_tax,: total
В таблице OrderItems должно произойти следующее
Рассчитать: line_total, скидка (сумма в долларах)
Должен быть вменяемый способ сделать это, но мне еще предстоит выяснить это. Либо я действительно не знаю, что я ищу, либо я прибегаю к помощи всех неправильных вещей.