class Finance::BankTransactionsController < ApplicationController
  before_action :authenticate_finance
  inherit_resources

  def index
    if params["sort"]
      sort = case params["sort"]
             when "date" then "date"
             when "amount" then "amount"
             when "financial_link" then "financial_link_id"
             when "date_reverse" then "date DESC"
             when "amount_reverse" then "amount DESC"
             when "financial_link_reverse" then "financial_link_id DESC"
             end
    else
      sort = "date DESC"
    end

    @bank_account = BankAccount.find(params[:bank_account_id])
    @bank_transactions_all = @bank_account.bank_transactions.order(sort).includes(:financial_link)
    @bank_transactions_all = @bank_transactions_all.where('reference LIKE ? OR text LIKE ?', "%#{params[:query]}%", "%#{params[:query]}%") unless params[:query].nil?
    @bank_transactions = @bank_transactions_all.page(params[:page]).per(@per_page)

    respond_to do |format|
      format.js; format.html { render }
      format.csv do
        send_data BankTransactionsCsv.new(@bank_transactions_all).to_csv, filename: 'transactions.csv', type: 'text/csv'
      end
    end
  end

  def show
    @bank_transaction = BankTransaction.find(params[:id])
  end
end