From 8059512f19852bbfa092c40c31d4f40d75b16d85 Mon Sep 17 00:00:00 2001 From: Du Peng Date: Fri, 26 Aug 2022 11:06:09 +0200 Subject: [PATCH] add order item id to product stock movement for sold --- app/services/payments/payment_concern.rb | 2 +- app/services/product_service.rb | 5 +++-- ...0826085923_add_order_item_id_to_product_stock_movement.rb | 5 +++++ db/schema.rb | 3 ++- 4 files changed, 11 insertions(+), 4 deletions(-) create mode 100644 db/migrate/20220826085923_add_order_item_id_to_product_stock_movement.rb diff --git a/app/services/payments/payment_concern.rb b/app/services/payments/payment_concern.rb index ad60bae5a..987b0726a 100644 --- a/app/services/payments/payment_concern.rb +++ b/app/services/payments/payment_concern.rb @@ -20,7 +20,7 @@ module Payments::PaymentConcern WalletService.debit_user_wallet(order, order.statistic_profile.user) order.update(state: 'in_progress', payment_state: 'paid') order.order_items.each do |item| - ProductService.update_stock(item.orderable, 'external', 'sold', -item.quantity) + ProductService.update_stock(item.orderable, 'external', 'sold', -item.quantity, item.id) end order.reload end diff --git a/app/services/product_service.rb b/app/services/product_service.rb index 22365c2a1..d930be4b9 100644 --- a/app/services/product_service.rb +++ b/app/services/product_service.rb @@ -23,10 +23,11 @@ class ProductService nil end - def self.update_stock(product, stock_type, reason, quantity) + def self.update_stock(product, stock_type, reason, quantity, order_item_id) remaining_stock = product.stock[stock_type] + quantity product.product_stock_movements.create(stock_type: stock_type, reason: reason, quantity: quantity, remaining_stock: remaining_stock, - date: DateTime.current) + date: DateTime.current, + order_item_id: order_item_id) product.stock[stock_type] = remaining_stock product.save end diff --git a/db/migrate/20220826085923_add_order_item_id_to_product_stock_movement.rb b/db/migrate/20220826085923_add_order_item_id_to_product_stock_movement.rb new file mode 100644 index 000000000..57eb279f5 --- /dev/null +++ b/db/migrate/20220826085923_add_order_item_id_to_product_stock_movement.rb @@ -0,0 +1,5 @@ +class AddOrderItemIdToProductStockMovement < ActiveRecord::Migration[5.2] + def change + add_column :product_stock_movements, :order_item_id, :integer + end +end diff --git a/db/schema.rb b/db/schema.rb index 8c2aef3e3..bc90d2784 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2022_08_26_074619) do +ActiveRecord::Schema.define(version: 2022_08_26_085923) do # These are extensions that must be enabled in order to support this database enable_extension "fuzzystrmatch" @@ -632,6 +632,7 @@ ActiveRecord::Schema.define(version: 2022_08_26_074619) do t.datetime "date" t.datetime "created_at", null: false t.datetime "updated_at", null: false + t.integer "order_item_id" t.index ["product_id"], name: "index_product_stock_movements_on_product_id" end