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