mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-09-10 15:14:33 +08:00
Fix handling of blank rows and stock changes [SCI-10889]
This commit is contained in:
parent
5b69e5277c
commit
c811d191eb
2 changed files with 15 additions and 10 deletions
|
@ -118,14 +118,18 @@ class RepositoryStockValue < ApplicationRecord
|
||||||
new_amount = new_data[:amount].to_d
|
new_amount = new_data[:amount].to_d
|
||||||
delta = new_amount - amount.to_d
|
delta = new_amount - amount.to_d
|
||||||
self.comment = new_data[:comment].presence
|
self.comment = new_data[:comment].presence
|
||||||
repository_ledger_records.create!(
|
|
||||||
user: last_modified_by,
|
unless preview
|
||||||
amount: delta,
|
repository_ledger_records.create!(
|
||||||
balance: new_amount,
|
user: last_modified_by,
|
||||||
reference: repository_cell.repository_column.repository,
|
amount: delta,
|
||||||
comment: comment,
|
balance: new_amount,
|
||||||
unit: repository_stock_unit_item&.data
|
reference: repository_cell.repository_column.repository,
|
||||||
)
|
comment: comment,
|
||||||
|
unit: repository_stock_unit_item&.data
|
||||||
|
)
|
||||||
|
end
|
||||||
|
|
||||||
self.amount = new_amount
|
self.amount = new_amount
|
||||||
preview ? validate : save!
|
preview ? validate : save!
|
||||||
end
|
end
|
||||||
|
|
|
@ -20,7 +20,7 @@ module RepositoryImportParser
|
||||||
@header_skipped = false
|
@header_skipped = false
|
||||||
@repository = repository
|
@repository = repository
|
||||||
@sheet = sheet
|
@sheet = sheet
|
||||||
@rows = SpreadsheetParser.spreadsheet_enumerator(@sheet).compact_blank
|
@rows = SpreadsheetParser.spreadsheet_enumerator(@sheet).reject { |r| r.all?(&:blank?) }
|
||||||
@mappings = mappings
|
@mappings = mappings
|
||||||
@user = user
|
@user = user
|
||||||
@repository_columns = @repository.repository_columns
|
@repository_columns = @repository.repository_columns
|
||||||
|
@ -186,9 +186,10 @@ module RepositoryImportParser
|
||||||
handle_existing_cell_value(existing_cell, cell_value, repository_row)
|
handle_existing_cell_value(existing_cell, cell_value, repository_row)
|
||||||
end
|
end
|
||||||
|
|
||||||
@updated ||= existing_cell&.value&.changed?
|
@updated ||= @preview ? existing_cell&.value&.changed? : existing_cell&.value&.saved_changes?
|
||||||
@errors << existing_cell.value.errors.full_messages.join(',') if existing_cell&.value&.errors.present?
|
@errors << existing_cell.value.errors.full_messages.join(',') if existing_cell&.value&.errors.present?
|
||||||
end
|
end
|
||||||
|
|
||||||
repository_row.import_status = if @errors.present?
|
repository_row.import_status = if @errors.present?
|
||||||
'invalid'
|
'invalid'
|
||||||
elsif repository_row.import_status == 'created'
|
elsif repository_row.import_status == 'created'
|
||||||
|
|
Loading…
Add table
Reference in a new issue