Browse Source

Correctif page produit

feature/export_comptable
Fab 4 years ago
parent
commit
93c96abf76
11 changed files with 109 additions and 75 deletions
  1. +16
    -4
      ShopBundle/Controller/Backend/ProductFamilyController.php
  2. +35
    -24
      ShopBundle/Resources/public/css/backend/custom.css
  3. +6
    -0
      ShopBundle/Resources/public/js/backend/script/default/utils.js
  4. +21
    -21
      ShopBundle/Resources/public/js/backend/script/productfamily/vuejs-product-family.js
  5. +7
    -7
      ShopBundle/Resources/public/sass/backend/custom.scss
  6. +2
    -1
      ShopBundle/Resources/translations/lcshop.fr.yaml
  7. +7
    -8
      ShopBundle/Resources/views/backend/form/custom_bootstrap_4.html.twig
  8. +2
    -0
      ShopBundle/Resources/views/backend/productfamily/form.html.twig
  9. +1
    -1
      ShopBundle/Resources/views/backend/productfamily/macros.html.twig
  10. +3
    -0
      ShopBundle/Resources/views/backend/productfamily/panel_general.html.twig
  11. +9
    -9
      ShopBundle/Resources/views/backend/productfamily/panel_products.html.twig

+ 16
- 4
ShopBundle/Controller/Backend/ProductFamilyController.php View File

use Lc\ShopBundle\Model\ProductFamily; use Lc\ShopBundle\Model\ProductFamily;
use Symfony\Component\Form\Extension\Core\Type\ChoiceType; use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
use Symfony\Component\Form\Extension\Core\Type\CollectionType; use Symfony\Component\Form\Extension\Core\Type\CollectionType;
use Symfony\Component\Form\Extension\Core\Type\HiddenType;
use Symfony\Component\Form\Extension\Core\Type\NumberType; use Symfony\Component\Form\Extension\Core\Type\NumberType;
use Symfony\Component\Form\FormError; use Symfony\Component\Form\FormError;
use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Response;
'data' => $reductionCatalog 'data' => $reductionCatalog
)); ));



