Skip to content

Commit

Permalink
Small touches to better fit expected behaviour defined in tests.
Browse files Browse the repository at this point in the history
  • Loading branch information
Aquaj committed Jan 5, 2017
1 parent 7384561 commit cda100a
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 10 deletions.
11 changes: 1 addition & 10 deletions app/controllers/backend/quick_affairs_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ def create
return render :new
end

lettered = lettrable? && @payment.letter_with(@bank_statement_items)
lettered = @amount == @trade.amount && @payment.letter_with(@bank_statement_items)
if lettered && @bank_statement_items
notify_warning :saved_but_couldnt_letter_x_and_y.tl(trade: self.class::Trade.model_name.human, payment: self.class::Payment.model_name.human)
end
Expand Down Expand Up @@ -108,14 +108,5 @@ def affair_params
:third_id,
:payment_id
end

def lettrable?
return false unless @bank_statement_items
bank_statement = @bank_statement_items.first.bank_statement
amount_matches = (@amount == @payment.amount)
amount_matches &&= (@amount == @trade.amount)
mode_is_valid = (bank_statement.cash_id == @payment.mode.cash_id)
amount_matches && mode_is_valid
end
end
end
9 changes: 9 additions & 0 deletions app/models/incoming_payment.rb
Original file line number Diff line number Diff line change
Expand Up @@ -166,8 +166,16 @@ def third
end

def letter_with(bank_statements_items)
return false unless bank_statements_items.present?
return false unless journal_entry
bank_statement = bank_statements_items.first.bank_statement
return false unless mode.cash_id == bank_statement.cash_id
unless bank_statements_items.respond_to?(:pluck)
ids = bank_statements_items.map { |item| item.respond_to?(:id) ? item.id : item }
bank_statements_items = BankStatementItem.where(id: ids)
end
matches = amount == bank_statements_items.sum(:debit) - bank_statements_items.sum(:credit)
return false unless matches
letters = bank_statements_items.pluck(:letter)
bank_statements_items.update_all(letter: nil)
JournalEntryItem.pointed_by(bank_statement)
Expand All @@ -179,6 +187,7 @@ def letter_with(bank_statements_items)
.where(account_id: bank_statement.cash_account_id)
.update_all(bank_statement_id: bank_statement.id, bank_statement_letter: letter)
bank_statements_items.update_all(letter: letter)
letter
end

# Returns true if payment is already deposited
Expand Down
9 changes: 9 additions & 0 deletions app/models/outgoing_payment.rb
Original file line number Diff line number Diff line change
Expand Up @@ -110,8 +110,16 @@ def third
end

def letter_with(bank_statements_items)
return false unless bank_statements_items.present?
return false unless journal_entry
bank_statement = bank_statements_items.first.bank_statement
return false unless mode.cash_id == bank_statement.cash_id
unless bank_statements_items.respond_to?(:pluck)
ids = bank_statements_items.map { |item| item.respond_to?(:id) ? item.id : item }
bank_statements_items = BankStatementItem.where(id: ids)
end
matches = amount == bank_statements_items.sum(:credit) - bank_statements_items.sum(:debit)
return false unless matches
letters = bank_statements_items.pluck(:letter)
bank_statements_items.update_all(letter: nil)
JournalEntryItem.pointed_by(bank_statement)
Expand All @@ -123,6 +131,7 @@ def letter_with(bank_statements_items)
.where(account_id: bank_statement.cash_account_id)
.update_all(bank_statement_id: bank_statement.id, bank_statement_letter: letter)
bank_statements_items.update_all(letter: letter)
letter
end

def check_updateable_or_destroyable?
Expand Down

0 comments on commit cda100a

Please sign in to comment.