Optimized purchase/inventory price hint / last price suggestion decimals handling

This commit is contained in:
Bernd Bestel 2023-04-24 18:17:39 +02:00
parent f4874ed8d0
commit a4992ff602
No known key found for this signature in database
GPG Key ID: 71BD34C0D4891300
2 changed files with 20 additions and 15 deletions

View File

@ -227,7 +227,7 @@ Grocy.Components.ProductPicker.GetPicker().on('change', function(e)
if (productDetails.last_price) if (productDetails.last_price)
{ {
$('#price').val(productDetails.last_price / $("#qu_id option:selected").attr("data-qu-factor")); $('#price').val((productDetails.last_price / Number.parseFloat($("#qu_id option:selected").attr("data-qu-factor"))).toFixed(Grocy.UserSettings.stock_decimal_places_prices_display));
} }
else else
{ {
@ -312,7 +312,7 @@ Grocy.Components.ProductPicker.GetPicker().on('change', function(e)
$(".input-group-productamountpicker").trigger("change"); $(".input-group-productamountpicker").trigger("change");
$('#display_amount').focus(); $('#display_amount').focus();
$('#display_amount').trigger('keyup'); $('#display_amount').trigger('keyup');
refreshPriceHint(); RefreshPriceHint();
}, },
function(xhr) function(xhr)
{ {
@ -322,7 +322,7 @@ Grocy.Components.ProductPicker.GetPicker().on('change', function(e)
} }
}); });
function refreshPriceHint() function RefreshPriceHint()
{ {
if ($('#amount').val() == 0 || $('#price').val() == 0) if ($('#amount').val() == 0 || $('#price').val() == 0)
{ {
@ -338,7 +338,7 @@ function refreshPriceHint()
amount -= CurrentProductDetails.product.tare_weight; amount -= CurrentProductDetails.product.tare_weight;
} }
var price = Number.parseFloat($('#price').val() * $("#qu_id option:selected").attr("data-qu-factor")).toFixed(Grocy.UserSettings.stock_decimal_places_prices_input); var price = Number.parseFloat($('#price').val() * $("#qu_id option:selected").attr("data-qu-factor")).toFixed(Grocy.UserSettings.stock_decimal_places_prices_display);
$('#price-hint').text(__t('means %1$s per %2$s', price.toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display }), $("#qu_id").attr("data-destination-qu-name"))); $('#price-hint').text(__t('means %1$s per %2$s', price.toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display }), $("#qu_id").attr("data-destination-qu-name")));
} }
else else
@ -476,7 +476,7 @@ $('#display_amount').on('keyup', function(e)
Grocy.Components.DateTimePicker.GetInputElement().removeAttr('required'); Grocy.Components.DateTimePicker.GetInputElement().removeAttr('required');
} }
refreshPriceHint(); RefreshPriceHint();
Grocy.FrontendHelpers.ValidateForm('inventory-form'); Grocy.FrontendHelpers.ValidateForm('inventory-form');
}, },
function(xhr) function(xhr)
@ -487,6 +487,11 @@ $('#display_amount').on('keyup', function(e)
} }
}); });
$('#qu_id').on('change', function(e)
{
RefreshPriceHint();
});
function UndoStockBooking(bookingId) function UndoStockBooking(bookingId)
{ {
Grocy.Api.Post('stock/bookings/' + bookingId.toString() + '/undo', {}, Grocy.Api.Post('stock/bookings/' + bookingId.toString() + '/undo', {},

View File

@ -314,14 +314,14 @@ if (Grocy.Components.ProductPicker !== undefined)
} }
else else
{ {
$('#price').val(productDetails.last_price / $("#qu_id option:selected").attr("data-qu-factor")); $('#price').val((productDetails.last_price / Number.parseFloat($("#qu_id option:selected").attr("data-qu-factor"))).toFixed(Grocy.UserSettings.stock_decimal_places_prices_display));
} }
var priceTypeUnitPrice = $("#price-type-unit-price"); var priceTypeUnitPrice = $("#price-type-unit-price");
var priceTypeUnitPriceLabel = $("[for=" + priceTypeUnitPrice.attr("id") + "]"); var priceTypeUnitPriceLabel = $("[for=" + priceTypeUnitPrice.attr("id") + "]");
priceTypeUnitPriceLabel.text($("#qu_id option:selected").text() + " " + __t("price")); priceTypeUnitPriceLabel.text($("#qu_id option:selected").text() + " " + __t("price"));
refreshPriceHint(); RefreshPriceHint();
if (productDetails.product.enable_tare_weight_handling == 1) if (productDetails.product.enable_tare_weight_handling == 1)
{ {
@ -567,26 +567,26 @@ if (Grocy.Components.DateTimePicker2)
$('#price').on('keyup', function(e) $('#price').on('keyup', function(e)
{ {
refreshPriceHint(); RefreshPriceHint();
}); });
$('#price-type-unit-price').on('change', function(e) $('#price-type-unit-price').on('change', function(e)
{ {
refreshPriceHint(); RefreshPriceHint();
}); });
$('#price-type-total-price').on('change', function(e) $('#price-type-total-price').on('change', function(e)
{ {
refreshPriceHint(); RefreshPriceHint();
}); });
$('#display_amount').on('change', function(e) $('#display_amount').on('change', function(e)
{ {
refreshPriceHint(); RefreshPriceHint();
Grocy.FrontendHelpers.ValidateForm('purchase-form'); Grocy.FrontendHelpers.ValidateForm('purchase-form');
}); });
function refreshPriceHint() function RefreshPriceHint()
{ {
if ($('#amount').val() == 0 || $('#price').val() == 0) if ($('#amount').val() == 0 || $('#price').val() == 0)
{ {
@ -602,10 +602,10 @@ function refreshPriceHint()
amount -= CurrentProductDetails.product.tare_weight; amount -= CurrentProductDetails.product.tare_weight;
} }
var price = Number.parseFloat($('#price').val() * $("#qu_id option:selected").attr("data-qu-factor")).toFixed(Grocy.UserSettings.stock_decimal_places_prices_input); var price = Number.parseFloat($('#price').val() * $("#qu_id option:selected").attr("data-qu-factor")).toFixed(Grocy.UserSettings.stock_decimal_places_prices_display);
if ($("input[name='price-type']:checked").val() == "total-price") if ($("input[name='price-type']:checked").val() == "total-price")
{ {
price = (price / amount).toFixed(Grocy.UserSettings.stock_decimal_places_prices_input); price = (price / amount).toFixed(Grocy.UserSettings.stock_decimal_places_prices_display);
} }
$('#price-hint').text(__t('means %1$s per %2$s', price.toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display }), $("#qu_id").attr("data-destination-qu-name"))); $('#price-hint').text(__t('means %1$s per %2$s', price.toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display }), $("#qu_id").attr("data-destination-qu-name")));
@ -694,7 +694,7 @@ $('#qu_id').on('change', function(e)
var priceTypeUnitPrice = $("#price-type-unit-price"); var priceTypeUnitPrice = $("#price-type-unit-price");
var priceTypeUnitPriceLabel = $("[for=" + priceTypeUnitPrice.attr("id") + "]"); var priceTypeUnitPriceLabel = $("[for=" + priceTypeUnitPrice.attr("id") + "]");
priceTypeUnitPriceLabel.text($("#qu_id option:selected").text() + " " + __t("price")); priceTypeUnitPriceLabel.text($("#qu_id option:selected").text() + " " + __t("price"));
refreshPriceHint(); RefreshPriceHint();
}); });
function ScanModeSubmit(singleUnit = true) function ScanModeSubmit(singleUnit = true)