Adopt model to reference GroupOrder in generated FinancialTransaction
This commit is contained in:
parent
b6542fb711
commit
17059a8104
7 changed files with 17 additions and 5 deletions
|
@ -5,6 +5,7 @@ class FinancialTransaction < ApplicationRecord
|
||||||
belongs_to :user
|
belongs_to :user
|
||||||
belongs_to :financial_link
|
belongs_to :financial_link
|
||||||
belongs_to :financial_transaction_type
|
belongs_to :financial_transaction_type
|
||||||
|
belongs_to :group_order
|
||||||
belongs_to :reverts, class_name: 'FinancialTransaction', foreign_key: 'reverts_id'
|
belongs_to :reverts, class_name: 'FinancialTransaction', foreign_key: 'reverts_id'
|
||||||
has_one :reverted_by, class_name: 'FinancialTransaction', foreign_key: 'reverts_id'
|
has_one :reverted_by, class_name: 'FinancialTransaction', foreign_key: 'reverts_id'
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,7 @@ class GroupOrder < ApplicationRecord
|
||||||
belongs_to :ordergroup
|
belongs_to :ordergroup
|
||||||
has_many :group_order_articles, :dependent => :destroy
|
has_many :group_order_articles, :dependent => :destroy
|
||||||
has_many :order_articles, :through => :group_order_articles
|
has_many :order_articles, :through => :group_order_articles
|
||||||
|
has_one :financial_transaction
|
||||||
belongs_to :updated_by, :class_name => "User", :foreign_key => "updated_by_user_id"
|
belongs_to :updated_by, :class_name => "User", :foreign_key => "updated_by_user_id"
|
||||||
|
|
||||||
validates_presence_of :order_id
|
validates_presence_of :order_id
|
||||||
|
|
|
@ -244,7 +244,7 @@ class Order < ApplicationRecord
|
||||||
for group_order in gos
|
for group_order in gos
|
||||||
if group_order.ordergroup
|
if group_order.ordergroup
|
||||||
price = group_order.price * -1 # decrease! account balance
|
price = group_order.price * -1 # decrease! account balance
|
||||||
group_order.ordergroup.add_financial_transaction!(price, transaction_note, user, transaction_type)
|
group_order.ordergroup.add_financial_transaction!(price, transaction_note, user, transaction_type, nil, group_order)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -80,9 +80,9 @@ class Ordergroup < Group
|
||||||
|
|
||||||
# Creates a new FinancialTransaction for this Ordergroup and updates the account_balance accordingly.
|
# Creates a new FinancialTransaction for this Ordergroup and updates the account_balance accordingly.
|
||||||
# Throws an exception if it fails.
|
# Throws an exception if it fails.
|
||||||
def add_financial_transaction!(amount, note, user, transaction_type, link = nil)
|
def add_financial_transaction!(amount, note, user, transaction_type, link = nil, group_order = nil)
|
||||||
transaction do
|
transaction do
|
||||||
t = FinancialTransaction.new(ordergroup: self, amount: amount, note: note, user: user, financial_transaction_type: transaction_type, financial_link: link)
|
t = FinancialTransaction.new(ordergroup: self, amount: amount, note: note, user: user, financial_transaction_type: transaction_type, financial_link: link, group_order: group_order)
|
||||||
t.save!
|
t.save!
|
||||||
update_balance!
|
update_balance!
|
||||||
# Notify only when order group had a positive balance before the last transaction:
|
# Notify only when order group had a positive balance before the last transaction:
|
||||||
|
|
|
@ -38,7 +38,11 @@
|
||||||
%td= h show_user(t.user)
|
%td= h show_user(t.user)
|
||||||
- if FinancialTransactionType.has_multiple_types
|
- if FinancialTransactionType.has_multiple_types
|
||||||
%td= h t.financial_transaction_type.name
|
%td= h t.financial_transaction_type.name
|
||||||
%td= h t.note
|
%td
|
||||||
|
- if t.group_order
|
||||||
|
= link_to t.note, t.group_order
|
||||||
|
- else
|
||||||
|
= t.note
|
||||||
- FinancialTransactionClass.sorted.each do |c|
|
- FinancialTransactionClass.sorted.each do |c|
|
||||||
%td.numeric{style: 'width:5em'}
|
%td.numeric{style: 'width:5em'}
|
||||||
- if t.financial_transaction_type.financial_transaction_class == c
|
- if t.financial_transaction_type.financial_transaction_class == c
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
class AddGroupOrderToFinancialTransaction < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_reference :financial_transactions, :group_order
|
||||||
|
end
|
||||||
|
end
|
|
@ -11,7 +11,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20181201000200) do
|
ActiveRecord::Schema.define(version: 20181201000210) do
|
||||||
|
|
||||||
create_table "article_categories", force: :cascade do |t|
|
create_table "article_categories", force: :cascade do |t|
|
||||||
t.string "name", limit: 255, default: "", null: false
|
t.string "name", limit: 255, default: "", null: false
|
||||||
|
@ -137,6 +137,7 @@ ActiveRecord::Schema.define(version: 20181201000200) do
|
||||||
t.integer "financial_transaction_type_id", limit: 4, null: false
|
t.integer "financial_transaction_type_id", limit: 4, null: false
|
||||||
t.integer "financial_link_id", limit: 4
|
t.integer "financial_link_id", limit: 4
|
||||||
t.integer "reverts_id", limit: 4
|
t.integer "reverts_id", limit: 4
|
||||||
|
t.integer "group_order_id"
|
||||||
end
|
end
|
||||||
|
|
||||||
add_index "financial_transactions", ["ordergroup_id"], name: "index_financial_transactions_on_ordergroup_id", using: :btree
|
add_index "financial_transactions", ["ordergroup_id"], name: "index_financial_transactions_on_ordergroup_id", using: :btree
|
||||||
|
|
Loading…
Reference in a new issue