mirror of
https://github.com/we-promise/sure.git
synced 2026-04-09 15:24:48 +00:00
* Initial split transaction support * Add support to unsplit and edit split * Update show.html.erb * FIX address reviews * Improve UX * Update show.html.erb * Reviews * Update edit.html.erb * Add parent category to dialog * Update en.yml * Add UI indication to totals * FIX ui update * Add category select like rest of app --------- Signed-off-by: Juan José Mata <juanjo.mata@gmail.com> Co-authored-by: Juan José Mata <juanjo.mata@gmail.com>
29 lines
984 B
Ruby
29 lines
984 B
Ruby
class Transactions::BulkUpdatesController < ApplicationController
|
|
def new
|
|
end
|
|
|
|
def create
|
|
# Skip split parents from bulk update - update children instead
|
|
updated = Current.family
|
|
.entries
|
|
.excluding_split_parents
|
|
.where(id: bulk_update_params[:entry_ids])
|
|
.bulk_update!(bulk_update_params, update_tags: tags_provided?)
|
|
|
|
redirect_back_or_to transactions_path, notice: "#{updated} transactions updated"
|
|
end
|
|
|
|
private
|
|
def bulk_update_params
|
|
params.require(:bulk_update)
|
|
.permit(:date, :notes, :category_id, :merchant_id, entry_ids: [], tag_ids: [])
|
|
end
|
|
|
|
# Check if tag_ids was explicitly provided in the request.
|
|
# This distinguishes between "user wants to update tags" vs "user didn't touch tags field".
|
|
def tags_provided?
|
|
bulk_update = params[:bulk_update]
|
|
bulk_update.respond_to?(:key?) && bulk_update.key?(:tag_ids)
|
|
end
|
|
end
|