$formBuilder->add('stayOnPage', HiddenType::class, array(
'required'=>false,
'mapped'=>false,
));
$formBuilder->add('warningMessageType', ChoiceType::class, array( $formBuilder->add('warningMessageType', ChoiceType::class, array(
'choices' => array( 'choices' => array(
'field.default.warningMessageTypeOptions.' . ProductFamily::WARNING_MESSAGE_TYPE_SUCCESS => ProductFamily::WARNING_MESSAGE_TYPE_SUCCESS, 'field.default.warningMessageTypeOptions.' . ProductFamily::WARNING_MESSAGE_TYPE_SUCCESS => ProductFamily::WARNING_MESSAGE_TYPE_SUCCESS,
$this->dispatch(EasyAdminEvents::POST_UPDATE, ['entity' => $entity]); $this->dispatch(EasyAdminEvents::POST_UPDATE, ['entity' => $entity]);


$this->utils->addFlash('success', 'Produit sauvegardé'); $this->utils->addFlash('success', 'Produit sauvegardé');
return $this->redirectToReferrer();


//return $this->redirectToRoute('easyadmin', ['entity' => 'ProductFamily', 'action' => 'edit', 'id' => $id]) ;
if($editForm->get('stayOnPage')->getData() || $this->request->get('submitAndStay')){
return $this->redirectToRoute('easyadmin', ['entity' => 'ProductFamily', 'action' => 'edit', 'id' => $id]) ;
}else {
return $this->redirectToReferrer();
}

} }


$this->dispatch(EasyAdminEvents::POST_EDIT); $this->dispatch(EasyAdminEvents::POST_EDIT);
$this->executeDynamicMethod('persist<EntityName>Entity', [$entity, $newForm]); $this->executeDynamicMethod('persist<EntityName>Entity', [$entity, $newForm]);
$this->dispatch(EasyAdminEvents::POST_PERSIST, ['entity' => $entity]); $this->dispatch(EasyAdminEvents::POST_PERSIST, ['entity' => $entity]);


return $this->redirectToReferrer();
if($newForm->get('stayOnPage')->getData() || $this->request->get('submitAndStay')){
return $this->redirectToRoute('easyadmin', ['entity' => 'ProductFamily', 'action' => 'edit', 'id' => $entity->getId()]) ;
}else {
return $this->redirectToReferrer();
}
} }


$this->dispatch(EasyAdminEvents::POST_NEW, [ $this->dispatch(EasyAdminEvents::POST_NEW, [

+ 35
- 24
ShopBundle/Resources/public/css/backend/custom.css View File



/* Général */ /* Général */
/* line 125, ../../sass/backend/custom.scss */ /* line 125, ../../sass/backend/custom.scss */
.btn.btn-primary.action-save {
.btn.action-save {
float: right; float: right;
margin-left: 10px;
} }


/* line 126, ../../sass/backend/custom.scss */ /* line 126, ../../sass/backend/custom.scss */
} }


/* ORDER */ /* ORDER */
/* line 225, ../../sass/backend/custom.scss */
/* line 224, ../../sass/backend/custom.scss */
.table-order-summary { .table-order-summary {
width: 100%; width: 100%;
} }


/* line 228, ../../sass/backend/custom.scss */
/* line 227, ../../sass/backend/custom.scss */
.order-product-item.redelivery { .order-product-item.redelivery {
background: rgba(18, 104, 253, 0.38) !important; background: rgba(18, 104, 253, 0.38) !important;
} }
/*.select2-container--bootstrap .select2-selection{max-width: none;}*/ /*.select2-container--bootstrap .select2-selection{max-width: none;}*/
/*.order-product-item{margin: 15px 0; padding: 0;}*/ /*.order-product-item{margin: 15px 0; padding: 0;}*/
/* Product */ /* Product */
/* line 233, ../../sass/backend/custom.scss */
/* line 232, ../../sass/backend/custom.scss */
.product-form-modal { .product-form-modal {
display: none; display: none;
} }


/* line 234, ../../sass/backend/custom.scss */
/* line 233, ../../sass/backend/custom.scss */
.product-form.modal .form-check-label { .product-form.modal .form-check-label {
font-style: italic; font-style: italic;
color: #666; color: #666;
text-align: left; text-align: left;
} }


/* line 235, ../../sass/backend/custom.scss */
/* line 234, ../../sass/backend/custom.scss */
.products-collection-table .inherited { .products-collection-table .inherited {
color: #888; color: #888;
font-style: italic; font-style: italic;
font-weight: initial; font-weight: initial;
} }


/* line 236, ../../sass/backend/custom.scss */
/* line 235, ../../sass/backend/custom.scss */
.products-collection-table td { .products-collection-table td {
position: relative; position: relative;
} }


/* line 237, ../../sass/backend/custom.scss */
/* line 236, ../../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 { .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; padding-left: 0.35rem;
} }


/* line 238, ../../sass/backend/custom.scss */
/* line 237, ../../sass/backend/custom.scss */
.products-collection-table .btn-empty-field { .products-collection-table .btn-empty-field {
position: absolute; position: absolute;
right: 3px; right: 3px;
padding: 0px; padding: 0px;
} }


/* line 239, ../../sass/backend/custom.scss */
/* line 238, ../../sass/backend/custom.scss */
#lc-product-family-edit .products-collection-table { #lc-product-family-edit .products-collection-table {
table-layout: fixed; table-layout: fixed;
/* background-clip: padding-box;*/
border-collapse: collapse;
} }


/* line 240, ../../sass/backend/custom.scss */
#lc-product-family-edit .products-collection-table tr {
border-bottom: 1px solid #dee2e6;
}

/* line 241, ../../sass/backend/custom.scss */
/* line 239, ../../sass/backend/custom.scss */
#lc-product-family-edit .products-collection-table th { #lc-product-family-edit .products-collection-table th {
font-size: 13px; font-size: 13px;
border-left: 1px solid #dee2e6; border-left: 1px solid #dee2e6;
border-top: 1px solid #dee2e6; border-top: 1px solid #dee2e6;
text-align: center; text-align: center;
border-bottom: 2px solid #dee2e6;
} }


