2018-04-11 19:49:35 +02:00
@ extends ( 'layout.default' )
2019-05-01 20:19:18 +02:00
@ section ( 'title' , $__t ( 'Products' ))
2018-04-12 21:13:38 +02:00
@ section ( 'activeNav' , 'products' )
@ section ( 'viewJsName' , 'products' )
2018-04-11 19:49:35 +02:00
@ section ( 'content' )
2018-07-10 20:37:13 +02:00
< div class = "row" >
< div class = "col" >
2020-04-19 08:51:02 -04:00
< div class = "title-related-links" >
< h2 class = "title" >@ yield ( 'title' ) </ h2 >
2020-11-07 14:53:45 +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 >
< button class = "btn btn-outline-dark d-md-none mt-2 order-1 order-md-3"
type = "button"
data - toggle = "collapse"
data - target = "#related-links" >
< i class = "fas fa-ellipsis-v" ></ i >
</ button >
</ div >
< div class = "related-links collapse d-md-flex order-2 width-xs-sm-100"
id = "related-links" >
< a class = "btn btn-primary responsive-button m-1 mt-md-0 mb-md-0 float-right"
2020-10-31 18:37:10 +01:00
href = "{{ $U ('/product/new') }}" >
{{ $__t ( 'Add' ) }}
</ a >
2020-11-07 14:53:45 +01:00
< a class = "btn btn-outline-secondary m-1 mt-md-0 mb-md-0 float-right"
2020-08-31 20:32:50 +02:00
href = "{{ $U ('/userfields?entity=products') }}" >
2020-04-19 08:51:02 -04:00
{{ $__t ( 'Configure userfields' ) }}
</ a >
2020-11-07 14:53:45 +01:00
< a class = "btn btn-outline-secondary m-1 mt-md-0 mb-md-0 float-right"
2020-08-31 20:32:50 +02:00
href = "{{ $U ('/stocksettings#productpresets') }}" >
2020-04-19 08:51:02 -04:00
{{ $__t ( 'Presets for new products' ) }}
</ a >
</ div >
</ div >
2018-07-10 20:37:13 +02:00
</ div >
</ div >
2017-04-19 21:09:28 +02:00
2020-11-08 15:09:10 +01:00
< hr class = "my-2" >
2020-10-31 18:37:10 +01:00
2020-11-07 14:53:45 +01:00
< div class = "row collapse d-md-flex"
id = "table-filter-row" >
2018-07-11 19:43:05 +02:00
< div class = "col-xs-12 col-md-6 col-xl-3" >
2020-10-31 18:37:10 +01:00
< div class = "input-group" >
2020-04-19 08:51:02 -04:00
< div class = "input-group-prepend" >
2020-08-31 20:32:50 +02:00
< span class = "input-group-text" >< i class = "fas fa-search" ></ i ></ span >
2020-04-19 08:51:02 -04:00
</ div >
2020-08-31 20:32:50 +02:00
< input type = "text"
id = "search"
class = "form-control"
placeholder = "{{ $__t ('Search') }}" >
2020-04-19 08:51:02 -04:00
</ div >
2018-07-09 19:27:22 +02:00
</ div >
2019-04-05 21:08:30 +02:00
< div class = "col-xs-12 col-md-6 col-xl-3" >
2020-10-31 18:37:10 +01:00
< div class = "input-group" >
2020-04-19 08:51:02 -04:00
< div class = "input-group-prepend" >
2020-10-31 18:37:10 +01:00
< span class = "input-group-text" >< i class = "fas fa-filter" ></ i >& nbsp ;{{ $__t ( 'Product group' ) }} </ span >
2020-04-19 08:51:02 -04:00
</ div >
2020-11-16 19:10:29 +01:00
< select class = "custom-control custom-select"
2020-10-14 17:48:37 +02:00
id = "product-group-filter" >
2020-04-19 08:51:02 -04:00
< option value = "all" > {{ $__t ( 'All' ) }} </ option >
@ foreach ( $productGroups as $productGroup )
2020-08-31 20:32:50 +02:00
< option value = "{{ $productGroup->id }}" > {{ $productGroup -> name }} </ option >
2020-04-19 08:51:02 -04:00
@ endforeach
</ select >
</ div >
2019-04-05 21:08:30 +02:00
</ div >
2020-12-07 19:48:33 +01:00
< div class = "col-xs-12 col-md-6 col-xl-3" >
< div class = "form-check custom-control custom-checkbox" >
< input class = "form-check-input custom-control-input"
type = "checkbox"
2020-12-20 10:19:44 +01:00
id = "show-disabled" >
2020-12-07 19:48:33 +01:00
< label class = "form-check-label custom-control-label"
2020-12-20 10:19:44 +01:00
for = "show-disabled" >
{{ $__t ( 'Show disabled' ) }}
2020-12-07 19:48:33 +01:00
</ label >
</ div >
</ div >
2020-11-07 14:53:45 +01:00
< div class = "col" >
< div class = "float-right" >
< a id = "clear-filter-button"
class = "btn btn-sm btn-outline-info"
href = "#" >
{{ $__t ( 'Clear filter' ) }}
</ a >
</ div >
</ div >
2018-07-09 19:27:22 +02:00
</ div >
2018-07-10 20:37:13 +02:00
< div class = "row" >
< div class = "col" >
2020-08-31 20:32:50 +02:00
< table id = "products-table"
2020-11-07 14:53:45 +01:00
class = "table table-sm table-striped nowrap w-100" >
2018-07-10 20:37:13 +02: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 = "#products-table"
href = "#" >< i class = "fas fa-eye" ></ i ></ a >
</ th >
2019-05-01 20:19:18 +02:00
< th > {{ $__t ( 'Name' ) }} </ th >
2019-09-19 17:46:52 +02:00
< th class = "@if(!GROCY_FEATURE_FLAG_STOCK_LOCATION_TRACKING) d-none @endif" > {{ $__t ( 'Location' ) }} </ th >
2019-05-01 20:19:18 +02:00
< th > {{ $__t ( 'Min. stock amount' ) }} </ th >
2020-11-13 17:30:57 +01:00
< th > {{ $__t ( 'Default quantity unit purchase' ) }} </ th >
< th > {{ $__t ( 'Quantity unit stock' ) }} </ th >
2019-05-01 20:19:18 +02:00
< th > {{ $__t ( 'Product group' ) }} </ th >
2020-12-19 10:51:07 +01:00
< th class = "@if(!GROCY_FEATURE_FLAG_STOCK_PRICE_TRACKING) d-none @endif" > {{ $__t ( 'Default store' ) }} </ th >
2019-04-22 22:16:35 +02:00
@ include ( 'components.userfields_thead' , array (
2020-08-31 20:32:50 +02:00
'userfields' => $userfields
2019-04-22 22:16:35 +02:00
))
2018-07-10 20:37:13 +02:00
</ tr >
</ thead >
2019-01-05 20:06:35 +01:00
< tbody class = "d-none" >
2018-07-10 20:37:13 +02:00
@ foreach ( $products as $product )
2020-12-20 10:19:44 +01:00
< tr class = "@if( $product->active == 0) text-muted @endif" >
2019-03-09 10:49:26 +01:00
< td class = "fit-content border-right" >
2020-08-31 20:32:50 +02:00
< a class = "btn btn-info btn-sm"
2020-11-12 21:35:10 +01:00
href = "{{ $U ('/product/') }}{{ $product->id }}"
data - toggle = "tooltip"
title = "{{ $__t ('Edit this item') }}" >
2018-07-11 19:43:05 +02:00
< i class = "fas fa-edit" ></ i >
2018-07-10 20:37:13 +02:00
</ a >
2020-12-07 19:48:33 +01:00
< a class = "btn btn-danger btn-sm product-delete-button"
2020-08-31 20:32:50 +02:00
href = "#"
data - product - id = "{{ $product->id }}"
2020-11-12 21:35:10 +01:00
data - product - name = "{{ $product->name }}"
data - toggle = "tooltip"
title = "{{ $__t ('Delete this item') }}" >
2018-07-11 19:43:05 +02:00
< i class = "fas fa-trash" ></ i >
2018-07-10 20:37:13 +02:00
</ a >
2020-12-21 09:30:19 +01:00
< div class = "dropdown d-inline-block" >
< button class = "btn btn-sm btn-light text-secondary"
type = "button"
data - toggle = "dropdown" >
< i class = "fas fa-ellipsis-v" ></ i >
</ button >
< div class = "table-inline-menu dropdown-menu dropdown-menu-right" >
< a class = "dropdown-item"
type = "button"
href = "{{ $U ('/product/new?copy-of=') }}{{ $product->id }}" >
< span class = "dropdown-item-text" > {{ $__t ( 'Copy' ) }} </ span >
</ a >
< a class = "dropdown-item merge-products-button"
data - product - id = "{{ $product->id }}"
type = "button"
href = "#" >
< span class = "dropdown-item-text" > {{ $__t ( 'Merge' ) }} </ span >
</ a >
</ div >
</ div >
2018-07-10 20:37:13 +02:00
</ td >
< td >
2020-12-07 19:48:33 +01:00
{{ $product -> name }}
@ if ( ! empty ( $product -> picture_file_name ))
< i class = "fas fa-image text-muted"
2020-11-12 21:35:10 +01:00
data - toggle = "tooltip"
2020-12-07 19:48:33 +01:00
title = "{{ $__t ('This product has a picture') }}" ></ i >
@ endif
2018-07-10 20:37:13 +02:00
</ td >
2019-09-19 17:46:52 +02:00
< td class = "@if(!GROCY_FEATURE_FLAG_STOCK_LOCATION_TRACKING) d-none @endif" >
2020-12-19 14:03:28 +01:00
@ php
$location = FindObjectInArrayByPropertyValue ( $locations , 'id' , $product -> location_id );
@ endphp
@ if ( $location != null )
{{ $location -> name }}
@ endif
2018-07-10 20:37:13 +02:00
</ td >
< td >
2019-09-26 15:25:30 +02:00
< span class = "locale-number locale-number-quantity-amount" > {{ $product -> min_stock_amount }} </ span >
2018-07-10 20:37:13 +02:00
</ td >
< td >
{{ FindObjectInArrayByPropertyValue ( $quantityunits , 'id' , $product -> qu_id_purchase ) -> name }}
</ td >
< td >
{{ FindObjectInArrayByPropertyValue ( $quantityunits , 'id' , $product -> qu_id_stock ) -> name }}
</ td >
< td >
2018-09-24 13:02:52 +02:00
@ if ( ! empty ( $product -> product_group_id )) {{ FindObjectInArrayByPropertyValue ( $productGroups , 'id' , $product -> product_group_id ) -> name }} @ endif
2018-07-10 20:37:13 +02:00
</ td >
2020-12-19 10:51:07 +01:00
< td class = "@if(!GROCY_FEATURE_FLAG_STOCK_PRICE_TRACKING) d-none @endif" >
2020-12-19 14:03:28 +01:00
@ php
$store = FindObjectInArrayByPropertyValue ( $shoppingLocations , 'id' , $product -> shopping_location_id );
@ endphp
@ if ( $store != null )
{{ $store -> name }}
2020-12-19 10:51:07 +01:00
@ endif
</ td >
2019-04-22 22:16:35 +02:00
@ include ( 'components.userfields_tbody' , array (
2020-08-31 20:32:50 +02:00
'userfields' => $userfields ,
'userfieldValues' => FindAllObjectsInArrayByPropertyValue ( $userfieldValues , 'object_id' , $product -> id )
2019-04-22 22:16:35 +02:00
))
2018-07-10 20:37:13 +02:00
</ tr >
@ endforeach
</ tbody >
</ table >
</ div >
2017-04-15 23:16:20 +02:00
</ div >
2020-12-20 20:58:22 +01:00
< div class = "modal fade"
id = "merge-products-modal"
tabindex = "-1" >
< div class = "modal-dialog" >
< div class = "modal-content text-center" >
< div class = "modal-header" >
< h4 class = "modal-title w-100" > {{ $__t ( 'Merge products' ) }} </ h4 >
</ div >
< div class = "modal-body" >
< div class = "form-group" >
< label for = "merge-products-keep" > {{ $__t ( 'Product to keep' ) }} & nbsp ; < i class = "fas fa-question-circle text-muted"
data - toggle = "tooltip"
title = "{{ $__t ('After merging, this product will be kept') }}" ></ i >
</ label >
< select class = "custom-control custom-select"
id = "merge-products-keep" >
< option ></ option >
@ foreach ( $products as $product )
< option value = "{{ $product->id }}" > {{ $product -> name }} </ option >
@ endforeach
</ select >
</ div >
< div class = "form-group" >
< label for = "merge-products-remove" > {{ $__t ( 'Product to remove' ) }} & nbsp ; < i class = "fas fa-question-circle text-muted"
data - toggle = "tooltip"
title = "{{ $__t ('After merging, all occurences of this product will be replaced by " Product to keep " (means this product will not exist anymore)') }}" ></ i >
</ label >
< select class = "custom-control custom-select"
id = "merge-products-remove" >
< option ></ option >
@ foreach ( $products as $product )
< option value = "{{ $product->id }}" > {{ $product -> name }} </ option >
@ endforeach
</ select >
</ div >
</ div >
< div class = "modal-footer" >
< button type = "button"
class = "btn btn-secondary"
data - dismiss = "modal" > {{ $__t ( 'Cancel' ) }} </ button >
< button id = "merge-products-save-button"
type = "button"
class = "btn btn-primary"
data - dismiss = "modal" > {{ $__t ( 'OK' ) }} </ button >
</ div >
</ div >
</ div >
</ div >
2018-04-11 19:49:35 +02:00
@ stop