2020-01-27 19:19:09 +01:00
@ extends ( 'layout.default' )
@ section ( 'title' , $__t ( 'Stock entries' ))
@ section ( 'viewJsName' , 'stockentries' )
2020-01-28 19:27:18 +01:00
@ push ( 'pageStyles' )
2020-08-31 20:32:50 +02:00
< link href = " { { $U ('/node_modules/animate.css/animate.min.css?v=', true) }} { { $version }} "
rel = " stylesheet " >
2020-01-28 19:27:18 +01:00
@ endpush
2020-01-27 19:19:09 +01:00
@ push ( 'pageScripts' )
2020-08-31 20:32:50 +02:00
< script src = " { { $U ('/viewjs/purchase.js?v=', true) }} { { $version }} " ></ script >
2020-01-27 19:19:09 +01:00
@ endpush
@ section ( 'content' )
< div class = " row " >
< div class = " col " >
2020-08-29 16:41:27 +02:00
< h2 class = " title " >@ yield ( 'title' ) </ h2 >
2020-01-27 19:19:09 +01:00
</ div >
2020-10-31 18:37:10 +01:00
</ div >
< hr class = " my-2 py-1 " >
< div class = " row " >
< div class = " col-xs-12 col-md-6 col-xl-3 " >
2020-01-27 19:19:09 +01:00
@ include ( 'components.productpicker' , array (
2020-08-31 20:32:50 +02:00
'products' => $products ,
'disallowAllProductWorkflows' => true
2020-01-27 19:19:09 +01:00
))
</ div >
</ div >
2020-10-31 18:37:10 +01:00
2020-01-27 19:19:09 +01:00
< div class = " row " >
< div class = " col " >
2020-08-31 20:32:50 +02:00
< table id = " stockentries-table "
class = " table table-sm table-striped dt-responsive " >
2020-01-27 19:19:09 +01:00
< thead >
< tr >
< th class = " border-right " ></ th >
< th class = " d-none " > product_id </ th > <!-- This must be in the first column for searching -->
< th > {{ $__t ( 'Product' ) }} </ th >
< th > {{ $__t ( 'Amount' ) }} </ th >
2020-04-12 14:17:52 +02:00
@ if ( GROCY_FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_TRACKING )
2020-01-27 19:19:09 +01:00
< th > {{ $__t ( 'Best before date' ) }} </ th >
2020-04-12 14:17:52 +02:00
@ endif
2020-01-27 19:19:09 +01:00
@ if ( GROCY_FEATURE_FLAG_STOCK_LOCATION_TRACKING ) < th > {{ $__t ( 'Location' ) }} </ th >@ endif
2020-03-25 20:02:59 +01:00
@ if ( GROCY_FEATURE_FLAG_STOCK_PRICE_TRACKING )
2020-03-25 20:09:28 +01:00
< th > {{ $__t ( 'Store' ) }} </ th >
2020-03-25 20:02:59 +01:00
< th > {{ $__t ( 'Price' ) }} </ th >
@ endif
2020-08-22 19:09:36 +02:00
< th > {{ $__t ( 'Factor purchase to stock quantity unit' ) }} </ th >
2020-01-27 19:19:09 +01:00
< th > {{ $__t ( 'Purchased date' ) }} </ th >
@ include ( 'components.userfields_thead' , array (
2020-08-31 20:32:50 +02:00
'userfields' => $userfields
2020-01-27 19:19:09 +01:00
))
</ tr >
</ thead >
< tbody class = " d-none " >
@ foreach ( $stockEntries as $stockEntry )
2020-08-31 20:32:50 +02:00
< tr id = " stock- { { $stockEntry->id }}-row "
2020-10-18 15:08:09 +02:00
class = " @if(GROCY_FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_TRACKING && $stockEntry->best_before_date < date('Y-m-d 23:59:59', strtotime('-1 days')) && $stockEntry->amount > 0) table-danger @elseif(GROCY_FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_TRACKING && $stockEntry->best_before_date < date('Y-m-d 23:59:59', strtotime('+' . $nextXDays . ' days'))
2020-08-31 20:32:50 +02:00
&&
$stockEntry -> amount > 0 ) table - warning @ endif " >
2020-01-27 19:19:09 +01:00
< td class = " fit-content border-right " >
2020-08-31 20:32:50 +02:00
< a class = " btn btn-danger btn-sm stock-consume-button "
href = " # "
data - toggle = " tooltip "
data - placement = " left "
title = " { { $__t ('Consume this stock entry') }} "
2020-01-27 19:19:09 +01:00
data - product - id = " { { $stockEntry->product_id }} "
data - stock - id = " { { $stockEntry->stock_id }} "
data - stockrow - id = " { { $stockEntry->id }} "
data - location - id = " { { $stockEntry->location_id }} "
data - product - name = " { { FindObjectInArrayByPropertyValue( $products , 'id', $stockEntry->product_id )->name }} "
data - product - qu - name = " { { FindObjectInArrayByPropertyValue( $quantityunits , 'id', FindObjectInArrayByPropertyValue( $products , 'id', $stockEntry->product_id )->qu_id_stock)->name }} "
data - consume - amount = " { { $stockEntry->amount }} " >
< i class = " fas fa-utensils " ></ i >
</ a >
@ if ( GROCY_FEATURE_FLAG_STOCK_PRODUCT_OPENED_TRACKING )
2020-10-18 14:48:21 +02:00
< a class = " btn btn-success btn-sm product-open-button @if( $stockEntry->open == 1 || FindObjectInArrayByPropertyValue( $products , 'id', $stockEntry->product_id )->enable_tare_weight_handling == 1) disabled @endif "
2020-08-31 20:32:50 +02:00
href = " # "
data - toggle = " tooltip "
data - placement = " left "
title = " { { $__t ('Mark this stock entry as open') }} "
2020-01-27 19:19:09 +01:00
data - product - id = " { { $stockEntry->product_id }} "
data - product - name = " { { FindObjectInArrayByPropertyValue( $products , 'id', $stockEntry->product_id )->name }} "
data - product - qu - name = " { { FindObjectInArrayByPropertyValue( $quantityunits , 'id', FindObjectInArrayByPropertyValue( $products , 'id', $stockEntry->product_id )->qu_id_stock)->name }} "
data - stock - id = " { { $stockEntry->stock_id }} "
data - stockrow - id = " { { $stockEntry->id }} " >
< i class = " fas fa-box-open " ></ i >
</ a >
@ endif
2020-08-31 20:32:50 +02:00
< a class = " btn btn-info btn-sm show-as-dialog-link "
href = " { { $U ('/stockentry/' . $stockEntry->id . '?embedded') }} "
data - toggle = " tooltip "
data - placement = " left "
title = " { { $__t ('Edit stock entry') }} " >
2020-01-27 19:19:09 +01:00
< i class = " fas fa-edit " ></ i >
</ a >
< div class = " dropdown d-inline-block " >
2020-08-31 20:32:50 +02:00
< button class = " btn btn-sm btn-light text-secondary "
type = " button "
data - toggle = " dropdown " >
2020-01-27 19:19:09 +01:00
< i class = " fas fa-ellipsis-v " ></ i >
</ button >
< div class = " dropdown-menu " >
2020-08-31 20:32:50 +02:00
< a class = " dropdown-item show-as-dialog-link "
type = " button "
href = " { { $U ('/shoppinglistitem/new?embedded&updateexistingproduct&product=' . $stockEntry->product_id ) }} " >
2020-01-27 19:19:09 +01:00
< i class = " fas fa-shopping-cart " ></ i > {{ $__t ( 'Add to shopping list' ) }}
</ a >
< div class = " dropdown-divider " ></ div >
2020-08-31 20:32:50 +02:00
< a class = " dropdown-item show-as-dialog-link "
type = " button "
href = " { { $U ('/purchase?embedded&product=' . $stockEntry->product_id ) }} " >
2020-01-27 19:19:09 +01:00
< i class = " fas fa-shopping-cart " ></ i > {{ $__t ( 'Purchase' ) }}
</ a >
2020-08-31 20:32:50 +02:00
< a class = " dropdown-item show-as-dialog-link "
type = " button "
href = " { { $U ('/consume?embedded&product=' . $stockEntry->product_id . '&locationId=' . $stockEntry->location_id . '&stockId=' . $stockEntry->stock_id ) }} " >
2020-01-27 19:19:09 +01:00
< i class = " fas fa-utensils " ></ i > {{ $__t ( 'Consume' ) }}
</ a >
@ if ( GROCY_FEATURE_FLAG_STOCK_LOCATION_TRACKING )
2020-08-31 20:32:50 +02:00
< a class = " dropdown-item show-as-dialog-link "
type = " button "
href = " { { $U ('/transfer?embedded&product=' . $stockEntry->product_id . '&locationId=' . $stockEntry->location_id . '&stockId=' . $stockEntry->stock_id ) }} " >
2020-01-27 19:19:09 +01:00
< i class = " fas fa-exchange-alt " ></ i > {{ $__t ( 'Transfer' ) }}
</ a >
@ endif
2020-08-31 20:32:50 +02:00
< a class = " dropdown-item show-as-dialog-link "
type = " button "
href = " { { $U ('/inventory?embedded&product=' . $stockEntry->product_id ) }} " >
2020-01-27 19:19:09 +01:00
< i class = " fas fa-list " ></ i > {{ $__t ( 'Inventory' ) }}
</ a >
< div class = " dropdown-divider " ></ div >
2020-08-31 20:32:50 +02:00
< a class = " dropdown-item product-name-cell "
data - product - id = " { { $stockEntry->product_id }} "
type = " button "
href = " # " >
2020-01-27 19:19:09 +01:00
< i class = " fas fa-info " ></ i > {{ $__t ( 'Show product details' ) }}
</ a >
2020-08-31 20:32:50 +02:00
< a class = " dropdown-item "
type = " button "
href = " { { $U ('/stockjournal?product=') }} { { $stockEntry->product_id }} " >
2020-01-27 19:19:09 +01:00
< i class = " fas fa-file-alt " ></ i > {{ $__t ( 'Stock journal for this product' ) }}
</ a >
2020-08-31 20:32:50 +02:00
< a class = " dropdown-item "
type = " button "
href = " { { $U ('/product/') }} { { $stockEntry->product_id . '?returnto=/stockentries' }} " >
2020-01-27 19:19:09 +01:00
< i class = " fas fa-edit " ></ i > {{ $__t ( 'Edit product' ) }}
</ a >
< div class = " dropdown-divider " ></ div >
2020-08-31 20:32:50 +02:00
< a class = " dropdown-item stock-consume-button stock-consume-button-spoiled @if( $stockEntry->amount < 1) disabled @endif "
type = " button "
href = " # "
2020-01-27 19:19:09 +01:00
data - product - id = " { { $stockEntry->product_id }} "
data - product - name = " { { FindObjectInArrayByPropertyValue( $products , 'id', $stockEntry->product_id )->name }} "
data - product - qu - name = " { { FindObjectInArrayByPropertyValue( $quantityunits , 'id', FindObjectInArrayByPropertyValue( $products , 'id', $stockEntry->product_id )->qu_id_stock)->name }} "
data - stock - id = " { { $stockEntry->stock_id }} "
data - stockrow - id = " { { $stockEntry->id }} "
data - location - id = " { { $stockEntry->location_id }} "
data - consume - amount = " 1 " >
< i class = " fas fa-utensils " ></ i > {{ $__t ( 'Consume %1$s of %2$s as spoiled' , '1 ' . FindObjectInArrayByPropertyValue ( $quantityunits , 'id' , FindObjectInArrayByPropertyValue ( $products , 'id' , $stockEntry -> product_id ) -> qu_id_stock ) -> name , FindObjectInArrayByPropertyValue ( $products , 'id' , $stockEntry -> product_id ) -> name ) }}
</ a >
@ if ( GROCY_FEATURE_FLAG_RECIPES )
2020-08-31 20:32:50 +02:00
< a class = " dropdown-item "
type = " button "
href = " { { $U ('/recipes?search=') }} { { FindObjectInArrayByPropertyValue( $products , 'id', $stockEntry->product_id )->name }} " >
2020-01-27 19:19:09 +01:00
< i class = " fas fa-cocktail " ></ i > {{ $__t ( 'Search for recipes containing this product' ) }}
</ a >
@ endif
</ div >
</ div >
</ td >
2020-08-31 20:32:50 +02:00
< td class = " d-none "
data - product - id = " { { $stockEntry->product_id }} " >
2020-01-27 19:19:09 +01:00
{{ $stockEntry -> product_id }}
</ td >
2020-08-31 20:32:50 +02:00
< td class = " product-name-cell cursor-link "
data - product - id = " { { $stockEntry->product_id }} " >
2020-01-27 19:19:09 +01:00
{{ FindObjectInArrayByPropertyValue ( $products , 'id' , $stockEntry -> product_id ) -> name }}
</ td >
< td >
2020-08-31 20:32:50 +02:00
< span id = " stock- { { $stockEntry->id }}-amount "
class = " locale-number locale-number-quantity-amount " > {{ $stockEntry -> amount }} </ span > < span id = " product- { { $stockEntry->product_id }}-qu-name " > {{ $__n ( $stockEntry -> amount , FindObjectInArrayByPropertyValue ( $quantityunits , 'id' , FindObjectInArrayByPropertyValue ( $products , 'id' , $stockEntry -> product_id ) -> qu_id_stock ) -> name , FindObjectInArrayByPropertyValue ( $quantityunits , 'id' , FindObjectInArrayByPropertyValue ( $products , 'id' , $stockEntry -> product_id ) -> qu_id_stock ) -> name_plural ) }} </ span >
< span id = " stock- { { $stockEntry->id }}-opened-amount "
class = " small font-italic " >@ if ( $stockEntry -> open == 1 ){{ $__t ( 'Opened' ) }} @ endif </ span >
2020-01-27 19:19:09 +01:00
</ td >
2020-04-12 14:17:52 +02:00
@ if ( GROCY_FEATURE_FLAG_STOCK_BEST_BEFORE_DATE_TRACKING )
2020-01-27 19:19:09 +01:00
< td >
< span id = " stock- { { $stockEntry->id }}-best-before-date " > {{ $stockEntry -> best_before_date }} </ span >
2020-08-31 20:32:50 +02:00
< time id = " stock- { { $stockEntry->id }}-best-before-date-timeago "
class = " timeago timeago-contextual "
datetime = " { { $stockEntry->best_before_date }} 23:59:59 " ></ time >
2020-01-27 19:19:09 +01:00
</ td >
2020-04-12 14:17:52 +02:00
@ endif
2020-01-27 19:19:09 +01:00
@ if ( GROCY_FEATURE_FLAG_STOCK_LOCATION_TRACKING )
2020-08-31 20:32:50 +02:00
< td id = " stock- { { $stockEntry->id }}-location "
data - location - id = " { { $stockEntry->location_id }} " >
2020-01-27 19:19:09 +01:00
{{ FindObjectInArrayByPropertyValue ( $locations , 'id' , $stockEntry -> location_id ) -> name }}
</ td >
@ endif
@ if ( GROCY_FEATURE_FLAG_STOCK_PRICE_TRACKING )
2020-08-31 20:32:50 +02:00
< td id = " stock- { { $stockEntry->id }}-shopping-location "
data - shopping - location - id = " { { $stockEntry->shopping_location_id }} " >
2020-03-25 19:53:00 +01:00
@ if ( FindObjectInArrayByPropertyValue ( $shoppinglocations , 'id' , $stockEntry -> shopping_location_id ) !== null )
2020-03-25 19:34:56 +01:00
{{ FindObjectInArrayByPropertyValue ( $shoppinglocations , 'id' , $stockEntry -> shopping_location_id ) -> name }}
2020-03-25 19:53:00 +01:00
@ endif
2020-03-25 19:34:56 +01:00
</ td >
2020-08-31 20:32:50 +02:00
< td id = " stock- { { $stockEntry->id }}-price "
class = " locale-number locale-number-currency "
data - price - id = " { { $stockEntry->price }} " >
2020-03-25 20:00:52 +01:00
{{ $stockEntry -> price }}
</ td >
2020-01-27 19:19:09 +01:00
@ endif
2020-08-17 14:47:33 -05:00
< td id = " stock- { { $stockEntry->id }}-qu-factor-purchase-to-stock " >
{{ $stockEntry -> qu_factor_purchase_to_stock }}
</ td >
2020-01-27 19:19:09 +01:00
< td >
< span id = " stock- { { $stockEntry->id }}-purchased-date " > {{ $stockEntry -> purchased_date }} </ span >
2020-08-31 20:32:50 +02:00
< time id = " stock- { { $stockEntry->id }}-purchased-date-timeago "
class = " timeago timeago-contextual "
datetime = " { { $stockEntry->purchased_date }} 23:59:59 " ></ time >
2020-01-27 19:19:09 +01:00
</ td >
2020-04-12 14:13:28 +02:00
@ include ( 'components.userfields_tbody' , array (
2020-08-31 20:32:50 +02:00
'userfields' => $userfields ,
'userfieldValues' => FindAllObjectsInArrayByPropertyValue ( $userfieldValues , 'object_id' , $stockEntry -> product_id )
2020-04-12 14:13:28 +02:00
))
2020-01-27 19:19:09 +01:00
</ tr >
@ endforeach
</ tbody >
</ table >
</ div >
</ div >
2020-08-31 20:32:50 +02:00
< div class = " modal fade "
id = " productcard-modal "
tabindex = " -1 " >
2020-01-27 19:19:09 +01:00
< div class = " modal-dialog " >
< div class = " modal-content text-center " >
< div class = " modal-body " >
@ include ( 'components.productcard' )
</ div >
< div class = " modal-footer " >
2020-08-31 20:32:50 +02:00
< button type = " button "
class = " btn btn-secondary "
data - dismiss = " modal " > {{ $__t ( 'Close' ) }} </ button >
2020-01-27 19:19:09 +01:00
</ div >
</ div >
</ div >
</ div >
@ stop