Merge branch 'develop' into ai-sci-6743-add-negative-validation-for-stock-modal-and-consumption-modal

This commit is contained in:
aignatov-bio 2022-04-22 11:15:04 +02:00 committed by GitHub
commit 4d429b28a8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 36 additions and 24 deletions

View file

@ -35,7 +35,7 @@ var MyModuleStockConsumption = (function() {
let finalValue = initialValue - ($(this).val() || 0) + initialStock;
$('.stock-final-container .value')
.text(formatDecimalValue(String(finalValue), $('#stock_consumption').data('decimals')));
$('.stock-final-container').toggleClass('error', finalValue <= 0);
$('.stock-final-container').toggleClass('negative', finalValue <= 0);
$(this).closest('.sci-input-container').toggleClass('error', !($(this).val().length && this.value >= 0));
$('.update-consumption-button').attr('disabled', !($(this).val().length && this.value >= 0));
});

View file

@ -41,6 +41,9 @@ var RepositoryStockValues = (function() {
let amountChanged = false;
$('.repository-show').on('click', '.manage-repository-stock-value-link', function() {
let colIndex = this.parentNode.cellIndex;
let rowIndex = this.parentNode.parentNode.rowIndex;
$.ajax({
url: $(this).closest('tr').data('manage-stock-url'),
type: 'GET',
@ -73,10 +76,13 @@ var RepositoryStockValues = (function() {
.dropdown-selector-container .search-field
`).attr('tabindex', 2);
$manageModal.find('form').on('ajax:success', function() {
var dataTable = $('.dataTable').DataTable();
$manageModal.find('form').on('ajax:success', function(_, data) {
$manageModal.modal('hide');
dataTable.ajax.reload(null, false);
$('.dataTable').find(
`tr:nth-child(${rowIndex}) td:nth-child(${colIndex + 1})`
).html(
$.fn.dataTable.render.RepositoryStockValue(data)
);
});
$('.stock-operator-option').click(function() {

View file

@ -16,6 +16,16 @@ var RepositoryStockColumnType = (function() {
});
}
function syncSelectedUnits() {
RepositoryListColumnType.refreshPreviewDropdownList(
previewContainer,
itemsTextarea,
delimiterDropdown,
dropdownOptions,
GLOBAL_CONSTANTS.REPOSITORY_STOCK_UNIT_ITEMS_PER_COLUMN
);
}
function initDropdownItemsTextArea() {
var $manageModal = $(manageModal);
@ -24,24 +34,12 @@ var RepositoryStockColumnType = (function() {
setTimeout(() => { initStockUnitDropdown(); }, 200);
})
.on('change keyup paste', itemsTextarea, function() {
RepositoryListColumnType.refreshPreviewDropdownList(
previewContainer,
itemsTextarea,
delimiterDropdown,
dropdownOptions,
GLOBAL_CONSTANTS.REPOSITORY_LIST_ITEMS_PER_COLUMN
);
syncSelectedUnits();
$('.changing-existing-stock-units-warning').removeClass('hidden');
initStockUnitDropdown();
})
.on('columnModal::partialLoadedForRepositoryStockValue', function() {
RepositoryListColumnType.refreshPreviewDropdownList(
previewContainer,
itemsTextarea,
delimiterDropdown,
dropdownOptions,
GLOBAL_CONSTANTS.REPOSITORY_STOCK_UNIT_ITEMS_PER_COLUMN
);
syncSelectedUnits();
initStockUnitDropdown();
});
}
@ -62,9 +60,10 @@ var RepositoryStockColumnType = (function() {
return count <= GLOBAL_CONSTANTS.REPOSITORY_STOCK_UNIT_ITEMS_PER_COLUMN;
},
loadParams: () => {
var repositoryColumnParams = {};
var options = JSON.parse($(dropdownOptions).val());
var decimals = $('.stock-column-type #decimals').val();
let repositoryColumnParams = {};
syncSelectedUnits();
let options = JSON.parse($(dropdownOptions).val());
let decimals = $('.stock-column-type #decimals').val();
repositoryColumnParams.repository_stock_unit_items_attributes = options;
repositoryColumnParams.metadata = { decimals: decimals };
return repositoryColumnParams;

View file

@ -1,6 +1,8 @@
# frozen_string_literal: true
class RepositoryStockValuesController < ApplicationController
include RepositoryDatatableHelper # for use of display_cell_value method on stock update
before_action :load_vars
before_action :check_manage_permissions
@ -45,7 +47,10 @@ class RepositoryStockValuesController < ApplicationController
)
end
render json: @repository_stock_value
render json: {
stock_managable: true,
stock_status: @repository_stock_value.status
}.merge(display_cell_value(@repository_stock_value.repository_cell, current_team, @repository))
end
private

View file

@ -16,6 +16,8 @@ class RepositoryStockValue < ApplicationRecord
validates :repository_cell, presence: true
after_create do
next if is_a?(RepositoryStockConsumptionValue)
repository_ledger_records.create!(user: created_by,
amount: amount,
balance: amount,

View file

@ -34,7 +34,7 @@
<div class="row mt-3">
<div class="col-sm-12">
<div class="stock-update-view">
<div class="stock-initial-container">
<div class="stock-initial-container <%= 'negative' if @stock_value.amount < 0 %>">
<span class="subtitle"><%= t('repository_stock_values.manage_modal.current_stock') %></span>
<span class="value"><%= @stock_value.formatted_value %></span>
<span class="units"><%= @stock_value.repository_stock_unit_item&.data %></span>
@ -42,7 +42,7 @@
<div class="stock-arrow">
<i class="fas fa-arrow-right"></i>
</div>
<div class="stock-final-container">
<div class="stock-final-container ">
<span class="subtitle"><%= t('repository_stock_values.manage_modal.new_stock') %></span>
<span class="value">-</span>
<span class="units"><%= @stock_value.repository_stock_unit_item&.data %></span>