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-11-15 14:48:48 +01:00
< div class = "float-right" >
< button class = "btn btn-outline-dark d-md-none mt-2 order-1 order-md-3"
type = "button"
data - toggle = "collapse"
data - target = "#table-filter-row" >
< i class = "fas fa-filter" ></ i >
</ button >
</ div >
2020-01-27 19:19:09 +01:00
</ div >
2020-10-31 18:37:10 +01:00
</ div >
2020-11-08 15:09:10 +01:00
< hr class = "my-2" >
2020-10-31 18:37:10 +01:00
2020-11-15 14:48:48 +01:00
< div class = "row collapse d-md-flex"
id = "table-filter-row" >
2020-10-31 18:37:10 +01:00
< 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 ,
2020-11-15 14:48:48 +01:00
'disallowAllProductWorkflows' => true ,
'isRequired' => false
2020-01-27 19:19:09 +01:00
))
</ div >
2020-11-15 14:48:48 +01:00
< div class = "col" >
< div class = "float-right mt-3" >
< a id = "clear-filter-button"
class = "btn btn-sm btn-outline-info"
href = "#" >
{{ $__t ( 'Clear filter' ) }}
</ a >
</ div >
</ div >
2020-01-27 19:19:09 +01:00
</ 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"
2020-11-07 14:53:45 +01:00
class = "table table-sm table-striped nowrap w-100" >
2020-01-27 19:19:09 +01:00
< thead >
< tr >
2020-11-11 22:28:05 +01:00
< th class = "border-right" >< a class = "text-muted change-table-columns-visibility-button"
data - toggle = "tooltip"
2020-11-11 21:11:17 +01:00
data - toggle = "tooltip"
2020-12-16 18:18:03 +01:00
title = "{{ $__t ('Table options') }}"
2020-11-11 21:11:17 +01:00
data - table - selector = "#stockentries-table"
href = "#" >< i class = "fas fa-eye" ></ i ></ a >
</ th >
2020-01-27 19:19:09 +01:00
< 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-11-15 19:53:44 +01:00
< th > {{ $__t ( 'Due 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-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-11-15 19:53:44 +01:00
data - due - type = "{{ FindObjectInArrayByPropertyValue( $products , 'id', $stockEntry->product_id )->due_type }}"
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) @if(FindObjectInArrayByPropertyValue( $products , 'id', $stockEntry->product_id )->due_type == 1) table-secondary @else table-danger @endif @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-12-21 19:04:48 +01:00
< i class = "fas fa-cart-plus" ></ i > {{ $__t ( 'Purchase' ) }}
2020-01-27 19:19:09 +01:00
</ 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 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" >
2020-11-12 21:35:10 +01:00
{{ $__t ( 'Consume this stock entry as spoiled' , '1 ' . FindObjectInArrayByPropertyValue ( $quantityunits , 'id' , FindObjectInArrayByPropertyValue ( $products , 'id' , $stockEntry -> product_id ) -> qu_id_stock ) -> name , FindObjectInArrayByPropertyValue ( $products , 'id' , $stockEntry -> product_id ) -> name ) }}
2020-01-27 19:19:09 +01:00
</ 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-11-12 21:35:10 +01:00
{{ $__t ( 'Search for recipes containing this product' ) }}
2020-01-27 19:19:09 +01:00
</ a >
@ endif
2020-11-12 21:35:10 +01:00
< div class = "dropdown-divider" ></ div >
< a class = "dropdown-item product-name-cell"
data - product - id = "{{ $stockEntry->product_id }}"
type = "button"
href = "#" >
{{ $__t ( 'Product overview' ) }}
</ a >
< a class = "dropdown-item show-as-dialog-link"
type = "button"
href = "{{ $U ('/stockjournal?embedded&product=') }}{{ $stockEntry->product_id }}" >
{{ $__t ( 'Stock journal' ) }}
</ a >
< a class = "dropdown-item show-as-dialog-link"
type = "button"
href = "{{ $U ('/stockjournal/summary?embedded&product=') }}{{ $stockEntry->product_id }}" >
{{ $__t ( 'Stock journal summary' ) }}
</ a >
< a class = "dropdown-item"
type = "button"
href = "{{ $U ('/product/') }}{{ $stockEntry->product_id . '?returnto=/stockentries' }}" >
{{ $__t ( 'Edit product' ) }}
</ a >
2020-01-27 19:19:09 +01:00
</ 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 >
2020-11-15 19:53:44 +01:00
< span id = "stock-{{ $stockEntry->id }}-due-date" > {{ $stockEntry -> best_before_date }} </ span >
< time id = "stock-{{ $stockEntry->id }}-due-date-timeago"
2020-08-31 20:32:50 +02:00
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
< 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