Merge pull request #4080 from aignatov-bio/ai-sci-6807-fix-stock-consumption-rounding

Fix stock consumption rounding [SCI-6807]
This commit is contained in:
aignatov-bio 2022-05-09 11:55:17 +02:00 committed by GitHub
commit 6cbcac3a22
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 20 additions and 13 deletions

View file

@ -1,4 +1,4 @@
/* global SmartAnnotation I18n MyModuleRepositories GLOBAL_CONSTANTS formatDecimalValue */
/* global SmartAnnotation I18n MyModuleRepositories GLOBAL_CONSTANTS formatDecimalValue Decimal */
var MyModuleStockConsumption = (function() {
const CONSUMPTION_MODAL = '#consumeRepositoryStockValueModal';
const WARNING_MODAL = '#consumeRepositoryStockValueModalWarning';
@ -28,11 +28,11 @@ var MyModuleStockConsumption = (function() {
SmartAnnotation.init($(CONSUMPTION_MODAL + ' #comment')[0]);
$('#stock_consumption').on('input', function() {
let initialValue = parseFloat($(this).data('initial-value'));
let initialStock = parseFloat($(this).data('initial-stock'));
let initialValue = new Decimal($(this).data('initial-value') || 0);
let initialStock = new Decimal($(this).data('initial-stock'));
let decimals = $(this).data('decimals');
this.value = formatDecimalValue(String(this.value), decimals);
let finalValue = initialValue - ($(this).val() || 0) + initialStock;
let finalValue = initialValue.minus(new Decimal($(this).val() || 0)).plus(initialStock);
$('.stock-final-container .value')
.text(formatDecimalValue(String(finalValue), $('#stock_consumption').data('decimals')));
$('.stock-final-container').toggleClass('negative', finalValue <= 0);

View file

@ -1,28 +1,28 @@
/* global dropdownSelector GLOBAL_CONSTANTS I18n SmartAnnotation formatDecimalValue */
/* global dropdownSelector GLOBAL_CONSTANTS I18n SmartAnnotation formatDecimalValue Decimal */
var RepositoryStockValues = (function() {
const UNIT_SELECTOR = '#repository-stock-value-units';
function updateChangeAmount($element) {
var currentAmount = parseFloat($element.data('currentAmount'));
var inputAmount = parseFloat($element.val());
var newAmount;
if (!$element.val()) {
$('.stock-final-container .value').text('-');
return;
}
if (!(inputAmount >= 0)) return;
if (!($element.val() >= 0)) return;
let currentAmount = new Decimal($element.data('currentAmount') || 0);
let inputAmount = new Decimal($element.val());
let newAmount;
switch ($element.data('operator')) {
case 'set':
newAmount = inputAmount;
break;
case 'add':
newAmount = currentAmount + inputAmount;
newAmount = currentAmount.plus(inputAmount);
break;
case 'remove':
newAmount = currentAmount - inputAmount;
newAmount = currentAmount.minus(inputAmount);
break;
default:
newAmount = currentAmount;

View file

@ -1 +1,2 @@
window.bwipjs = require('bwip-js');
window.Decimal = require('decimal.js');

View file

@ -64,6 +64,7 @@
"compression-webpack-plugin": "^1.1.11",
"croppie": "^2.6.4",
"css-loader": "2.1.1",
"decimal.js": "^10.3.1",
"extract-text-webpack-plugin": "^3.0.2",
"fabric": "1.6.7",
"file-loader": "^4.0.0",
@ -83,8 +84,8 @@
"postcss-smart-import": "^0.7.6",
"precss": "^2.0.0",
"prop-types": "^15.7.2",
"react": "^16.8.6",
"rails-erb-loader": "^5.4.2",
"react": "^16.8.6",
"react-bootstrap": "^0.31.5",
"react-bootstrap-table": "^4.3.1",
"react-bootstrap-timezone-picker": "^1.0.12",

View file

@ -3262,6 +3262,11 @@ decamelize@^1.1.1, decamelize@^1.1.2, decamelize@^1.2.0:
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
decimal.js@^10.3.1:
version "10.3.1"
resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783"
integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==
decode-uri-component@^0.2.0:
version "0.2.0"
resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"