Allow 4 decimals for all amount inputs (this now closes #998)

This commit is contained in:
Bernd Bestel
2020-10-19 20:25:42 +02:00
parent 80beff2cae
commit 9e982979c3
22 changed files with 67 additions and 66 deletions

View File

@@ -326,15 +326,15 @@ Grocy.Components.ProductPicker.GetPicker().on('change', function(e)
if (productDetails.product.allow_partial_units_in_stock == 1)
{
$("#amount").attr("min", "0.01");
$("#amount").attr("step", "0.01");
$("#amount").parent().find(".invalid-feedback").text(__t('The amount must be between %1$s and %2$s', 0.01.toLocaleString(), parseFloat(productDetails.stock_amount).toLocaleString()));
$("#amount").attr("min", "0.0001");
$("#amount").attr("step", ".0001");
$("#amount").parent().find(".invalid-feedback").text(__t('The amount must be between %1$s and %2$s', 0.0001.toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: 4 }), parseFloat(productDetails.stock_amount).toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: 4 })));
}
else
{
$("#amount").attr("min", "1");
$("#amount").attr("step", "1");
$("#amount").parent().find(".invalid-feedback").text(__t('The amount must be between %1$s and %2$s', "1", parseFloat(productDetails.stock_amount).toLocaleString()));
$("#amount").parent().find(".invalid-feedback").text(__t('The amount must be between %1$s and %2$s', "1", parseFloat(productDetails.stock_amount).toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: 4 })));
}
if (productDetails.product.enable_tare_weight_handling == 1)
@@ -571,15 +571,15 @@ function RefreshForm()
if (productDetails.product.allow_partial_units_in_stock == 1)
{
$("#amount").attr("min", "0.01");
$("#amount").attr("step", "0.01");
$("#amount").parent().find(".invalid-feedback").text(__t('The amount must be between %1$s and %2$s', 0.01.toLocaleString(), parseFloat(productDetails.stock_amount).toLocaleString()));
$("#amount").attr("min", "0.0001");
$("#amount").attr("step", ".0001");
$("#amount").parent().find(".invalid-feedback").text(__t('The amount must be between %1$s and %2$s', 0.0001.toLocaleString(), parseFloat(productDetails.stock_amount).toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: 4 })));
}
else
{
$("#amount").attr("min", "1");
$("#amount").attr("step", "1");
$("#amount").parent().find(".invalid-feedback").text(__t('The amount must be between %1$s and %2$s', "1", parseFloat(productDetails.stock_amount).toLocaleString()));
$("#amount").parent().find(".invalid-feedback").text(__t('The amount must be between %1$s and %2$s', "1", parseFloat(productDetails.stock_amount).toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: 4 })));
}
$('#amount').attr('max', sumValue);

View File

@@ -132,15 +132,15 @@ Grocy.Components.ProductPicker.GetPicker().on('change', function(e)
if (productDetails.product.allow_partial_units_in_stock == 1)
{
$("#new_amount").attr("min", "0.01");
$("#new_amount").attr("step", "0.01");
$("#new_amount").parent().find(".invalid-feedback").text(__t('The amount cannot be lower than %1$s or equal %2$s', 0.01.toLocaleString(), productDetails.stock_amount.toLocaleString()));
$("#new_amount").attr("min", "0.0001");
$("#new_amount").attr("step", ".0001");
$("#new_amount").parent().find(".invalid-feedback").text(__t('The amount cannot be lower than %1$s or equal %2$s', 0.0001.toLocaleString(), productDetails.stock_amount.toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: 4 })));
}
else
{
$("#new_amount").attr("min", "0");
$("#new_amount").attr("step", "1");
$("#new_amount").parent().find(".invalid-feedback").text(__t('The amount cannot be lower than %1$s or equal %2$s', '0', productDetails.stock_amount.toLocaleString()));
$("#new_amount").parent().find(".invalid-feedback").text(__t('The amount cannot be lower than %1$s or equal %2$s', '0', productDetails.stock_amount.toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: 4 })));
}
if (productDetails.product.enable_tare_weight_handling == 1)

View File