/* line 242, ../../sass/backend/custom.scss */
/* line 240, ../../sass/backend/custom.scss */
#lc-product-family-edit .products-collection-table tfoot th {
border-top: 2px solid #dee2e6;
}

/* line 241, ../../sass/backend/custom.scss */
#lc-product-family-edit .products-collection-table th span { #lc-product-family-edit .products-collection-table th span {
white-space: initial; white-space: initial;
} }


/* line 243, ../../sass/backend/custom.scss */
/* line 242, ../../sass/backend/custom.scss */
#lc-product-family-edit .products-collection-table th:last-child { #lc-product-family-edit .products-collection-table th:last-child {
border-right: 1px solid #dee2e6; border-right: 1px solid #dee2e6;
} }


/* line 244, ../../sass/backend/custom.scss */
/* line 243, ../../sass/backend/custom.scss */
#lc-product-family-edit .products-collection-table td { #lc-product-family-edit .products-collection-table td {
border-left: 1px solid #dee2e6; border-left: 1px solid #dee2e6;
text-align: center; text-align: center;
font-size: 13px; font-size: 13px;
border-bottom: 1px solid #dee2e6;
} }


/* line 245, ../../sass/backend/custom.scss */
/* line 244, ../../sass/backend/custom.scss */
#lc-product-family-edit .products-collection-table td:last-child { #lc-product-family-edit .products-collection-table td:last-child {
border-right: 1px solid #dee2e6; border-right: 1px solid #dee2e6;
white-space: nowrap; white-space: nowrap;
} }


/* line 246, ../../sass/backend/custom.scss */
/* line 245, ../../sass/backend/custom.scss */
#lc-product-family-edit .btn-add-product { #lc-product-family-edit .btn-add-product {
margin: 20px 0; margin: 20px 0;
float: right; float: right;
} }


/* line 247, ../../sass/backend/custom.scss */
/* line 246, ../../sass/backend/custom.scss */
#lc-product-family-edit .inherited { #lc-product-family-edit .inherited {
color: #888; color: #888;
font-style: italic; font-style: italic;
font-weight: initial; font-weight: initial;
} }


/* line 248, ../../sass/backend/custom.scss */
/* line 247, ../../sass/backend/custom.scss */
#lc-product-family-edit .products-collection-table td .value { #lc-product-family-edit .products-collection-table td .value {
min-width: 80%; min-width: 80%;
margin: auto; margin: auto;
cursor: pointer; cursor: pointer;
} }


/* line 249, ../../sass/backend/custom.scss */
/* line 248, ../../sass/backend/custom.scss */
#lc-product-family-edit .products-collection-table td .modal { #lc-product-family-edit .products-collection-table td .modal {
text-align: left; text-align: left;
} }


/* line 249, ../../sass/backend/custom.scss */
table.products-collection-table th.main-info, td.buyingPrice, td.multiplyingFactor, td.priceWithTax {
background: #eeeeee;
background-clip: padding-box;
}

/* DeliveryZone */ /* DeliveryZone */
/* line 253, ../../sass/backend/custom.scss */ /* line 253, ../../sass/backend/custom.scss */
#autocomplete-cities { #autocomplete-cities {

+ 6
- 0
ShopBundle/Resources/public/js/backend/script/default/utils.js View File





function arrayRemove(arr, value) { return arr.filter(function(ele){ return ele != value; });} function arrayRemove(arr, value) { return arr.filter(function(ele){ return ele != value; });}

const scratchDiv = document.createElement('div');
function toPlainText(html) {
scratchDiv.innerHTML = html;
return scratchDiv.textContent;
}

+ 21
- 21
ShopBundle/Resources/public/js/backend/script/productfamily/vuejs-product-family.js View File

