Allow decimal amounts in general for the shopping list

This commit is contained in:
Bernd Bestel 2020-08-24 20:25:50 +02:00
parent ece880ea44
commit 3b564294e3
No known key found for this signature in database
GPG Key ID: 71BD34C0D4891300
5 changed files with 9 additions and 18 deletions

View File

@ -30,6 +30,7 @@
### Shopping list improvements
- Decimal amounts are now allowed (for any product, rounded by two decimal places)
- "Add products that are below defined min. stock amount" always rounded up the missing amount to an integral number, this now allows decimal numbers
### Recipe improvements/fixes

View File

@ -116,19 +116,6 @@ Grocy.Components.ProductPicker.GetPicker().on('change', function(e)
function (productDetails)
{
$('#amount_qu_unit').text(productDetails.quantity_unit_purchase.name);
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()));
}
else
{
$("#amount").attr("min", "1");
$("#amount").attr("step", "1");
$("#amount").parent().find(".invalid-feedback").text(__t('The amount cannot be lower than %s', '1'));
}
$('#amount').focus();
Grocy.FrontendHelpers.ValidateForm('shoppinglist-form');
@ -194,3 +181,5 @@ if (GetUriParam("amount") !== undefined)
$("#amount").val(parseFloat(GetUriParam("amount")).toLocaleString({ minimumFractionDigits: 0, maximumFractionDigits: 4 }));
Grocy.FrontendHelpers.ValidateForm('shoppinglist-form');
}
$("#amount").parent().find(".invalid-feedback").text(__t('The amount cannot be lower than %s', 0.01.toLocaleString()));

View File

@ -38,10 +38,10 @@ class RecipesService extends BaseService
{
$product = $this->getDataBase()->products($recipePosition->product_id);
$toOrderAmount = ceil(($recipePosition->missing_amount - $recipePosition->amount_on_shopping_list) / $product->qu_factor_purchase_to_stock);
$toOrderAmount = round(($recipePosition->missing_amount - $recipePosition->amount_on_shopping_list) / $product->qu_factor_purchase_to_stock, 2);
if ($recipe->not_check_shoppinglist == 1)
{
$toOrderAmount = ceil($recipePosition->missing_amount / $product->qu_factor_purchase_to_stock);
$toOrderAmount = round($recipePosition->missing_amount / $product->qu_factor_purchase_to_stock, 2);
}
if($toOrderAmount > 0)

View File

@ -905,7 +905,7 @@ class StockService extends BaseService
if ($productRow != null && !empty($productRow))
{
$newAmount = $productRow->amount - $amount;
if ($newAmount < 1)
if ($newAmount < 0.01)
{
$productRow->delete();
}

View File

@ -51,9 +51,10 @@
'id' => 'amount',
'label' => 'Amount',
'hintId' => 'amount_qu_unit',
'min' => 0,
'min' => 0.01,
'step' => 0.01,
'value' => $value,
'invalidFeedback' => $__t('The amount cannot be lower than %s', '1')
'invalidFeedback' => $__t('The amount cannot be lower than %s', '0.01')
))
<div class="form-group">