mirror of
https://github.com/grocy/grocy.git
synced 2025-10-15 17:58:32 +00:00
Make it also possible to consume the whole stock of a product from stock overview
This commit is contained in:
@@ -120,11 +120,13 @@ return array(
|
|||||||
'#1 habits are due to be done within the next #2 days' => '#1 Gewohnheiten stehen in den nächsten #2 Tagen an',
|
'#1 habits are due to be done within the next #2 days' => '#1 Gewohnheiten stehen in den nächsten #2 Tagen an',
|
||||||
'#1 habits are overdue to be done' => '#1 Gewohnheiten sind überfällig',
|
'#1 habits are overdue to be done' => '#1 Gewohnheiten sind überfällig',
|
||||||
'Released on' => 'Veröffentlicht am',
|
'Released on' => 'Veröffentlicht am',
|
||||||
'Consume 1 #1 of #2' => 'Verbrauche 1 #1 #2',
|
'Consume #3 #1 of #2' => 'Verbrauche #3 #1 #2',
|
||||||
'Added #1 #2 of #3 to stock' => '#1 #2 #3 dem Bestand hinzugefügt',
|
'Added #1 #2 of #3 to stock' => '#1 #2 #3 dem Bestand hinzugefügt',
|
||||||
'Stock amount of #1 is now #2 #3' => 'Es sind nun #2 #3 #1 im Bestand',
|
'Stock amount of #1 is now #2 #3' => 'Es sind nun #2 #3 #1 im Bestand',
|
||||||
'Tracked execution of habit #1 on #2' => 'Ausführung von #1 am #2 erfasst',
|
'Tracked execution of habit #1 on #2' => 'Ausführung von #1 am #2 erfasst',
|
||||||
'Tracked charge cylce of battery #1 on #2' => 'Ladezyklus für Batterie #1 am #2 erfasst',
|
'Tracked charge cylce of battery #1 on #2' => 'Ladezyklus für Batterie #1 am #2 erfasst',
|
||||||
|
'Consume all #1 which are currently in stock' => 'Verbrauche den kompletten Bestand von #1',
|
||||||
|
'All' => 'Alle',
|
||||||
|
|
||||||
//Constants
|
//Constants
|
||||||
'manually' => 'Manuell',
|
'manually' => 'Manuell',
|
||||||
|
@@ -12,22 +12,31 @@ $(document).on('click', '.product-consume-button', function(e)
|
|||||||
var productId = $(e.currentTarget).attr('data-product-id');
|
var productId = $(e.currentTarget).attr('data-product-id');
|
||||||
var productName = $(e.currentTarget).attr('data-product-name');
|
var productName = $(e.currentTarget).attr('data-product-name');
|
||||||
var productQuName = $(e.currentTarget).attr('data-product-qu-name');
|
var productQuName = $(e.currentTarget).attr('data-product-qu-name');
|
||||||
|
var consumeAmount = $(e.currentTarget).attr('data-consume-amount');
|
||||||
|
|
||||||
Grocy.Api.Get('stock/consume-product/' + productId + '/1',
|
Grocy.Api.Get('stock/consume-product/' + productId + '/' + consumeAmount,
|
||||||
function(result)
|
function(result)
|
||||||
{
|
{
|
||||||
var oldAmount = parseInt($('#product-' + productId + '-amount').text());
|
var oldAmount = parseInt($('#product-' + productId + '-amount').text());
|
||||||
var newAmount = oldAmount - 1;
|
var newAmount = oldAmount - consumeAmount;
|
||||||
if (newAmount === 0)
|
if (newAmount === 0)
|
||||||
{
|
{
|
||||||
$('#product-' + productId + '-row').remove();
|
$('#product-' + productId + '-row').fadeOut(500, function()
|
||||||
|
{
|
||||||
|
$(this).remove();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$('#product-' + productId + '-amount').text(newAmount);
|
$('#product-' + productId + '-amount').parent().effect('highlight', { }, 500);
|
||||||
|
$('#product-' + productId + '-amount').fadeOut(500, function()
|
||||||
|
{
|
||||||
|
$(this).text(newAmount).fadeIn(500);
|
||||||
|
});
|
||||||
|
$('#product-' + productId + '-consume-all-button').attr('data-consume-amount', newAmount);
|
||||||
}
|
}
|
||||||
|
|
||||||
toastr.success(L('Removed #1 #2 of #3 from stock', 1, productQuName, productName));
|
toastr.success(L('Removed #1 #2 of #3 from stock', consumeAmount, productQuName, productName));
|
||||||
},
|
},
|
||||||
function(xhr)
|
function(xhr)
|
||||||
{
|
{
|
||||||
|
@@ -4,6 +4,10 @@
|
|||||||
@section('activeNav', 'stockoverview')
|
@section('activeNav', 'stockoverview')
|
||||||
@section('viewJsName', 'stockoverview')
|
@section('viewJsName', 'stockoverview')
|
||||||
|
|
||||||
|
@push('pageScripts')
|
||||||
|
<script src="{{ $U('/bower_components/jquery-ui/jquery-ui.min.js?v=') }}{{ $version }}"></script>
|
||||||
|
@endpush
|
||||||
|
|
||||||
@section('content')
|
@section('content')
|
||||||
<h1 class="page-header">{{ $L('Stock overview') }} <span class="text-muted small">{{ $L('#1 products with #2 units in stock', count($currentStock), SumArrayValue($currentStock, 'amount')) }}</span></h1>
|
<h1 class="page-header">{{ $L('Stock overview') }} <span class="text-muted small">{{ $L('#1 products with #2 units in stock', count($currentStock), SumArrayValue($currentStock, 'amount')) }}</span></h1>
|
||||||
|
|
||||||
@@ -31,11 +35,19 @@
|
|||||||
@foreach($currentStock as $currentStockEntry)
|
@foreach($currentStock as $currentStockEntry)
|
||||||
<tr id="product-{{ $currentStockEntry->product_id }}-row" class="@if($currentStockEntry->best_before_date < date('Y-m-d', strtotime('-1 days'))) error-bg @elseif($currentStockEntry->best_before_date < date('Y-m-d', strtotime('+5 days'))) warning-bg @elseif (FindObjectInArrayByPropertyValue($missingProducts, 'id', $currentStockEntry->product_id) !== null) info-bg @endif">
|
<tr id="product-{{ $currentStockEntry->product_id }}-row" class="@if($currentStockEntry->best_before_date < date('Y-m-d', strtotime('-1 days'))) error-bg @elseif($currentStockEntry->best_before_date < date('Y-m-d', strtotime('+5 days'))) warning-bg @elseif (FindObjectInArrayByPropertyValue($missingProducts, 'id', $currentStockEntry->product_id) !== null) info-bg @endif">
|
||||||
<td class="fit-content">
|
<td class="fit-content">
|
||||||
<a class="btn btn-danger btn-xs product-consume-button" href="#" title="{{ $L('Consume 1 #1 of #2', FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->qu_id_stock)->name, FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->name) }}"
|
<a class="btn btn-success btn-xs product-consume-button" href="#" title="{{ $L('Consume #3 #1 of #2', FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->qu_id_stock)->name, FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->name, 1) }}"
|
||||||
data-product-id="{{ $currentStockEntry->product_id }}"
|
data-product-id="{{ $currentStockEntry->product_id }}"
|
||||||
data-product-name="{{ FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->name }}"
|
data-product-name="{{ FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->name }}"
|
||||||
data-product-qu-name="{{ FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->qu_id_stock)->name }}">
|
data-product-qu-name="{{ FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->qu_id_stock)->name }}"
|
||||||
<i class="fa fa-cutlery"></i>
|
data-consume-amount="1">
|
||||||
|
<i class="fa fa-cutlery"></i> 1
|
||||||
|
</a>
|
||||||
|
<a id="product-{{ $currentStockEntry->product_id }}-consume-all-button" class="btn btn-danger btn-xs product-consume-button" href="#" title="{{ $L('Consume all #1 which are currently in stock', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->name) }}"
|
||||||
|
data-product-id="{{ $currentStockEntry->product_id }}"
|
||||||
|
data-product-name="{{ FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->name }}"
|
||||||
|
data-product-qu-name="{{ FindObjectInArrayByPropertyValue($quantityunits, 'id', FindObjectInArrayByPropertyValue($products, 'id', $currentStockEntry->product_id)->qu_id_stock)->name }}"
|
||||||
|
data-consume-amount="{{ $currentStockEntry->amount }}">
|
||||||
|
<i class="fa fa-cutlery"></i> {{ $L('All') }}
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
<td>
|
<td>
|
||||||
|
Reference in New Issue
Block a user