@@ -325,9 +325,9 @@ $("#allow_partial_units_in_stock").on("click", function()
if (this.checked)
{
$("#min_stock_amount").attr("min", "0.0000");
$("#min_stock_amount").attr("step", "0.0001");
$("#min_stock_amount").attr("step", ".0001");
$("#qu_factor_purchase_to_stock").attr("min", "0.0001");
$("#qu_factor_purchase_to_stock").attr("step", "0.0001");
$("#qu_factor_purchase_to_stock").attr("step", ".0001");
$("#qu_factor_purchase_to_stock").parent().find(".invalid-feedback").text(__t('This cannot be lower than %1$s and must be a valid number with max. %2$s decimal places', 0.0001.toLocaleString(undefined, { minimumFractionDigits: 0, maximumFractionDigits: 4 }), '4'));
}
else

View File

@@ -259,9 +259,9 @@ if (Grocy.Components.ProductPicker !== undefined)
if (productDetails.product.allow_partial_units_in_stock == 1)
{
$("#amount").attr("min", "0.01");
$("#amount").attr("step", "0.01");
$("#amount").parent().find(".invalid-feedback").text(__t('The amount cannot be lower than %s', 0.01.toLocaleString()));
$("#amount").attr("min", "0.0001");
$("#amount").attr("step", ".0001");
$("#amount").parent().find(".invalid-feedback").text(__t('The amount cannot be lower than %s', 0.0001.toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: 4 })));
}
else
{
@@ -274,8 +274,8 @@ if (Grocy.Components.ProductPicker !== undefined)
{
var minAmount = parseFloat(productDetails.product.tare_weight) / qu_factor_purchase_to_stock + parseFloat(productDetails.stock_amount);
$("#amount").attr("min", minAmount);
$("#amount").attr("step", "0.0001");
$("#amount").parent().find(".invalid-feedback").text(__t('The amount cannot be lower than %s', minAmount.toLocaleString()));
$("#amount").attr("step", ".0001");
$("#amount").parent().find(".invalid-feedback").text(__t('The amount cannot be lower than %s', minAmount.toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: 4 })));
$("#tare-weight-handling-info").removeClass("d-none");
}
else

View File

@@ -64,9 +64,9 @@ Grocy.Components.ProductPicker.GetPicker().on('change', function(e)
if (productDetails.product.allow_partial_units_in_stock == 1)
{
$("#display_amount").attr("min", "0.01");
$("#display_amount").attr("step", "0.01");
$("#display_amount").parent().find(".invalid-feedback").text(__t('The amount cannot be lower than %s', 0.01.toLocaleString()));
$("#display_amount").attr("min", "0.0001");
$("#display_amount").attr("step", ".0001");
$("#display_amount").parent().find(".invalid-feedback").text(__t('The amount cannot be lower than %s', 0.0001.toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: 4 })));
}
else
{
@@ -153,8 +153,8 @@ $("#only_check_single_unit_in_stock").on("click", function()
{
if (this.checked)
{
$("#display_amount").attr("min", "0.01");
$("#display_amount").attr("step", "0.01");
$("#display_amount").attr("min", "0.0001");
$("#display_amount").attr("step", ".0001");
$("#display_amount").parent().find(".invalid-feedback").text(__t("This cannot be negative"));
Grocy.Components.ProductAmountPicker.AllowAnyQu(true);
Grocy.FrontendHelpers.ValidateForm("recipe-pos-form");

View File

@@ -102,9 +102,9 @@ Grocy.Api.Get('stock/products/' + Grocy.EditObjectProductId,
if (productDetails.product.allow_partial_units_in_stock == 1)
{
$("#amount").attr("min", "0.01");
$("#amount").attr("step", "0.01");
$("#amount").parent().find(".invalid-feedback").text(__t('The amount cannot be lower than %1$s', 0.01.toLocaleString()));
$("#amount").attr("min", "0.0001");
$("#amount").attr("step", ".0001");
$("#amount").parent().find(".invalid-feedback").text(__t('The amount cannot be lower than %1$s', 0.0001.toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: 4 })));
}
else
{

View File

@@ -187,15 +187,15 @@ Grocy.Components.ProductPicker.GetPicker().on('change', function(e)
if (productDetails.product.allow_partial_units_in_stock == 1)
{
$("#amount").attr("min", "0.01");
$("#amount").attr("step", "0.01");
$("#amount").parent().find(".invalid-feedback").text(__t('The amount must be between %1$s and %2$s', 0.01.toLocaleString(), parseFloat(productDetails.stock_amount).toLocaleString()));
$("#amount").attr("min", "0.0001");
$("#amount").attr("step", ".0001");
$("#amount").parent().find(".invalid-feedback").text(__t('The amount must be between %1$s and %2$s', 0.0001.toLocaleString(), parseFloat(productDetails.stock_amount).toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: 4 })));
}
else
{
$("#amount").attr("min", "1");
$("#amount").attr("step", "1");
$("#amount").parent().find(".invalid-feedback").text(__t('The amount must be between %1$s and %2$s', "1", parseFloat(productDetails.stock_amount).toLocaleString()));
$("#amount").parent().find(".invalid-feedback").text(__t('The amount must be between %1$s and %2$s', "1", parseFloat(productDetails.stock_amount).toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: 4 })));
}
if (productDetails.product.enable_tare_weight_handling == 1)