//INIT VAR //INIT VAR
this.init(); this.init();
this.initKeyboardNav(); this.initKeyboardNav();
this.title = toPlainText(this.title)


//METHOD //METHOD
//this.updateProductForm(); //this.updateProductForm();
//this.updateProductView(); //this.updateProductView();
}, },
methods: { methods: {
decode(str){
var textArea = document.createElement('textarea');
textArea.innerText = str;
return textArea.textContent;
},
titleUpdated: function () { titleUpdated: function () {
}, },
availableQuantityUpdated: function () { availableQuantityUpdated: function () {
deleteProductForm: function () { deleteProductForm: function () {
if (confirm('Êtes-vous sur de cette action ?')) { if (confirm('Êtes-vous sur de cette action ?')) {
Vue.delete(this.$parent.formProducts, this.keyForm); Vue.delete(this.$parent.formProducts, this.keyForm);
this.$parent.updateSortableProducts(false);
this.$parent.reindexProductForm(null);
this.$nextTick(function () {
this.$parent.updateSortableProducts(true);
});
} }


}, },
return Object.assign( return Object.assign(
{ {
isMounted: false, isMounted: false,
stayOnPage: false,
title: null, title: null,
isNovelty: null, isNovelty: null,
isOrganic: null, isOrganic: null,
}, },
mounted: function () { mounted: function () {
this.$nextTick(function () { this.$nextTick(function () {
this.title = toPlainText(this.title)


this.isMounted = true; this.isMounted = true;
$(".vuejs-checkbox-switch input").each(function () { $(".vuejs-checkbox-switch input").each(function () {
setBootstrapSwitch($(this)); setBootstrapSwitch($(this));
newForm = newForm.replace(/__name__/g, Object.keys(this.formProducts).length); newForm = newForm.replace(/__name__/g, Object.keys(this.formProducts).length);
Vue.set(this.formProducts, Object.keys(this.formProducts).length, newForm); Vue.set(this.formProducts, Object.keys(this.formProducts).length, newForm);


log(Object.keys(this.formProducts).length);
this.$nextTick(function () { this.$nextTick(function () {
this.updateSortableProducts(false); this.updateSortableProducts(false);
this.updateKeyboardNav(); this.updateKeyboardNav();
} }
}); });
}, },
reindexProductForm: function (newArray) {
if(newArray==null) {
log('ncichhc');
var newArray = {};
var i = 0;
for (key in this.formProducts) {
newArray[i] = this.formProducts[key];
i++;
}
}
this.formProducts = newArray;
this.updateKeyboardNav();

postForm:function(){
this.stayOnPage = 1;
$("#edit-productfamily-form").submit();
}, },


initLcSortableProductsList: function () { initLcSortableProductsList: function () {
}); });
} }
}, },
updateSortableProducts: function (reindex) {
updateSortableProducts: function (post) {
if ($('.lc-sortable-products').length > 0) { if ($('.lc-sortable-products').length > 0) {
var app=this; var app=this;
var newArray = {}; var newArray = {};

$('.lc-sortable-products tr.lc-draggable').each(function (index, li) { $('.lc-sortable-products tr.lc-draggable').each(function (index, li) {
oldKey = $(li).find('.field-position').val(); oldKey = $(li).find('.field-position').val();
//log('OLD : '+oldKey);
$(li).find('.field-position').val(index); $(li).find('.field-position').val(index);
//log('NEW : '+index);
if(reindex)newArray[index] = app.formProducts[oldKey];
}); });
if(reindex)app.reindexProductForm(newArray);
if(post)this.postForm();
} }
}, },


}); });


var allowLeave = false; var allowLeave = false;
$('#edit-productfamily-form').on('submit', function () {
$('#edit-productfamily-form, #new-productfamily-form').on('submit', function () {
allowLeave = true; allowLeave = true;
}) })
$(window).bind('beforeunload', function (e) { $(window).bind('beforeunload', function (e) {

+ 7
- 7
ShopBundle/Resources/public/sass/backend/custom.scss View File





/* Général */ /* Général */
.btn.btn-primary.action-save{float: right;}
.btn.action-save{float: right; margin-left: 10px;}
.button-action a.float-right{margin-left: 10px;} .button-action a.float-right{margin-left: 10px;}


.input-group-text { .input-group-text {
.autoresize textarea{height: auto; min-height: 38px;} .autoresize textarea{height: auto; min-height: 38px;}





/* ORDER */
/* ORDER */


.table-order-summary{width: 100%;} .table-order-summary{width: 100%;}


.products-collection-table td{position: relative;} .products-collection-table td{position: relative;}
.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;} .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;}
.products-collection-table .btn-empty-field{position: absolute; right: 3px; font-size: 0.7rem; top: 5px; padding: 0px;} .products-collection-table .btn-empty-field{position: absolute; right: 3px; font-size: 0.7rem; top: 5px; padding: 0px;}
#lc-product-family-edit .products-collection-table {table-layout:fixed;}
#lc-product-family-edit .products-collection-table tr{border-bottom: 1px solid #dee2e6;}
#lc-product-family-edit .products-collection-table th{font-size:13px; border-left: 1px solid #dee2e6; border-top: 1px solid #dee2e6; text-align: center;}
#lc-product-family-edit .products-collection-table {table-layout:fixed;/* background-clip: padding-box;*/ border-collapse: collapse;}
#lc-product-family-edit .products-collection-table th{font-size:13px; border-left: 1px solid #dee2e6; border-top: 1px solid #dee2e6; text-align: center; border-bottom: 2px solid #dee2e6;}
#lc-product-family-edit .products-collection-table tfoot th{border-top: 2px solid #dee2e6;}
#lc-product-family-edit .products-collection-table th span {white-space: initial;} #lc-product-family-edit .products-collection-table th span {white-space: initial;}
#lc-product-family-edit .products-collection-table th:last-child{border-right: 1px solid #dee2e6;} #lc-product-family-edit .products-collection-table th:last-child{border-right: 1px solid #dee2e6;}
#lc-product-family-edit .products-collection-table td{border-left: 1px solid #dee2e6; text-align: center; font-size: 13px;}
#lc-product-family-edit .products-collection-table td{border-left: 1px solid #dee2e6; text-align: center; font-size: 13px; border-bottom: 1px solid #dee2e6;}
#lc-product-family-edit .products-collection-table td:last-child{border-right: 1px solid #dee2e6; white-space: nowrap; } #lc-product-family-edit .products-collection-table td:last-child{border-right: 1px solid #dee2e6; white-space: nowrap; }
#lc-product-family-edit .btn-add-product {margin: 20px 0; float: right;} #lc-product-family-edit .btn-add-product {margin: 20px 0; float: right;}
#lc-product-family-edit .inherited {color: #888; font-style: italic; font-weight: initial;} #lc-product-family-edit .inherited {color: #888; font-style: italic; font-weight: initial;}
#lc-product-family-edit .products-collection-table td .value {min-width: 80%; margin: auto; min-height: 35px; cursor: pointer;} #lc-product-family-edit .products-collection-table td .value {min-width: 80%; margin: auto; min-height: 35px; cursor: pointer;}
#lc-product-family-edit .products-collection-table td .modal {text-align: left;} #lc-product-family-edit .products-collection-table td .modal {text-align: left;}
table.products-collection-table th.main-info, td.buyingPrice, td.multiplyingFactor, td.priceWithTax{background: #eeeeee; background-clip: padding-box}


/* DeliveryZone */ /* DeliveryZone */



+ 2
- 1
ShopBundle/Resources/translations/lcshop.fr.yaml View File

choiceFile: Parcourir choiceFile: Parcourir
send: Envoyer send: Envoyer
edit: Éditer edit: Éditer
saveAndStay: Sauvegarder (rester sur la page)
search: Rechercher search: Rechercher
delete: Supprimer delete: Supprimer
change: Modifier change: Modifier
save: Sauvegarder les modifications
save: Sauvegarder (retour liste)
cancel: Annuler cancel: Annuler
continue: Continuer continue: Continuer
list: Retour à la liste list: Retour à la liste

+ 7
- 8
ShopBundle/Resources/views/backend/form/custom_bootstrap_4.html.twig View File

{# TODO à corriger le theme requiert des infos easyAdmin il devrait être possible de ne pas en utiliser #} {# TODO à corriger le theme requiert des infos easyAdmin il devrait être possible de ne pas en utiliser #}












{% block form_widget -%} {% block form_widget -%}
{{ parent() }} {{ parent() }}


<button type="submit" name="save_and_leave" class="btn btn-primary action-save"> <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> <span class="btn-label">{{ 'action.save'|trans(_trans_parameters, _translation_domain) }}</span>
</button> </button>
{% if easyadmin.entity.name =='ProductFamily' %}
<button name="submitAndStay" value="1" type="submit" class="btn btn-success action-save">
<span class="btn-label">{{ 'action.saveAndStay'|trans(_trans_parameters, _translation_domain) }}</span>
</button>
{% endif %}


{% set _entity_actions = (easyadmin.view == 'new') {% set _entity_actions = (easyadmin.view == 'new')
? easyadmin_get_actions_for_new_item(easyadmin.entity.name) ? easyadmin_get_actions_for_new_item(easyadmin.entity.name)
}, with_context = false) }} }, with_context = false) }}
{% endblock item_actions %} {% endblock item_actions %}




{# {#


{% block _user_niche_row %} {% block _user_niche_row %}

+ 2
- 0
ShopBundle/Resources/views/backend/productfamily/form.html.twig View File

{% endif %} {% endif %}


</div> </div>
{{ form_widget(form.stayOnPage, {"attr": {"v-model": "stayOnPage"}}) }}



</div> </div>
{{ form_end(form) }} {{ form_end(form) }}

+ 1
- 1
ShopBundle/Resources/views/backend/productfamily/macros.html.twig View File

<button type="button" class="btn-remove-product btn-sm btn-danger" @click="deleteProductForm()"> <button type="button" class="btn-remove-product btn-sm btn-danger" @click="deleteProductForm()">
<i class="fa fa-trash"></i> <i class="fa fa-trash"></i>
</button> </button>
{{ form_widget(product.position, {'attr' : {'class': "field-position"}}) }}
{{ form_widget(product.position, {'attr' : {'class': "field-position", "v-model" : 'position'}}) }}




<div class="modal fade show" :id="'modal-extends-product-'+keyForm"> <div class="modal fade show" :id="'modal-extends-product-'+keyForm">

+ 3
- 0
ShopBundle/Resources/views/backend/productfamily/panel_general.html.twig View File



<div class="row"> <div class="row">
{{ macros.startCard(8, 'ProductFamily.main','light') }} {{ macros.startCard(8, 'ProductFamily.main','light') }}
<div class="col-12">
{{ form_row(form.status) }}
</div>
<div class="col-12"> <div class="col-12">
{{ form_row(form.supplier) }} {{ form_row(form.supplier) }}
</div> </div>

+ 9
- 9
ShopBundle/Resources/views/backend/productfamily/panel_products.html.twig View File

Unité Unité
</th> </th>
<th v-show="getBehaviorPrice() == '{{ constant('Lc\\ShopBundle\\Model\\ProductFamily::BEHAVIOR_PRICE_BY_REFERENCE_UNIT') }}'" <th v-show="getBehaviorPrice() == '{{ constant('Lc\\ShopBundle\\Model\\ProductFamily::BEHAVIOR_PRICE_BY_REFERENCE_UNIT') }}'"
colspan="3" class="buyingPriceByRefUnit">
colspan="3" class="buyingPriceByRefUnit ">
PA HT / ${ getUnitReference() } PA HT / ${ getUnitReference() }
</th> </th>
<th v-show="getBehaviorPrice() == '{{ constant('Lc\\ShopBundle\\Model\\ProductFamily::BEHAVIOR_PRICE_BY_REFERENCE_UNIT') }}'" <th v-show="getBehaviorPrice() == '{{ constant('Lc\\ShopBundle\\Model\\ProductFamily::BEHAVIOR_PRICE_BY_REFERENCE_UNIT') }}'"
PA TTC / ${ getUnitReference() } PA TTC / ${ getUnitReference() }
</th> </th>


<th colspan="3" class="price">
<th colspan="3" class="price main-info">
PA HT PA HT
</th> </th>
<th colspan="3" class="price" <th colspan="3" class="price"
v-show="getBehaviorPrice() =='{{ constant('Lc\\ShopBundle\\Model\\ProductFamily::BEHAVIOR_PRICE_BY_PIECE') }}'"> v-show="getBehaviorPrice() =='{{ constant('Lc\\ShopBundle\\Model\\ProductFamily::BEHAVIOR_PRICE_BY_PIECE') }}'">
PA TTC PA TTC
</th> </th>
<th colspan="3" class="">
<th colspan="3" class="main-info">
Coef Coef
</th> </th>


v-show="getBehaviorPrice() =='{{ constant('Lc\\ShopBundle\\Model\\ProductFamily::BEHAVIOR_PRICE_BY_PIECE') }}'"> v-show="getBehaviorPrice() =='{{ constant('Lc\\ShopBundle\\Model\\ProductFamily::BEHAVIOR_PRICE_BY_PIECE') }}'">
PV HT PV HT
</th> </th>
<th colspan="3" class="price">
<th colspan="3" class="price main-info">
PV TTC PV TTC
</th> </th>
<th colspan="2"> <th colspan="2">
<tbody class="products-collection"> <tbody class="products-collection">


<template> <template>
<product-form v-for="(formProduct, blop) in formProducts" v-bind:key="blop"
:key-form="blop" ref="productForm" v-bind:product-family="productFamily"
<product-form v-for="(formProduct, name, index) in formProducts" v-bind:key="name"
:key-form="name" ref="productForm" v-bind:product-family="productFamily"
:template="formProduct"></product-form> :template="formProduct"></product-form>
</template> </template>
</tbody> </tbody>
${productFamily.buyingPriceByRefUnitWithTax} ${productFamily.buyingPriceByRefUnitWithTax}
</th> </th>


<th colspan="3" class="price">
<th colspan="3" class="price main-info">
${productFamily.buyingPrice} ${productFamily.buyingPrice}
</th> </th>
<th colspan="3" class="price" <th colspan="3" class="price"
v-show="getBehaviorPrice() =='{{ constant('Lc\\ShopBundle\\Model\\ProductFamily::BEHAVIOR_PRICE_BY_PIECE') }}'"> v-show="getBehaviorPrice() =='{{ constant('Lc\\ShopBundle\\Model\\ProductFamily::BEHAVIOR_PRICE_BY_PIECE') }}'">
${productFamily.buyingPriceWithTax} ${productFamily.buyingPriceWithTax}
</th> </th>
<th colspan="3" class="">
<th colspan="3" class="main-info">
${productFamily.multiplyingFactor} ${productFamily.multiplyingFactor}
</th> </th>


v-show="getBehaviorPrice() =='{{ constant('Lc\\ShopBundle\\Model\\ProductFamily::BEHAVIOR_PRICE_BY_PIECE') }}'"> v-show="getBehaviorPrice() =='{{ constant('Lc\\ShopBundle\\Model\\ProductFamily::BEHAVIOR_PRICE_BY_PIECE') }}'">
${productFamily.price} ${productFamily.price}
</th> </th>
<th colspan="3" class="price">
<th colspan="3" class="price main-info">
${productFamily.priceWithTax} ${productFamily.priceWithTax}
</th> </th>
<th colspan="2" class="price"> <th colspan="2" class="price">

Loading…
Cancel
Save