mirror of
https://github.com/maybe-finance/maybe.git
synced 2025-07-22 14:49:38 +02:00
* feat: make transaction container fixed height
* feat: pagination per page query
* fix: linting errors
* Changelog page that pulls from Github Release notes (#867)
* Changelog page that pulls from Github Release notes
* Review changelog page styles
* Move changelog page title to i18n translations
* Bump to 0.1.0-alpha.6
Signed-off-by: Zach Gollwitzer <zach@maybe.co>
* Bump aws-sdk-s3 from 1.152.0 to 1.152.3 (#880)
Bumps [aws-sdk-s3](https://github.com/aws/aws-sdk-ruby) from 1.152.0 to 1.152.3.
- [Release notes](https://github.com/aws/aws-sdk-ruby/releases)
- [Changelog](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-s3/CHANGELOG.md)
- [Commits](https://github.com/aws/aws-sdk-ruby/commits)
---
updated-dependencies:
- dependency-name: aws-sdk-s3
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump mocha from 2.3.0 to 2.4.0 (#878)
Bumps [mocha](https://github.com/freerange/mocha) from 2.3.0 to 2.4.0.
- [Changelog](https://github.com/freerange/mocha/blob/main/RELEASE.md)
- [Commits](https://github.com/freerange/mocha/compare/v2.3.0...v2.4.0)
---
updated-dependencies:
- dependency-name: mocha
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump octokit from 8.1.0 to 9.1.0 (#877)
Bumps [octokit](https://github.com/octokit/octokit.rb) from 8.1.0 to 9.1.0.
- [Release notes](https://github.com/octokit/octokit.rb/releases)
- [Changelog](https://github.com/octokit/octokit.rb/blob/main/RELEASE.md)
- [Commits](https://github.com/octokit/octokit.rb/compare/v8.1.0...v9.1.0)
---
updated-dependencies:
- dependency-name: octokit
dependency-type: direct:production
update-type: version-update:semver-major
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Bump rails from `f9c847f` to `5d34172` (#879)
Bumps [rails](https://github.com/rails/rails) from `f9c847f` to `5d34172`.
- [Release notes](https://github.com/rails/rails/releases)
- [Commits](f9c847fac1...5d34172ff4
)
---
updated-dependencies:
- dependency-name: rails
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zach Gollwitzer <zach@maybe.co>
* Update issue templates
* Add merchant select when editing transaction (#885)
* Transaction transfers, payments, and matching (#883)
* Add transfer model and clean up family snapshot fixtures
* Ignore transfers in income and expense snapshots
* Add transfer validations
* Implement basic transfer matching UI
* Fix merge conflicts
* Add missing translations
* Tweak selection states for transfer types
* Add missing i18n translation
* Ensure correct form's hidden input for selectedIds (#891)
* feat: make transaction container fixed height
* feat: pagination per page query
* fix: linting errors
* Transaction transfers, payments, and matching (#883)
* Add transfer model and clean up family snapshot fixtures
* Ignore transfers in income and expense snapshots
* Add transfer validations
* Implement basic transfer matching UI
* Fix merge conflicts
* Add missing translations
* Tweak selection states for transfer types
* Add missing i18n translation
* feat: make transaction container fixed height
* feat: pagination per page query
* fix: linting errors
* revert unnecessary changes
* revert unnecessary changes
* code review changes
* code review changes
* code review changes
* remove unused imports
* fix: unit tests
* remove border
* fix: transaction padding
* fix: transaction container height
---------
Signed-off-by: Zach Gollwitzer <zach@maybe.co>
Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Karan Kiri <karankiri.96@gmail.com>
Co-authored-by: Mattia <malnis.mattia@gmail.com>
Co-authored-by: Zach Gollwitzer <zach@maybe.co>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zach Gollwitzer <zach.gollwitzer@gmail.com>
Co-authored-by: Jakub Kottnauer <jk@jakubkottnauer.com>
Co-authored-by: ziraq young <ziraqyoung@outlook.com>
124 lines
3.4 KiB
Ruby
124 lines
3.4 KiB
Ruby
class TransactionsController < ApplicationController
|
|
layout "with_sidebar"
|
|
|
|
before_action :set_transaction, only: %i[ show edit update destroy ]
|
|
|
|
def index
|
|
@q = search_params
|
|
result = Current.family.transactions.search(@q).ordered
|
|
@pagy, @transactions = pagy(result, items: params[:per_page] || "10")
|
|
|
|
@totals = {
|
|
count: result.select { |t| t.currency == Current.family.currency }.count,
|
|
income: result.income_total(Current.family.currency).abs,
|
|
expense: result.expense_total(Current.family.currency)
|
|
}
|
|
end
|
|
|
|
def show
|
|
end
|
|
|
|
def new
|
|
@transaction = Transaction.new.tap do |txn|
|
|
if params[:account_id]
|
|
txn.account = Current.family.accounts.find(params[:account_id])
|
|
end
|
|
end
|
|
end
|
|
|
|
def edit
|
|
end
|
|
|
|
def create
|
|
@transaction = Current.family.accounts
|
|
.find(params[:transaction][:account_id])
|
|
.transactions.build(transaction_params.merge(amount: amount))
|
|
|
|
@transaction.save!
|
|
@transaction.sync_account_later
|
|
redirect_to transactions_url, notice: t(".success")
|
|
end
|
|
|
|
def update
|
|
@transaction.update! transaction_params
|
|
@transaction.sync_account_later
|
|
|
|
redirect_to transaction_url(@transaction), notice: t(".success")
|
|
end
|
|
|
|
def destroy
|
|
@transaction.destroy!
|
|
@transaction.sync_account_later
|
|
redirect_to transactions_url, notice: t(".success")
|
|
end
|
|
|
|
def bulk_delete
|
|
destroyed = Current.family.transactions.destroy_by(id: bulk_delete_params[:transaction_ids])
|
|
redirect_back_or_to transactions_url, notice: t(".success", count: destroyed.count)
|
|
end
|
|
|
|
def bulk_edit
|
|
end
|
|
|
|
def bulk_update
|
|
transactions = Current.family.transactions.where(id: bulk_update_params[:transaction_ids])
|
|
if transactions.update_all(bulk_update_params.except(:transaction_ids).to_h.compact_blank!)
|
|
redirect_back_or_to transactions_url, notice: t(".success", count: transactions.count)
|
|
else
|
|
flash.now[:error] = t(".failure")
|
|
render :index, status: :unprocessable_entity
|
|
end
|
|
end
|
|
|
|
def mark_transfers
|
|
Current.family
|
|
.transactions
|
|
.where(id: bulk_update_params[:transaction_ids])
|
|
.mark_transfers!
|
|
|
|
redirect_back_or_to transactions_url, notice: t(".success")
|
|
end
|
|
|
|
def unmark_transfers
|
|
Current.family
|
|
.transactions
|
|
.where(id: bulk_update_params[:transaction_ids])
|
|
.update_all marked_as_transfer: false
|
|
|
|
redirect_back_or_to transactions_url, notice: t(".success")
|
|
end
|
|
|
|
private
|
|
|
|
def set_transaction
|
|
@transaction = Current.family.transactions.find(params[:id])
|
|
end
|
|
|
|
def amount
|
|
if nature.income?
|
|
transaction_params[:amount].to_d * -1
|
|
else
|
|
transaction_params[:amount].to_d
|
|
end
|
|
end
|
|
|
|
def nature
|
|
params[:transaction][:nature].to_s.inquiry
|
|
end
|
|
|
|
def bulk_delete_params
|
|
params.require(:bulk_delete).permit(transaction_ids: [])
|
|
end
|
|
|
|
def bulk_update_params
|
|
params.require(:bulk_update).permit(:date, :notes, :excluded, :category_id, :merchant_id, transaction_ids: [])
|
|
end
|
|
|
|
def search_params
|
|
params.fetch(:q, {}).permit(:start_date, :end_date, :search, accounts: [], account_ids: [], categories: [], merchants: [])
|
|
end
|
|
|
|
def transaction_params
|
|
params.require(:transaction).permit(:name, :date, :amount, :currency, :notes, :excluded, :category_id, :merchant_id, tag_ids: [])
|
|
end
|
|
end
|