mirror of
https://github.com/grocy/grocy.git
synced 2025-08-17 19:16:37 +00:00
Split user setting stock_decimal_places_prices
into separate settings for input/display (closes #1893)
This commit is contained in:
@@ -11,6 +11,7 @@
|
|||||||
- New product option "Move on open" (defaults to disabled)
|
- New product option "Move on open" (defaults to disabled)
|
||||||
- When enabled, on marking the product as opened, the corresponding amount will be moved to the products default consume location
|
- When enabled, on marking the product as opened, the corresponding amount will be moved to the products default consume location
|
||||||
- (Thanks @RosemaryOrchard)
|
- (Thanks @RosemaryOrchard)
|
||||||
|
- The stock setting "Decimal places allowed for prices" has been split into separate settings for input and displaying prices (the existing setting will be set for both new options on migration, so no changed behavior when not configured)
|
||||||
- Optimized that when the plural form(s) of a quantity unit is/are not provided, the singular form is used to display plural amounts
|
- Optimized that when the plural form(s) of a quantity unit is/are not provided, the singular form is used to display plural amounts
|
||||||
- Fixed "Automatically add products that are below their defined min. stock amount to the shopping list" (stock setting) was only done when consuming products, not when opening them
|
- Fixed "Automatically add products that are below their defined min. stock amount to the shopping list" (stock setting) was only done when consuming products, not when opening them
|
||||||
|
|
||||||
|
@@ -173,7 +173,8 @@ DefaultUserSetting('product_presets_qu_id', -1); // Default quantity unit id for
|
|||||||
DefaultUserSetting('product_presets_default_due_days', 0); // Default due days for new products (-1 means that the product will be never overdue)
|
DefaultUserSetting('product_presets_default_due_days', 0); // Default due days for new products (-1 means that the product will be never overdue)
|
||||||
DefaultUserSetting('product_presets_treat_opened_as_out_of_stock', true); // Default "Treat opened as out of stock" option for new products
|
DefaultUserSetting('product_presets_treat_opened_as_out_of_stock', true); // Default "Treat opened as out of stock" option for new products
|
||||||
DefaultUserSetting('stock_decimal_places_amounts', 4); // Default decimal places allowed for amounts
|
DefaultUserSetting('stock_decimal_places_amounts', 4); // Default decimal places allowed for amounts
|
||||||
DefaultUserSetting('stock_decimal_places_prices', 2); // Default decimal places allowed for prices
|
DefaultUserSetting('stock_decimal_places_prices_input', 2); // Default decimal places allowed for prices (input)
|
||||||
|
DefaultUserSetting('stock_decimal_places_prices_display', 2); // Default decimal places allowed for prices (display)
|
||||||
DefaultUserSetting('stock_auto_decimal_separator_prices', false); // If the decimal separator should be set automatically for amount inputs
|
DefaultUserSetting('stock_auto_decimal_separator_prices', false); // If the decimal separator should be set automatically for amount inputs
|
||||||
DefaultUserSetting('stock_due_soon_days', 5); // The "expiring soon" days
|
DefaultUserSetting('stock_due_soon_days', 5); // The "expiring soon" days
|
||||||
DefaultUserSetting('stock_default_purchase_amount', 0); // The default amount prefilled on the purchase page
|
DefaultUserSetting('stock_default_purchase_amount', 0); // The default amount prefilled on the purchase page
|
||||||
|
@@ -1721,9 +1721,6 @@ msgstr ""
|
|||||||
msgid "Decimal places allowed for amounts"
|
msgid "Decimal places allowed for amounts"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
msgid "Decimal places allowed for prices"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
msgid "Edit shopping list"
|
msgid "Edit shopping list"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@@ -2335,3 +2332,9 @@ msgstr ""
|
|||||||
|
|
||||||
msgid "Moved to %1$s"
|
msgid "Moved to %1$s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Decimal places allowed for prices (input)"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgid "Decimal places allowed for prices (display)"
|
||||||
|
msgstr ""
|
||||||
|
9
migrations/0193.sql
Normal file
9
migrations/0193.sql
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
UPDATE user_settings
|
||||||
|
SET key = 'stock_decimal_places_prices_input'
|
||||||
|
WHERE key = 'stock_decimal_places_prices';
|
||||||
|
|
||||||
|
INSERT INTO user_settings
|
||||||
|
(user_id, key, value)
|
||||||
|
SELECT user_id, 'stock_decimal_places_prices_display', value
|
||||||
|
FROM user_settings
|
||||||
|
WHERE key = 'stock_decimal_places_prices_input';
|
@@ -627,7 +627,7 @@ function RefreshLocaleNumberDisplay(rootSelector = "#page-content")
|
|||||||
}
|
}
|
||||||
|
|
||||||
var value = parseFloat(text);
|
var value = parseFloat(text);
|
||||||
$(this).text(value.toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices }));
|
$(this).text(value.toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display }));
|
||||||
});
|
});
|
||||||
|
|
||||||
$(rootSelector + " .locale-number.locale-number-quantity-amount").each(function()
|
$(rootSelector + " .locale-number.locale-number-quantity-amount").each(function()
|
||||||
@@ -666,7 +666,7 @@ function RefreshLocaleNumberInput(rootSelector = "#page-content")
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
$(this).val(parseFloat(value).toLocaleString("en", { minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices, useGrouping: false }));
|
$(this).val(parseFloat(value).toLocaleString("en", { minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_input, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_input, useGrouping: false }));
|
||||||
});
|
});
|
||||||
|
|
||||||
$(rootSelector + " .locale-number-input.locale-number-quantity-amount").each(function()
|
$(rootSelector + " .locale-number-input.locale-number-quantity-amount").each(function()
|
||||||
|
@@ -98,7 +98,7 @@ $(".numberpicker.locale-number-input.locale-number-currency").on("blur", functio
|
|||||||
if (BoolVal(Grocy.UserSettings.stock_auto_decimal_separator_prices))
|
if (BoolVal(Grocy.UserSettings.stock_auto_decimal_separator_prices))
|
||||||
{
|
{
|
||||||
var value = this.value.toString();
|
var value = this.value.toString();
|
||||||
var decimalPlaces = parseInt(Grocy.UserSettings.stock_decimal_places_prices);
|
var decimalPlaces = parseInt(Grocy.UserSettings.stock_decimal_places_prices_input);
|
||||||
|
|
||||||
if (value.length <= decimalPlaces)
|
if (value.length <= decimalPlaces)
|
||||||
{
|
{
|
||||||
|
@@ -84,8 +84,8 @@ Grocy.Components.ProductCard.Refresh = function(productId)
|
|||||||
|
|
||||||
if (productDetails.last_price !== null)
|
if (productDetails.last_price !== null)
|
||||||
{
|
{
|
||||||
$('#productcard-product-last-price').text(__t("%1$s per %2$s", (Number.parseFloat(productDetails.last_price) * Number.parseFloat(productDetails.product.qu_factor_purchase_to_stock)).toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices }), productDetails.default_quantity_unit_purchase.name));
|
$('#productcard-product-last-price').text(__t("%1$s per %2$s", (Number.parseFloat(productDetails.last_price) * Number.parseFloat(productDetails.product.qu_factor_purchase_to_stock)).toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display }), productDetails.default_quantity_unit_purchase.name));
|
||||||
$('#productcard-product-last-price').attr("data-original-title", __t("%1$s per %2$s", Number.parseFloat(productDetails.last_price).toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices }), productDetails.quantity_unit_stock.name));
|
$('#productcard-product-last-price').attr("data-original-title", __t("%1$s per %2$s", Number.parseFloat(productDetails.last_price).toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display }), productDetails.quantity_unit_stock.name));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -95,8 +95,8 @@ Grocy.Components.ProductCard.Refresh = function(productId)
|
|||||||
|
|
||||||
if (productDetails.avg_price !== null)
|
if (productDetails.avg_price !== null)
|
||||||
{
|
{
|
||||||
$('#productcard-product-average-price').text(__t("%1$s per %2$s", (Number.parseFloat(productDetails.avg_price) * Number.parseFloat(productDetails.product.qu_factor_purchase_to_stock)).toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices }), productDetails.default_quantity_unit_purchase.name));
|
$('#productcard-product-average-price').text(__t("%1$s per %2$s", (Number.parseFloat(productDetails.avg_price) * Number.parseFloat(productDetails.product.qu_factor_purchase_to_stock)).toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display }), productDetails.default_quantity_unit_purchase.name));
|
||||||
$('#productcard-product-average-price').attr("data-original-title", __t("%1$s per %2$s", Number.parseFloat(productDetails.avg_price).toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices }), productDetails.quantity_unit_stock.name));
|
$('#productcard-product-average-price').attr("data-original-title", __t("%1$s per %2$s", Number.parseFloat(productDetails.avg_price).toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display }), productDetails.quantity_unit_stock.name));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -227,7 +227,7 @@ Grocy.Components.ProductCard.ReInitPriceHistoryChart = function()
|
|||||||
beginAtZero: true,
|
beginAtZero: true,
|
||||||
callback: function(value, index, ticks)
|
callback: function(value, index, ticks)
|
||||||
{
|
{
|
||||||
return Number.parseFloat(value).toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices });
|
return Number.parseFloat(value).toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}]
|
}]
|
||||||
@@ -246,7 +246,7 @@ Grocy.Components.ProductCard.ReInitPriceHistoryChart = function()
|
|||||||
label += ': ';
|
label += ': ';
|
||||||
}
|
}
|
||||||
|
|
||||||
label += tooltipItem.yLabel.toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices })
|
label += tooltipItem.yLabel.toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display })
|
||||||
return label;
|
return label;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -23,7 +23,7 @@ $('#save-inventory-button').on('click', function(e)
|
|||||||
var price = "";
|
var price = "";
|
||||||
if (!jsonForm.price.toString().isEmpty())
|
if (!jsonForm.price.toString().isEmpty())
|
||||||
{
|
{
|
||||||
price = parseFloat(jsonForm.price * $("#qu_id option:selected").attr("data-qu-factor")).toFixed(Grocy.UserSettings.stock_decimal_places_prices);
|
price = parseFloat(jsonForm.price * $("#qu_id option:selected").attr("data-qu-factor")).toFixed(Grocy.UserSettings.stock_decimal_places_prices_input);
|
||||||
}
|
}
|
||||||
|
|
||||||
var jsonData = {};
|
var jsonData = {};
|
||||||
@@ -332,8 +332,8 @@ function refreshPriceHint()
|
|||||||
amount -= parseFloat(CurrentProductDetails.product.tare_weight);
|
amount -= parseFloat(CurrentProductDetails.product.tare_weight);
|
||||||
}
|
}
|
||||||
|
|
||||||
var price = parseFloat($('#price').val() * $("#qu_id option:selected").attr("data-qu-factor")).toFixed(Grocy.UserSettings.stock_decimal_places_prices);
|
var price = parseFloat($('#price').val() * $("#qu_id option:selected").attr("data-qu-factor")).toFixed(Grocy.UserSettings.stock_decimal_places_prices_input);
|
||||||
$('#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, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices }), $("#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
|
||||||
{
|
{
|
||||||
|
@@ -43,10 +43,10 @@ $('#save-purchase-button').on('click', function(e)
|
|||||||
amount -= parseFloat(productDetails.product.tare_weight);
|
amount -= parseFloat(productDetails.product.tare_weight);
|
||||||
}
|
}
|
||||||
|
|
||||||
var price = parseFloat(jsonForm.price * $("#qu_id option:selected").attr("data-qu-factor")).toFixed(Grocy.UserSettings.stock_decimal_places_prices);
|
var price = parseFloat(jsonForm.price * $("#qu_id option:selected").attr("data-qu-factor")).toFixed(Grocy.UserSettings.stock_decimal_places_prices_input);
|
||||||
if ($("input[name='price-type']:checked").val() == "total-price")
|
if ($("input[name='price-type']:checked").val() == "total-price")
|
||||||
{
|
{
|
||||||
price = parseFloat(price / amount).toFixed(Grocy.UserSettings.stock_decimal_places_prices);
|
price = parseFloat(price / amount).toFixed(Grocy.UserSettings.stock_decimal_places_prices_input);
|
||||||
}
|
}
|
||||||
|
|
||||||
jsonData.price = price;
|
jsonData.price = price;
|
||||||
@@ -595,13 +595,13 @@ function refreshPriceHint()
|
|||||||
amount -= parseFloat(CurrentProductDetails.product.tare_weight);
|
amount -= parseFloat(CurrentProductDetails.product.tare_weight);
|
||||||
}
|
}
|
||||||
|
|
||||||
var price = parseFloat($('#price').val() * $("#qu_id option:selected").attr("data-qu-factor")).toFixed(Grocy.UserSettings.stock_decimal_places_prices);
|
var price = parseFloat($('#price').val() * $("#qu_id option:selected").attr("data-qu-factor")).toFixed(Grocy.UserSettings.stock_decimal_places_prices_input);
|
||||||
if ($("input[name='price-type']:checked").val() == "total-price")
|
if ($("input[name='price-type']:checked").val() == "total-price")
|
||||||
{
|
{
|
||||||
price = parseFloat(price / amount).toFixed(Grocy.UserSettings.stock_decimal_places_prices);
|
price = parseFloat(price / amount).toFixed(Grocy.UserSettings.stock_decimal_places_prices_input);
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#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, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices }), $("#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
|
||||||
{
|
{
|
||||||
|
@@ -254,8 +254,8 @@ function RefreshStockEntryRow(stockRowId)
|
|||||||
result.price = 0;
|
result.price = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
$('#stock-' + stockRowId + '-price').text(__t("%1$s per %2$s", (Number.parseFloat(result.price) * Number.parseFloat(productDetails.product.qu_factor_purchase_to_stock)).toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices }), productDetails.default_quantity_unit_purchase.name));
|
$('#stock-' + stockRowId + '-price').text(__t("%1$s per %2$s", (Number.parseFloat(result.price) * Number.parseFloat(productDetails.product.qu_factor_purchase_to_stock)).toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display }), productDetails.default_quantity_unit_purchase.name));
|
||||||
$('#stock-' + stockRowId + '-price').attr("data-original-title", __t("%1$s per %2$s", Number.parseFloat(result.price).toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices }), productDetails.quantity_unit_stock.name));
|
$('#stock-' + stockRowId + '-price').attr("data-original-title", __t("%1$s per %2$s", Number.parseFloat(result.price).toLocaleString(undefined, { style: "currency", currency: Grocy.Currency, minimumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display, maximumFractionDigits: Grocy.UserSettings.stock_decimal_places_prices_display }), productDetails.quantity_unit_stock.name));
|
||||||
},
|
},
|
||||||
function(xhr)
|
function(xhr)
|
||||||
{
|
{
|
||||||
|
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
if (!jsonForm.price.toString().isEmpty())
|
if (!jsonForm.price.toString().isEmpty())
|
||||||
{
|
{
|
||||||
price = parseFloat(jsonForm.price).toFixed(Grocy.UserSettings.stock_decimal_places_prices);
|
price = parseFloat(jsonForm.price).toFixed(Grocy.UserSettings.stock_decimal_places_prices_input);
|
||||||
}
|
}
|
||||||
|
|
||||||
var jsonData = {};
|
var jsonData = {};
|
||||||
|
@@ -10,7 +10,8 @@ $("#stock_due_soon_days").val(Grocy.UserSettings.stock_due_soon_days);
|
|||||||
$("#stock_default_purchase_amount").val(Grocy.UserSettings.stock_default_purchase_amount);
|
$("#stock_default_purchase_amount").val(Grocy.UserSettings.stock_default_purchase_amount);
|
||||||
$("#stock_default_consume_amount").val(Grocy.UserSettings.stock_default_consume_amount);
|
$("#stock_default_consume_amount").val(Grocy.UserSettings.stock_default_consume_amount);
|
||||||
$("#stock_decimal_places_amounts").val(Grocy.UserSettings.stock_decimal_places_amounts);
|
$("#stock_decimal_places_amounts").val(Grocy.UserSettings.stock_decimal_places_amounts);
|
||||||
$("#stock_decimal_places_prices").val(Grocy.UserSettings.stock_decimal_places_prices);
|
$("#stock_decimal_places_prices_input").val(Grocy.UserSettings.stock_decimal_places_prices_input);
|
||||||
|
$("#stock_decimal_places_prices_display").val(Grocy.UserSettings.stock_decimal_places_prices_display);
|
||||||
|
|
||||||
if (BoolVal(Grocy.UserSettings.show_icon_on_stock_overview_page_when_product_is_on_shopping_list))
|
if (BoolVal(Grocy.UserSettings.show_icon_on_stock_overview_page_when_product_is_on_shopping_list))
|
||||||
{
|
{
|
||||||
|
@@ -82,8 +82,8 @@
|
|||||||
@include('components.numberpicker', array(
|
@include('components.numberpicker', array(
|
||||||
'id' => 'price',
|
'id' => 'price',
|
||||||
'label' => 'Price',
|
'label' => 'Price',
|
||||||
'min' => '0.' . str_repeat('0', $userSettings['stock_decimal_places_prices']),
|
'min' => '0.' . str_repeat('0', $userSettings['stock_decimal_places_prices_input']),
|
||||||
'decimals' => $userSettings['stock_decimal_places_prices'],
|
'decimals' => $userSettings['stock_decimal_places_prices_input'],
|
||||||
'value' => '',
|
'value' => '',
|
||||||
'contextInfoId' => 'price-hint',
|
'contextInfoId' => 'price-hint',
|
||||||
'hint' => $__t('This will apply to added products'),
|
'hint' => $__t('This will apply to added products'),
|
||||||
|
@@ -102,8 +102,8 @@
|
|||||||
@include('components.numberpicker', array(
|
@include('components.numberpicker', array(
|
||||||
'id' => 'price',
|
'id' => 'price',
|
||||||
'label' => 'Price',
|
'label' => 'Price',
|
||||||
'min' => '0.' . str_repeat('0', $userSettings['stock_decimal_places_prices']),
|
'min' => '0.' . str_repeat('0', $userSettings['stock_decimal_places_prices_input']),
|
||||||
'decimals' => $userSettings['stock_decimal_places_prices'],
|
'decimals' => $userSettings['stock_decimal_places_prices_input'],
|
||||||
'value' => '',
|
'value' => '',
|
||||||
'contextInfoId' => 'price-hint',
|
'contextInfoId' => 'price-hint',
|
||||||
'isRequired' => false,
|
'isRequired' => false,
|
||||||
|
@@ -92,8 +92,8 @@
|
|||||||
'id' => 'price',
|
'id' => 'price',
|
||||||
'value' => $price,
|
'value' => $price,
|
||||||
'label' => 'Price',
|
'label' => 'Price',
|
||||||
'min' => '0.' . str_repeat('0', $userSettings['stock_decimal_places_prices']),
|
'min' => '0.' . str_repeat('0', $userSettings['stock_decimal_places_prices_input']),
|
||||||
'decimals' => $userSettings['stock_decimal_places_prices'],
|
'decimals' => $userSettings['stock_decimal_places_prices_input'],
|
||||||
'hint' => $__t('Per stock quantity unit'),
|
'hint' => $__t('Per stock quantity unit'),
|
||||||
'isRequired' => false,
|
'isRequired' => false,
|
||||||
'additionalCssClasses' => 'locale-number-input locale-number-currency'
|
'additionalCssClasses' => 'locale-number-input locale-number-currency'
|
||||||
|
@@ -173,10 +173,19 @@
|
|||||||
))
|
))
|
||||||
|
|
||||||
@if(GROCY_FEATURE_FLAG_STOCK_PRICE_TRACKING)
|
@if(GROCY_FEATURE_FLAG_STOCK_PRICE_TRACKING)
|
||||||
|
|
||||||
@include('components.numberpicker', array(
|
@include('components.numberpicker', array(
|
||||||
'id' => 'stock_decimal_places_prices',
|
'id' => 'stock_decimal_places_prices_input',
|
||||||
'additionalAttributes' => 'data-setting-key="stock_decimal_places_prices"',
|
'additionalAttributes' => 'data-setting-key="stock_decimal_places_prices_input"',
|
||||||
'label' => 'Decimal places allowed for prices',
|
'label' => 'Decimal places allowed for prices (input)',
|
||||||
|
'min' => 0,
|
||||||
|
'additionalCssClasses' => 'user-setting-control'
|
||||||
|
))
|
||||||
|
|
||||||
|
@include('components.numberpicker', array(
|
||||||
|
'id' => 'stock_decimal_places_prices_display',
|
||||||
|
'additionalAttributes' => 'data-setting-key="stock_decimal_places_prices_display"',
|
||||||
|
'label' => 'Decimal places allowed for prices (display)',
|
||||||
'min' => 0,
|
'min' => 0,
|
||||||
'additionalCssClasses' => 'user-setting-control'
|
'additionalCssClasses' => 'user-setting-control'
|
||||||
))
|
))
|
||||||
@@ -197,6 +206,7 @@
|
|||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<a href="{{ $U('/stockoverview') }}"
|
<a href="{{ $U('/stockoverview') }}"
|
||||||
|
Reference in New Issue
Block a user