@@ -203,6 +203,7 @@ class AdminController extends EasyAdminController | |||
case 'text': | |||
case 'string': | |||
case 'toggle': | |||
// $filter = $this->getListFilterParam($field['property']); | |||
$filter = $this->filtersForm->get($field['property'])->getData(); | |||
if ($filter !== null) { | |||
@@ -327,6 +328,25 @@ class AdminController extends EasyAdminController | |||
return $this->executeDynamicMethod('render<EntityName>Template', ['list', $this->entity['templates']['list'], $parameters]); | |||
} | |||
//TODO finaliser la sauvegarde des filtres | |||
/* | |||
protected function getListFilterParam($param){ | |||
$entityName = $this->entity['name']; | |||
$sessionParam = $entityName.$param; | |||
//CUSTOM | |||
$value = $this->filtersForm->get($param)->getViewData(); | |||
if($value){ | |||
$this->session->set($sessionParam, $value); | |||
}else if($this->session->get($sessionParam) && !$this->filtersForm->isSubmitted() && $this->filtersForm->get($param)){ | |||
$value = $this->session->get($sessionParam); | |||
$this->filtersForm->get($param)->setData($value); | |||
} | |||
return $value; | |||
}*/ | |||
protected function getListParam($param, $default =null){ | |||
$entityName = $this->entity['name']; | |||
$sessionParam = $entityName.$param; |
@@ -208,7 +208,6 @@ class ProductFamilyController extends AdminController | |||
protected function editAction() | |||
{ | |||
$this->dispatch(EasyAdminEvents::PRE_EDIT); | |||
$id = $this->request->query->get('id'); | |||
@@ -265,7 +264,7 @@ class ProductFamilyController extends AdminController | |||
if ($editForm->get('stayOnPage')->getData() != "false" || $this->request->get('submitAndStay') !== null) { | |||
$refererUrl = $this->request->query->get('referer', ''); | |||
return $this->redirectToRoute('easyadmin', ['entity' => 'ProductFamily', 'action' => 'edit', 'id' => $id, 'referer' => $refererUrl]); | |||
return $this->redirectToRoute('easyadmin', ['entity' => 'ProductFamily', 'action' => 'edit', 'id' => $id, 'referer' => $refererUrl, 'ajax' => $this->request->query->get('ajax')]); | |||
} else { | |||
return $this->redirectToReferrer(); | |||
} |
@@ -46,6 +46,11 @@ trait PriceTrait | |||
return $this->getTaxRate() ; | |||
} | |||
public function getBuyingPriceInherited(): ?float | |||
{ | |||
return $this->getBuyingPrice() ; | |||
} | |||
public function getBuyingPrice(): ?float | |||
{ | |||
return $this->buyingPrice; |
@@ -887,4 +887,24 @@ abstract class ProductFamily extends AbstractDocumentEntity implements ProductPr | |||
return $this; | |||
} | |||
public function getFieldBuyingPrice() | |||
{ | |||
if($this->getBehaviorPrice() === self::BEHAVIOR_PRICE_BY_PIECE) { | |||
return 'buyingPrice' ; | |||
} | |||
elseif($this->getBehaviorPrice() === self::BEHAVIOR_PRICE_BY_REFERENCE_UNIT) { | |||
return 'buyingPriceByRefUnit' ; | |||
} | |||
} | |||
public function getFieldPrice() | |||
{ | |||
if($this->getBehaviorPrice() === self::BEHAVIOR_PRICE_BY_PIECE) { | |||
return 'price' ; | |||
} | |||
elseif($this->getBehaviorPrice() === self::BEHAVIOR_PRICE_BY_REFERENCE_UNIT) { | |||
return 'priceByRefUnit' ; | |||
} | |||
} | |||
} |
@@ -40,14 +40,16 @@ trait ProductPropertyTrait | |||
*/ | |||
protected $propertyExpirationDate; | |||
public function getBuyingPriceByRefUnit(): ?float | |||
{ | |||
return $this->buyingPriceByRefUnit; | |||
} | |||
public function getBuyingPriceByRefUnitInherited(): ?float | |||
{ | |||
return $this->getBuyingPriceByRefUnit() ; | |||
} | |||
public function setBuyingPriceByRefUnit(?float $buyingPriceByRefUnit): self | |||
{ | |||
$this->buyingPriceByRefUnit = $buyingPriceByRefUnit; |
@@ -350,7 +350,7 @@ table th .select2-container--default .select2-selection--single { | |||
} | |||
/* Style the checkmark/indicator */ | |||
/* line 113, ../../sass/backend/custom.scss */ | |||
/* line 111, ../../sass/backend/custom.scss */ | |||
.form-check-label .checkmark:after { | |||
left: 7px; | |||
top: 3px; | |||
@@ -443,37 +443,37 @@ table th .select2-container--default .select2-selection--single { | |||
padding: 0.25rem 0.75rem; | |||
} | |||
/* line 139, ../../sass/backend/custom.scss */ | |||
/* line 137, ../../sass/backend/custom.scss */ | |||
.col-form-label { | |||
font-weight: bold; | |||
} | |||
/* line 141, ../../sass/backend/custom.scss */ | |||
/* line 139, ../../sass/backend/custom.scss */ | |||
#toast-container.toast-top-right { | |||
top: 60px; | |||
} | |||
/* SIDEBAR */ | |||
/* line 144, ../../sass/backend/custom.scss */ | |||
/* line 142, ../../sass/backend/custom.scss */ | |||
.main-header.navbar { | |||
padding: 0; | |||
min-height: 57px; | |||
} | |||
/* line 145, ../../sass/backend/custom.scss */ | |||
/* line 143, ../../sass/backend/custom.scss */ | |||
.lc-navbar li { | |||
border-left: 1px solid #e0e0e0; | |||
padding: 0.5rem 1.5rem; | |||
} | |||
/* line 146, ../../sass/backend/custom.scss */ | |||
/* line 144, ../../sass/backend/custom.scss */ | |||
.lc-navbar li label { | |||
margin-bottom: 0; | |||
vertical-align: middle; | |||
font-weight: normal !important; | |||
} | |||
/* line 148, ../../sass/backend/custom.scss */ | |||
/* line 146, ../../sass/backend/custom.scss */ | |||
#switch-merchant { | |||
min-width: 170px; | |||
} | |||
@@ -496,17 +496,17 @@ table th .select2-container--default .select2-selection--single { | |||
} | |||
/* Sortable */ | |||
/* line 159, ../../sass/backend/custom.scss */ | |||
/* line 152, ../../sass/backend/custom.scss */ | |||
.ui-sortable-helper { | |||
display: table; | |||
} | |||
/* line 160, ../../sass/backend/custom.scss */ | |||
/* line 153, ../../sass/backend/custom.scss */ | |||
.ui-state-highlight { | |||
background: #eee; | |||
} | |||
/* line 161, ../../sass/backend/custom.scss */ | |||
/* line 154, ../../sass/backend/custom.scss */ | |||
.lc-sortable div:last-child { | |||
display: none; | |||
} | |||
@@ -523,13 +523,13 @@ table th .select2-container--default .select2-selection--single { | |||
.lc-ckfinder-wrap .lc-ckfinder-button{width: 100%; bottom: 0px; left: 0; position: absolute;} | |||
*/ | |||
/* VUES JS */ | |||
/* line 176, ../../sass/backend/custom.scss */ | |||
/* line 169, ../../sass/backend/custom.scss */ | |||
.nav-item .btn { | |||
padding-right: 15px; | |||
position: relative; | |||
} | |||
/* line 177, ../../sass/backend/custom.scss */ | |||
/* line 170, ../../sass/backend/custom.scss */ | |||
.nav-item .btn .invalid-form { | |||
display: none; | |||
position: absolute; | |||
@@ -541,67 +541,67 @@ table th .select2-container--default .select2-selection--single { | |||
font-size: 1.2rem; | |||
} | |||
/* line 178, ../../sass/backend/custom.scss */ | |||
/* line 171, ../../sass/backend/custom.scss */ | |||
.nav-item.has-invalid .btn .invalid-form { | |||
display: inline-block; | |||
z-index: 2; | |||
} | |||
/* ProductFamily */ | |||
/* line 183, ../../sass/backend/custom.scss */ | |||
/* line 176, ../../sass/backend/custom.scss */ | |||
.field-unit-quantity { | |||
border-bottom: 2px dotted #eee; | |||
padding-bottom: 10px; | |||
margin-bottom: 20px; | |||
} | |||
/* line 184, ../../sass/backend/custom.scss */ | |||
/* line 177, ../../sass/backend/custom.scss */ | |||
.field-reduction-apply { | |||
border-top: 2px dotted #eee; | |||
padding-top: 10px; | |||
margin-top: 20px; | |||
} | |||
/* line 186, ../../sass/backend/custom.scss */ | |||
/* line 179, ../../sass/backend/custom.scss */ | |||
.new-productfamily #nav-params, | |||
.edit-productfamily #nav-params { | |||
margin-bottom: 30px; | |||
} | |||
/* line 191, ../../sass/backend/custom.scss */ | |||
/* line 184, ../../sass/backend/custom.scss */ | |||
.new-productfamily #nav-params .btn, | |||
.edit-productfamily #nav-params .btn { | |||
margin-left: 20px; | |||
} | |||
/* line 196, ../../sass/backend/custom.scss */ | |||
/* line 189, ../../sass/backend/custom.scss */ | |||
.new-productfamily #product-categories .row, | |||
.edit-productfamily #product-categories .row { | |||
padding: 10px; | |||
} | |||
/* line 201, ../../sass/backend/custom.scss */ | |||
/* line 194, ../../sass/backend/custom.scss */ | |||
.new-productfamily #product-categories .form-group, | |||
.edit-productfamily #product-categories .form-group { | |||
width: 100%; | |||
padding: 4px; | |||
} | |||
/* line 207, ../../sass/backend/custom.scss */ | |||
/* line 200, ../../sass/backend/custom.scss */ | |||
.new-productfamily #product-categories .children, | |||
.edit-productfamily #product-categories .children { | |||
margin-left: 20px; | |||
width: 100%; | |||
} | |||
/* line 213, ../../sass/backend/custom.scss */ | |||
/* line 206, ../../sass/backend/custom.scss */ | |||
.new-productfamily ul.products, | |||
.edit-productfamily ul.products { | |||
padding: 0px; | |||
list-style-type: none; | |||
} | |||
/* line 219, ../../sass/backend/custom.scss */ | |||
/* line 212, ../../sass/backend/custom.scss */ | |||
.new-productfamily ul.products li.product, | |||
.edit-productfamily ul.products li.product { | |||
padding: 0px; | |||
@@ -609,55 +609,81 @@ table th .select2-container--default .select2-selection--single { | |||
position: relative; | |||
} | |||
/* line 226, ../../sass/backend/custom.scss */ | |||
/* line 219, ../../sass/backend/custom.scss */ | |||
.new-productfamily ul.products li.add, | |||
.edit-productfamily ul.products li.add { | |||
text-align: right; | |||
} | |||
/* line 231, ../../sass/backend/custom.scss */ | |||
/* line 224, ../../sass/backend/custom.scss */ | |||
.autoresize textarea { | |||
height: auto; | |||
min-height: 38px; | |||
} | |||
/* line 233, ../../sass/backend/custom.scss */ | |||
/* line 226, ../../sass/backend/custom.scss */ | |||
.field-price .input-group.buyingPrice input, .field-price .input-group.buyingPrice .input-group-text { | |||
font-weight: bold; | |||
border-color: #222; | |||
} | |||
/* line 234, ../../sass/backend/custom.scss */ | |||
/* line 227, ../../sass/backend/custom.scss */ | |||
.field-price .input-group.buyingPriceByRefUnit input, .field-price .input-group.buyingPriceByRefUnit .input-group-text { | |||
font-weight: bold; | |||
border-color: #222; | |||
} | |||
/* line 235, ../../sass/backend/custom.scss */ | |||
/* line 228, ../../sass/backend/custom.scss */ | |||
.field-price .input-group.priceWithTax input, .field-price .input-group.priceWithTax .input-group-text { | |||
font-weight: bold; | |||
border-color: #222; | |||
} | |||
/* line 236, ../../sass/backend/custom.scss */ | |||
/* line 229, ../../sass/backend/custom.scss */ | |||
.field-price .input-group.priceByRefUnitWithTax input, .field-price .input-group.priceByRefUnitWithTax .input-group-text { | |||
font-weight: bold; | |||
border-color: #222; | |||
} | |||
/* line 237, ../../sass/backend/custom.scss */ | |||
/* line 230, ../../sass/backend/custom.scss */ | |||
.input-group.multiplyingFactor input, .input-group.multiplyingFactor .input-group-text { | |||
font-weight: bold; | |||
border-color: #222; | |||
} | |||
/* line 234, ../../sass/backend/custom.scss */ | |||
.layout-ajax #edit-productfamily-form .card-sections { | |||
width: 100%; | |||
position: fixed; | |||
left: 0px; | |||
top: 0px; | |||
z-index: 10; | |||
} | |||
/* line 242, ../../sass/backend/custom.scss */ | |||
.layout-ajax #edit-productfamily-form .form { | |||
padding-top: 50px; | |||
} | |||
/* line 246, ../../sass/backend/custom.scss */ | |||
.layout-ajax #edit-productfamily-form .card-footer { | |||
display: none; | |||
} | |||
/* line 251, ../../sass/backend/custom.scss */ | |||
.layout-ajax #edit-productfamily-form .in-advanced-editing-table .form { | |||
padding-top: 0px; | |||
} | |||
/* line 254, ../../sass/backend/custom.scss */ | |||
.layout-ajax #edit-productfamily-form .in-advanced-editing-table .card-sections, | |||
.layout-ajax #edit-productfamily-form .in-advanced-editing-table .row-note { | |||
display: none; | |||
} | |||
/* ORDER */ | |||
/* line 243, ../../sass/backend/custom.scss */ | |||
/* line 236, ../../sass/backend/custom.scss */ | |||
.table-order-summary { | |||
width: 100%; | |||
} | |||
/* line 246, ../../sass/backend/custom.scss */ | |||
/* line 239, ../../sass/backend/custom.scss */ | |||
.order-product-item.redelivery { | |||
background: rgba(18, 104, 253, 0.38) !important; | |||
} | |||
@@ -665,36 +691,36 @@ table th .select2-container--default .select2-selection--single { | |||
/*.select2-container--bootstrap .select2-selection{max-width: none;}*/ | |||
/*.order-product-item{margin: 15px 0; padding: 0;}*/ | |||
/* Product */ | |||
/* line 251, ../../sass/backend/custom.scss */ | |||
/* line 244, ../../sass/backend/custom.scss */ | |||
.product-form-modal { | |||
display: none; | |||
} | |||
/* line 252, ../../sass/backend/custom.scss */ | |||
/* line 245, ../../sass/backend/custom.scss */ | |||
.product-form.modal .form-check-label { | |||
font-style: italic; | |||
color: #666; | |||
text-align: left; | |||
} | |||
/* line 253, ../../sass/backend/custom.scss */ | |||
/* line 246, ../../sass/backend/custom.scss */ | |||
.products-collection-table .inherited { | |||
color: #888; | |||
font-style: italic; | |||
font-weight: initial; | |||
} | |||
/* line 254, ../../sass/backend/custom.scss */ | |||
/* line 247, ../../sass/backend/custom.scss */ | |||
.products-collection-table td { | |||
position: relative; | |||
} | |||
/* line 255, ../../sass/backend/custom.scss */ | |||
/* line 248, ../../sass/backend/custom.scss */ | |||
.card-body.p-0 .products-collection-table tbody > tr > td:first-of-type, .card-body.p-0 .products-collection-table tbody > tr > th:first-of-type, .card-body.p-0 .products-collection-table thead > tr > td:first-of-type, .card-body.p-0 .products-collection-table thead > tr > th:first-of-type { | |||
padding-left: 0.35rem; | |||
} | |||
/* line 256, ../../sass/backend/custom.scss */ | |||
/* line 249, ../../sass/backend/custom.scss */ | |||
.products-collection-table .btn-empty-field { | |||
position: absolute; | |||
right: 3px; | |||
@@ -703,14 +729,14 @@ table th .select2-container--default .select2-selection--single { | |||
padding: 0px; | |||
} | |||
/* line 257, ../../sass/backend/custom.scss */ | |||
/* line 250, ../../sass/backend/custom.scss */ | |||
#lc-product-family-edit .products-collection-table { | |||
table-layout: fixed; | |||
/* background-clip: padding-box;*/ | |||
border-collapse: collapse; | |||
} | |||
/* line 258, ../../sass/backend/custom.scss */ | |||
/* line 251, ../../sass/backend/custom.scss */ | |||
#lc-product-family-edit .products-collection-table th { | |||
font-size: 13px; | |||
border-left: 1px solid #dee2e6; | |||
@@ -720,22 +746,22 @@ table th .select2-container--default .select2-selection--single { | |||
position: relative; | |||
} | |||
/* line 259, ../../sass/backend/custom.scss */ | |||
/* line 252, ../../sass/backend/custom.scss */ | |||
#lc-product-family-edit .products-collection-table tfoot th { | |||
border-top: 2px solid #dee2e6; | |||
} | |||
/* line 260, ../../sass/backend/custom.scss */ | |||
/* line 253, ../../sass/backend/custom.scss */ | |||
#lc-product-family-edit .products-collection-table th span { | |||
white-space: initial; | |||
} | |||
/* line 261, ../../sass/backend/custom.scss */ | |||
/* line 254, ../../sass/backend/custom.scss */ | |||
#lc-product-family-edit .products-collection-table th:last-child { | |||
border-right: 1px solid #dee2e6; | |||
} | |||
/* line 262, ../../sass/backend/custom.scss */ | |||
/* line 255, ../../sass/backend/custom.scss */ | |||
#lc-product-family-edit .products-collection-table td { | |||
border-left: 1px solid #dee2e6; | |||
text-align: center; | |||
@@ -743,26 +769,26 @@ table th .select2-container--default .select2-selection--single { | |||
border-bottom: 1px solid #dee2e6; | |||
} | |||
/* line 263, ../../sass/backend/custom.scss */ | |||
/* line 256, ../../sass/backend/custom.scss */ | |||
#lc-product-family-edit .products-collection-table td:last-child { | |||
border-right: 1px solid #dee2e6; | |||
white-space: nowrap; | |||
} | |||
/* line 264, ../../sass/backend/custom.scss */ | |||
/* line 257, ../../sass/backend/custom.scss */ | |||
#lc-product-family-edit .btn-add-product { | |||
margin: 20px 0; | |||
float: right; | |||
} | |||
/* line 265, ../../sass/backend/custom.scss */ | |||
/* line 258, ../../sass/backend/custom.scss */ | |||
#lc-product-family-edit .inherited { | |||
color: #888; | |||
font-style: italic; | |||
font-weight: initial; | |||
} | |||
/* line 266, ../../sass/backend/custom.scss */ | |||
/* line 259, ../../sass/backend/custom.scss */ | |||
#lc-product-family-edit .products-collection-table td .value { | |||
min-width: 80%; | |||
margin: auto; | |||
@@ -770,79 +796,79 @@ table th .select2-container--default .select2-selection--single { | |||
cursor: pointer; | |||
} | |||
/* line 267, ../../sass/backend/custom.scss */ | |||
/* line 260, ../../sass/backend/custom.scss */ | |||
#lc-product-family-edit .products-collection-table td .modal { | |||
text-align: left; | |||
} | |||
/* line 268, ../../sass/backend/custom.scss */ | |||
/* line 261, ../../sass/backend/custom.scss */ | |||
table.products-collection-table th.main-info, td.buyingPrice, td.multiplyingFactor, td.priceWithTax { | |||
background: #eeeeee; | |||
background-clip: padding-box; | |||
text-decoration: underline; | |||
} | |||
/* line 270, ../../sass/backend/custom.scss */ | |||
/* line 263, ../../sass/backend/custom.scss */ | |||
table.products-collection-table tr.disabled { | |||
opacity: 0.5; | |||
} | |||
/* line 271, ../../sass/backend/custom.scss */ | |||
/* line 264, ../../sass/backend/custom.scss */ | |||
.table-striped tbody .tr-sep { | |||
border-top: 2px solid #888; | |||
} | |||
/* DeliveryZone */ | |||
/* line 275, ../../sass/backend/custom.scss */ | |||
/* line 268, ../../sass/backend/custom.scss */ | |||
#autocomplete-cities { | |||
position: relative; | |||
} | |||
/* line 279, ../../sass/backend/custom.scss */ | |||
/* line 272, ../../sass/backend/custom.scss */ | |||
#autocomplete-cities .ui-autocomplete { | |||
left: 30%; | |||
top: 41px; | |||
margin-left: 18px; | |||
} | |||
/* line 285, ../../sass/backend/custom.scss */ | |||
/* line 278, ../../sass/backend/custom.scss */ | |||
.head-reminders { | |||
margin-top: 15px; | |||
} | |||
/* TABLEAU DE BORD */ | |||
/* line 288, ../../sass/backend/custom.scss */ | |||
/* line 281, ../../sass/backend/custom.scss */ | |||
.todo-list > li { | |||
position: relative; | |||
} | |||
/* line 289, ../../sass/backend/custom.scss */ | |||
/* line 282, ../../sass/backend/custom.scss */ | |||
.todo-list > li .text { | |||
margin-left: 30px; | |||
} | |||
/* line 290, ../../sass/backend/custom.scss */ | |||
/* line 283, ../../sass/backend/custom.scss */ | |||
.todo-list > li .tools { | |||
position: absolute; | |||
top: 4px; | |||
right: 15px; | |||
} | |||
/* line 292, ../../sass/backend/custom.scss */ | |||
/* line 285, ../../sass/backend/custom.scss */ | |||
#addTicketMessageForm { | |||
margin-top: 30px; | |||
border-top: 2px dotted #eee; | |||
padding-top: 30px; | |||
} | |||
/* line 294, ../../sass/backend/custom.scss */ | |||
/* line 287, ../../sass/backend/custom.scss */ | |||
#dashboard .list-btn-statistic { | |||
display: flex; | |||
flex-wrap: wrap; | |||
justify-content: center; | |||
} | |||
/* line 295, ../../sass/backend/custom.scss */ | |||
/* line 288, ../../sass/backend/custom.scss */ | |||
#dashboard .btn-statistic { | |||
width: 120px; | |||
height: 70px; | |||
@@ -851,41 +877,41 @@ table.products-collection-table tr.disabled { | |||
line-height: 1rem; | |||
} | |||
/* line 296, ../../sass/backend/custom.scss */ | |||
/* line 289, ../../sass/backend/custom.scss */ | |||
#dashboard .btn-statistic small { | |||
margin-bottom: 10px; | |||
display: block; | |||
} | |||
/* line 297, ../../sass/backend/custom.scss */ | |||
/* line 290, ../../sass/backend/custom.scss */ | |||
#dashboard .btn-statistic .value { | |||
display: block; | |||
} | |||
/* line 299, ../../sass/backend/custom.scss */ | |||
/* line 292, ../../sass/backend/custom.scss */ | |||
#dashboard #range_date_interval { | |||
margin-bottom: 20px; | |||
} | |||
/* line 300, ../../sass/backend/custom.scss */ | |||
/* line 293, ../../sass/backend/custom.scss */ | |||
#dashboard #range_date_interval label { | |||
float: left; | |||
margin-right: 20px; | |||
} | |||
/* line 301, ../../sass/backend/custom.scss */ | |||
/* line 294, ../../sass/backend/custom.scss */ | |||
#dashboard #range_date_interval .form-check { | |||
float: left; | |||
margin-right: 10px; | |||
} | |||
/* line 302, ../../sass/backend/custom.scss */ | |||
/* line 295, ../../sass/backend/custom.scss */ | |||
#dashboard .table-condensed .btn, #dashboard .table-condensed .btn-sm { | |||
white-space: nowrap; | |||
} | |||
/* Tickets */ | |||
/* line 308, ../../sass/backend/custom.scss */ | |||
/* line 301, ../../sass/backend/custom.scss */ | |||
#ticket-list .btn-sm { | |||
display: block; | |||
} |
@@ -1,6 +1,8 @@ | |||
// Reference array sent to dynamic staticRenderFns | |||
var staticRenderFns = []; | |||
$(window).on('load', function () { | |||
/*var appProductFamily ; | |||
lcInitProductFamily() ;*/ | |||
Vue.component('product-unit-price', { | |||
mixins: [mixinUnit, mixinPrice, mixinTemplate], | |||
@@ -331,7 +333,6 @@ $(window).on('load', function () { | |||
watch: {} | |||
}); | |||
appProductFamily = new Vue({ | |||
el: '#lc-product-family-edit', | |||
mixins: [mixinReduction], | |||
@@ -625,5 +626,8 @@ $(window).on('load', function () { | |||
for (var key in formProductTemplate) { | |||
appProductFamily.formProducts[key] = formProductTemplate[key]; | |||
} | |||
}); | |||
function lcInitProductFamily() { | |||
} |
@@ -236,7 +236,35 @@ table th .select2-container--default .select2-selection--single{padding:0.3rem 0 | |||
.field-price .input-group.priceByRefUnitWithTax input,.field-price .input-group.priceByRefUnitWithTax .input-group-text{font-weight: bold; border-color: #222 } | |||
.input-group.multiplyingFactor input,.input-group.multiplyingFactor .input-group-text{font-weight: bold; border-color: #222 } | |||
.layout-ajax { | |||
#edit-productfamily-form { | |||
.card-sections { | |||
width: 100%; | |||
position: fixed; | |||
left: 0px; | |||
top: 0px; | |||
z-index: 10; | |||
} | |||
.form { | |||
padding-top: 50px; | |||
} | |||
.card-footer { | |||
display: none; | |||
} | |||
.in-advanced-editing-table { | |||
.form { | |||
padding-top: 0px ; | |||
} | |||
.card-sections, | |||
.row-note { | |||
display: none; | |||
} | |||
} | |||
} | |||
} | |||
/* ORDER */ | |||
@@ -4,24 +4,33 @@ | |||
{% if action.group is defined and action.group==true %} | |||
{% set dropdownAction = dropdownAction|merge({(loop.index0): action}) %} | |||
{% else %} | |||
{% set display_button = true %} | |||
{% if 'list' == action.name %} | |||
{% set action_href = request_parameters.referer|default('') ? request_parameters.referer|easyadmin_urldecode : path('easyadmin', request_parameters|merge({ action: 'list' })) %} | |||
{% elseif 'method' == action.type %} | |||
{% set action_href = path('easyadmin', request_parameters|merge({ action: action.name, id: item_id })) %} | |||
{% elseif 'route' == action.type %} | |||
{% set action_href = path(action.name, request_parameters|merge({ action: action.name, id: item_id })) %} | |||
{% elseif 'productfamily_advanced_editing' == action.type %} | |||
{% set action_href = path('easyadmin', request_parameters|merge({ action: action.action, id: item_id })) %} | |||
{% if action.name == 'products' and not item.activeProducts %} | |||
{% set display_button = false %} | |||
{% endif %} | |||
{% endif %} | |||
{{ include(action.template, { | |||
action: action, | |||
action_href: action_href, | |||
is_dropdown: is_dropdown|default(false), | |||
item: item, | |||
item_id: item_id, | |||
request_parameters: request_parameters, | |||
translation_domain: translation_domain, | |||
trans_parameters: trans_parameters, | |||
}, with_context = false) }} | |||
{% if display_button %} | |||
{{ include(action.template, { | |||
action: action, | |||
action_href: action_href, | |||
is_dropdown: is_dropdown|default(false), | |||
item: item, | |||
item_id: item_id, | |||
request_parameters: request_parameters, | |||
translation_domain: translation_domain, | |||
trans_parameters: trans_parameters, | |||
}, with_context = false) }} | |||
{% endif %} | |||
{% endif %} | |||
{% endfor %} | |||
{% if dropdownAction|length > 0 %} |
@@ -0,0 +1,34 @@ | |||
{% form_theme form with easyadmin_config('design.form_theme') only %} | |||
{% set _entity_config = easyadmin_entity(app.request.query.get('entity')) %} | |||
{% set _entity_id = attribute(entity, _entity_config.primary_key_field_name) %} | |||
{% trans_default_domain _entity_config.translation_domain %} | |||
{% set _trans_parameters = { '%entity_name%': _entity_config.name|trans, '%entity_label%': _entity_config.label|trans, '%entity_id%': _entity_id } %} | |||
{% extends '@LcShop/backend/default/layout/layout-ajax.html.twig' %} | |||
{% block ajax %} | |||
{% block entity_form %} | |||
{{ form(form) }} | |||
{% endblock entity_form %} | |||
{% block head_stylesheets %} | |||
{{ parent() }} | |||
<link rel="stylesheet" | |||
href="{{ asset('bundles/lcshop/css/backend/adminlte/plugins/jquery-ui/jquery-ui.min.css') }}"> | |||
{% endblock %} | |||
{% block plugin_javascript %} | |||
{{ parent() }} | |||
<script src="{{ asset('bundles/lcshop/js/backend/plugin/jquery-ui/jquery-ui.min.js') }}"></script> | |||
<script type="text/javascript"> | |||
var CKEDITOR_BASEPATH = "{{ ckeditor_base_path("/bundles/fosckeditor/") }}"; | |||
</script> | |||
<script type="text/javascript" src="{{ asset('bundles/fosckeditor/ckeditor.js') }}"></script> | |||
{% endblock %} | |||
{% block script_javascript %} | |||
<script src="{{ asset('bundles/lcshop/js/backend/script/default/init-edit.js') }}"></script> | |||
{% endblock %} | |||
{% endblock %} |
@@ -1,14 +1,9 @@ | |||
{% trans_default_domain 'EasyAdminBundle' %} | |||
<div class="custom-control custom-switch custom-switch-on-success custom-switch-off-danger" data-propertyname="{{ field_options.property }}"> | |||
<input type="checkbox" class="custom-control-input" id="customSwitch{{ item.id }}-{{ field_options.property }}" {{ value == true ? 'checked' }}> | |||
<label class="custom-control-label" for="customSwitch{{ item.id }}-{{ field_options.property }}">{{ field_options.label }}</label> | |||
</div> | |||
{# | |||
{% block toggle %} | |||
<div class="custom-control custom-switch custom-switch-on-success custom-switch-off-danger" data-propertyname="{{ field_options.property }}"> | |||
<input type="checkbox" class="custom-control-input" id="customSwitch{{ item.id }}-{{ field_options.property }}" {{ value == true ? 'checked' }}> | |||
<label class="custom-control-label" for="customSwitch{{ item.id }}-{{ field_options.property }}">{% block label %}{{ field_options.label }}{% endblock %}</label> | |||
</div> | |||
{% endblock %} | |||
{% if value == true %} | |||
<span class="badge badge-success">{{ 'label.true'|trans }}</span> | |||
{% else %} | |||
<span class="badge badge-danger">{{ 'label.false'|trans }}</span> | |||
{% endif %} | |||
#} |
@@ -1,5 +1,28 @@ | |||
{% trans_default_domain "lcshop" %} | |||
<div class="layout-ajax"> | |||
{% block ajax %} | |||
{% block head_stylesheets %} | |||
<link rel="stylesheet" href="{{ asset('bundles/lcshop/css/backend/adminlte/plugins/fontawesome-free/css/all.min.css') }}"> | |||
<link rel="stylesheet" href="{{ asset('bundles/lcshop/css/backend/adminlte/adminlte.css') }}"> | |||
<link rel="stylesheet" href="{{ asset('bundles/lcshop/css/backend/custom.css') }}"> | |||
{% endblock %} | |||
{% endblock %} | |||
{% block plugin_javascript %} | |||
<!-- jQuery --> | |||
<script src="{{ asset('bundles/lcshop/js/backend/plugin/jquery/jquery.min.js') }}"></script> | |||
<!-- Bootstrap 4 --> | |||
<script src="{{ asset('bundles/lcshop/js/backend/plugin/bootstrap/bootstrap.bundle.min.js') }}"></script> | |||
<script src="{{ asset('bundles/lcshop/js/backend/plugin/toastr/toastr.min.js') }}"></script> | |||
<script src="{{ asset('bundles/lcshop/js/backend/plugin/select2/select2.full.min.js') }}"></script> | |||
<script src="{{ asset('bundles/lcshop/js/backend/plugin/bootstrap/bootstrap-switch.min.js') }}"></script> | |||
<!-- AdminLTE App --> | |||
<script src="{{ asset('bundles/lcshop/js/backend/plugin/adminlte.min.js') }}"></script> | |||
<script src="{{ asset('bundles/lcshop/js/backend/script/default/utils.js') }}"></script> | |||
{% endblock plugin_javascript %} | |||
{% block script_javascript %} | |||
<script src="{{ asset('bundles/lcshop/js/backend/script/default/init-common.js') }}"></script> | |||
{% endblock script_javascript %} | |||
{% endblock %} | |||
</div> |
@@ -87,12 +87,11 @@ | |||
{% set _fields_visible_by_user = fields|filter((metadata, field) => easyadmin_is_granted(metadata.permission)) %} | |||
{% set _number_of_hidden_results = 0 %} | |||
{% set _list_item_actions = easyadmin_get_actions_for_list_item(_entity_config.name) %} | |||
<div class="row"> | |||
<div class="row" id="{% block list_id %}{% endblock %}"> | |||
<div class="col-12"> | |||
<div class="card card-outline card-primary"> | |||
<div class="card-header"> | |||
{% block card_header %} | |||
<h2 class="card-title text-lg "> | |||
<div class="btn-group"> | |||
{% set itemsPerPage = [10,20,30,50,100,200] %} | |||
@@ -314,8 +313,7 @@ | |||
{% else %} | |||
{# the empty string concatenation is needed when the primary key is an object (e.g. an Uuid object) #} | |||
{% set _item_id = '' ~ attribute(item, _entity_config.primary_key_field_name) %} | |||
<tr data-id="{{ _item_id }}"> | |||
<tr id="tr-entity-id-{{ _item_id }}" data-id="{{ _item_id }}"> | |||
{% if _has_batch_actions %} | |||
<td><input type="checkbox" class="form-batch-checkbox" | |||
value="{{ _item_id }}"></td> | |||
@@ -327,8 +325,7 @@ | |||
<td class="{{ isSortingField ? 'sorted' }} {{ metadata.dataType|lower }} {{ metadata.css_class }}" {{ easyadmin_config('design.rtl') ? 'dir="rtl"' }}> | |||
{% if (field == 'title' or field== 'id') and (metadata.dataType=="string" or metadata.dataType=="integer") %} | |||
{% if (field == 'title' or field== 'id') and (metadata.dataType=="string" or metadata.dataType=="integer") and _entity_config.name != 'ProductFamilyAdvancedEditing' %} | |||
<a class="link-as-text" | |||
href="{{ path('easyadmin', _request_parameters|merge({ action: 'edit', id: item.id })) }}"> | |||
{{ easyadmin_render_field_for_list_view(_entity_config.name, item, metadata) }} |
@@ -233,12 +233,12 @@ | |||
{% set _translation_domain = easyadmin.entity.translation_domain %} | |||
{% set _trans_parameters = { '%entity_name%': easyadmin.entity.name|trans(domain = _translation_domain), '%entity_label%': easyadmin.entity.label|trans(domain = _translation_domain) } %} | |||
{# the 'save' action is hardcoded for the 'edit' and 'new' views #} | |||
<button type="submit" name="save_and_leave" class="btn btn-primary action-save"> | |||
<span class="btn-label">{{ 'action.save'|trans(_trans_parameters, _translation_domain) }}</span> | |||
</button> | |||
{% if easyadmin.entity.name =='ProductFamily' %} | |||
<button name="submitAndStay" value="1" type="submit" class="btn btn-success action-save"> | |||
<button name="submitAndStay" value="1" type="submit" class="btn btn-success action-save action-save-and-stay"> | |||
<span class="btn-label">{{ 'action.saveAndStay'|trans(_trans_parameters, _translation_domain) }}</span> | |||
</button> | |||
{% endif %} |
@@ -1,4 +1,6 @@ | |||
{% extends app.request.query.get('action') == 'edit' ? '@LcShop/backend/default/edit.html.twig' : '@LcShop/backend/default/new.html.twig' %} | |||
{% extends app.request.query.get('action') == 'edit' | |||
? (app.request.query.get('ajax') == 1 ? '@LcShop/backend/default/edit-ajax.html.twig' : '@LcShop/backend/default/edit.html.twig') | |||
: '@LcShop/backend/default/new.html.twig' %} | |||
{% block entity_form %} | |||
{% include '@LcShop/backend/productfamily/form.html.twig' %} | |||
@@ -20,5 +22,8 @@ | |||
{% block script_javascript %} | |||
{{ parent() }} | |||
{% include '@LcShop/backend/default/block/script-vuejs.html.twig' %} | |||
<script src="{{ asset('bundles/lcshop/js/backend/script/productfamily/vuejs-product-family.js')|lc_cache }}"></script> | |||
<script src="{{ asset('bundles/lcshop/js/backend/script/productfamily/vuejs-product-family.js') }}"></script> | |||
<script> | |||
lcInitProductFamily() ; | |||
</script> | |||
{% endblock %} |
@@ -3,8 +3,8 @@ | |||
{% import '@LcShop/backend/productfamily/macros.html.twig' as product_family_macros %} | |||
{% set formValues = form.vars.value %} | |||
<div id="lc-product-family-edit"> | |||
<div class="card card-light"> | |||
<div id="lc-product-family-edit" class="{% if app.request.query.get('inAdvancedEditingTable') %}in-advanced-editing-table{% endif %}"> | |||
<div class="card card-light card-sections"> | |||
<div class="lc-vue-js-container card-header p-0 border-bottom-0"> | |||
<ul class="nav nav-tabs" id="nav-params"> | |||
<li class="nav-item" v-for="section in sectionsArray"> | |||
@@ -17,7 +17,6 @@ | |||
<span class="glyphicon glyphicon-triangle-bottom"></span> | |||
<i class="fa fa-exclamation-circle invalid-form"></i> | |||
</a> | |||
</li> | |||
</ul> | |||
</div> | |||
@@ -49,6 +48,8 @@ | |||
{% if formValues.activeProducts %}activeProducts: "{{ formValues.activeProducts }}",{% endif %} | |||
{% if formValues.giftVoucherActive %}giftVoucherActive: "{{ formValues.giftVoucherActive }}",{% endif %} | |||
{% if formValues.productsQuantityAsTitle %}productsQuantityAsTitle: {{ formValues.productsQuantityAsTitle }},{% endif %} | |||
{% set current_section = app.request.query.get('currentSection') %} | |||
{% if current_section is defined and current_section|length > 0 %}currentSection: "{{ current_section }}",{% endif %} | |||
{% if form.sections.vars.value %}section: {{ form.sections.vars.value[0] }},{% endif %} | |||
}; | |||
@@ -104,7 +105,7 @@ | |||
</div> | |||
</div> | |||
{% if entity.note|striptags !="" %} | |||
<div class="row"> | |||
<div class="row row-note"> | |||
{{ macros.startCard(12, 'ProductFamily.note', 'light') }} | |||
{{ entity.note|raw }} | |||
{{ macros.endCard() }} | |||
@@ -114,7 +115,6 @@ | |||
</div> | |||
{{ form_widget(form.stayOnPage, {"attr": {"v-model": "stayOnPage"}}) }} | |||
</div> | |||
{{ form_end(form) }} | |||
@@ -23,7 +23,7 @@ | |||
{{ productFamily.unit.unitReference }} | |||
{% endif %} | |||
</strong> | |||
</span> | |||
</span> | |||
<br /> | |||
{% endfor %} | |||
{% endmacro total_order_product_family %} |
@@ -79,19 +79,42 @@ class ProductPriceUtils | |||
public function getBuyingPrice(ProductPropertyInterface $product) | |||
{ | |||
if ($product->getBehaviorPriceInherited() == 'by-piece') { | |||
return $product->getBuyingPriceInherited(); | |||
return $product->getBuyingPriceInherited() ; | |||
} | |||
elseif ($product->getBehaviorPriceInherited() == 'by-reference-unit') { | |||
if ($product->getQuantityInherited() > 0) { | |||
return $product->getBuyingPriceByRefUnitInherited() * ($product->getQuantityInherited() / $product->getUnitInherited()->getCoefficient()); | |||
}else{ | |||
} | |||
else { | |||
return 0; | |||
} | |||
} | |||
} | |||
public function getMultiplyingFactor(ProductPropertyInterface $product){ | |||
public function getBuyingPriceWithTax(ProductPropertyInterface $product) | |||
{ | |||
return $this->applyTax( | |||
$this->getBuyingPrice($product), | |||
$product->getTaxRateInherited()->getValue() | |||
); | |||
} | |||
public function getBuyingPriceByRefUnit(ProductPropertyInterface $product) | |||
{ | |||
return $product->getBuyingPriceByRefUnitInherited() ; | |||
} | |||
public function getBuyingPriceByRefUnitWithTax(ProductPropertyInterface $product) | |||
{ | |||
return $this->applyTax( | |||
$this->getBuyingPriceByRefUnit($product), | |||
$product->getTaxRateInherited()->getValue() | |||
); | |||
} | |||
public function getMultiplyingFactor(ProductPropertyInterface $product) | |||
{ | |||
return $this->round($this->getPriceWithTax($product) / $this->getBuyingPrice($product)); | |||
} | |||
@@ -181,4 +181,19 @@ class ProductFamilyUtils | |||
} | |||
} | |||
public function getMultiplyingFactor($productFamily) | |||
{ | |||
if($productFamily->getBehaviorPrice() == ProductFamily::BEHAVIOR_PRICE_BY_PIECE) { | |||
if($productFamily->getBuyingPrice() > 0) { | |||
return number_format($this->priceUtils->getPriceWithTax($productFamily) / $productFamily->getBuyingPrice(), 3) ; | |||
} | |||
} | |||
elseif($productFamily->getBehaviorPrice() == ProductFamily::BEHAVIOR_PRICE_BY_REFERENCE_UNIT) { | |||
if($productFamily->getBuyingPriceByRefUnit() > 0) { | |||
return number_format($this->priceUtils->getPriceByRefUnitWithTax($productFamily) / $productFamily->getBuyingPriceByRefUnit(), 3) ; | |||
} | |||
} | |||
} | |||
} |