diff --git a/app/assets/javascripts/my_modules/repositories.js b/app/assets/javascripts/my_modules/repositories.js index e9cbe4058..3e0ad483b 100644 --- a/app/assets/javascripts/my_modules/repositories.js +++ b/app/assets/javascripts/my_modules/repositories.js @@ -16,7 +16,7 @@ var MyModuleRepositories = (function() { { visible: true, searchable: false, - data: otherColumnCount + data: 'stock' }, { visible: true, @@ -40,7 +40,7 @@ var MyModuleRepositories = (function() { className: 'item-consumed-stock', sWidth: '1%', render: function(data) { - return $.fn.dataTable.render.RepositoryConsumedStockValue(data); + return $.fn.dataTable.render.RepositoryStockConsumptionValue(data); } } ]; @@ -130,7 +130,7 @@ var MyModuleRepositories = (function() { return $.fn.dataTable.render[data.value_type](data); } if (data !== undefined && data.stock_present !== undefined) { - return $.fn.dataTable.render.RepositoryConsumedStockValue(data); + return $.fn.dataTable.render.RepositoryStockConsumptionValue(data); } return data; } diff --git a/app/assets/javascripts/repositories/renderers/edit_renderers.js b/app/assets/javascripts/repositories/renderers/edit_renderers.js index 70a6b37fa..b90443c0f 100644 --- a/app/assets/javascripts/repositories/renderers/edit_renderers.js +++ b/app/assets/javascripts/repositories/renderers/edit_renderers.js @@ -140,6 +140,6 @@ $.fn.dataTable.render.editRepositoryStockValue = function(formId, columnId, cell return cell.node(); }; -$.fn.dataTable.render.editRepositoryConsumedStockValue = function(formId, columnId, cell) { +$.fn.dataTable.render.editRepositoryStockConsumptionValue = function(formId, columnId, cell) { return cell.node(); }; diff --git a/app/assets/javascripts/repositories/renderers/view_renderers.js b/app/assets/javascripts/repositories/renderers/view_renderers.js index d1d01b0d4..282971193 100644 --- a/app/assets/javascripts/repositories/renderers/view_renderers.js +++ b/app/assets/javascripts/repositories/renderers/view_renderers.js @@ -205,16 +205,19 @@ $.fn.dataTable.render.RepositoryStockValue = function(data, row) { `; }; -$.fn.dataTable.render.RepositoryConsumedStockValue = function(data = {}) { +$.fn.dataTable.render.defaultRepositoryStockValue = function() { + return $.fn.dataTable.render.RepositoryStockValue(); +}; + +$.fn.dataTable.render.RepositoryStockConsumptionValue = function(data = {}) { if (data.value && data.value.consumed_stock !== null) { if (data.consumption_managable) { - return ` - ${data.value.consumed_stock} ${data.value.unit || ''} - `; + return ` + ${data.value.consumed_stock_formatted} + `; } - return ` - ${data.value.consumed_stock} ${data.value.unit || ''} - `; + return `${data.value.consumed_stock_formatted}`; } if (data.stock_present && data.consumption_managable) { return ` @@ -225,6 +228,6 @@ $.fn.dataTable.render.RepositoryConsumedStockValue = function(data = {}) { return ' - '; }; -$.fn.dataTable.render.defaultRepositoryStockValue = function() { - return $.fn.dataTable.render.RepositoryStockValue(); +$.fn.dataTable.render.defaultRepositoryStockConsumptionValue = function() { + return $.fn.dataTable.render.RepositoryStockConsumptionValue(); }; diff --git a/app/helpers/repository_datatable_helper.rb b/app/helpers/repository_datatable_helper.rb index 9ddc08537..b838b3ab5 100644 --- a/app/helpers/repository_datatable_helper.rb +++ b/app/helpers/repository_datatable_helper.rb @@ -93,20 +93,17 @@ module RepositoryDatatableHelper consumption_managable = stock_present && record.repository.is_a?(Repository) && can_update_my_module_stock_consumption?(my_module) - row['1'] = stock_present ? display_cell_value(record.repository_stock_cell, record.repository.team) : {} - row['1'][:stock_managable] = stock_managable - row['consumedStock'] = { - stock_present: stock_present, - consumption_managable: consumption_managable - } + row['stock'] = stock_present ? display_cell_value(record.repository_stock_cell, record.repository.team) : {} + row['stock'][:stock_managable] = stock_managable if record.repository.is_a?(RepositorySnapshot) - if record.repository_stock_consumption_value.present? - row['consumedStock'][:value] = { - consumed_stock: record.repository_stock_consumption_value.amount, - unit: record.repository_stock_consumption_value.repository_stock_unit_item&.data - } - end + row['consumedStock'] = + if record.repository_stock_consumption_value.present? + display_cell_value(record.repository_stock_consumption_cell, record.repository.team) + else + {} + end else + row['consumedStock'] = {} if consumption_managable row['consumedStock'][:updateStockConsumptionUrl] = Rails.application.routes.url_helpers.consume_modal_my_module_repository_path( @@ -116,17 +113,20 @@ module RepositoryDatatableHelper if record.consumed_stock.present? row['consumedStock'][:value] = { consumed_stock: record.consumed_stock, - unit: record.repository_stock_value&.repository_stock_unit_item&.data + consumed_stock_formatted: + "#{record.consumed_stock} #{record.repository_stock_value&.repository_stock_unit_item&.data}" } end end + row['consumedStock']['stock_present'] = stock_present + row['consumedStock']['consumption_managable'] = consumption_managable end row end end - def prepare_snapshot_row_columns(repository_rows, columns_mappings, team) + def prepare_snapshot_row_columns(repository_rows, columns_mappings, team, options = {}) repository_rows.map do |record| row = { 'DT_RowId': record.id, @@ -143,6 +143,17 @@ module RepositoryDatatableHelper row[columns_mappings[cell.repository_column.id]] = display_cell_value(cell, team) end + if options[:include_stock_consumption] && record.repository.has_stock_management? + stock_present = record.repository_stock_cell.present? + row['stock'] = stock_present ? display_cell_value(record.repository_stock_cell, record.repository.team) : {} + row['consumedStock'] = + if stock_present + display_cell_value(record.repository_stock_consumption_cell, record.repository.team) + else + {} + end + end + row end end diff --git a/app/serializers/repository_datatable/repository_stock_consumption_value_serializer.rb b/app/serializers/repository_datatable/repository_stock_consumption_value_serializer.rb new file mode 100644 index 000000000..17090c74a --- /dev/null +++ b/app/serializers/repository_datatable/repository_stock_consumption_value_serializer.rb @@ -0,0 +1,12 @@ +# frozen_string_literal: true + +module RepositoryDatatable + class RepositoryStockConsumptionValueSerializer < RepositoryBaseValueSerializer + def value + { + consumed_stock_formatted: object.formatted, + consumed_stock: object.data + } + end + end +end diff --git a/app/views/repository_rows/snapshot_index.json.jbuilder b/app/views/repository_rows/snapshot_index.json.jbuilder index cdab444a1..4cb587215 100644 --- a/app/views/repository_rows/snapshot_index.json.jbuilder +++ b/app/views/repository_rows/snapshot_index.json.jbuilder @@ -2,7 +2,10 @@ json.draw @draw json.data do - json.array! prepare_snapshot_row_columns(@repository_rows, @columns_mappings, @repository_snapshot.team) + json.array! prepare_snapshot_row_columns(@repository_rows, + @columns_mappings, + @repository_snapshot.team, + { include_stock_consumption: @repository_snapshot.has_stock_management? }) end json.recordsFiltered @repository_rows.first ? @repository_rows.first.filtered_count : 0 json.recordsTotal @all_rows_count