Quellcode durchsuchen

[Backend] Produits : tableau d'édition avancée

feature/tableau_edition_avancee
Guillaume vor 3 Jahren
Ursprung
Commit
bdd27ad2c2
6 geänderte Dateien mit 82 neuen und 50 gelöschten Zeilen
  1. +47
    -38
      ShopBundle/Resources/public/css/backend/custom.css
  2. +16
    -6
      ShopBundle/Resources/public/sass/backend/custom.scss
  3. +1
    -0
      ShopBundle/Resources/views/backend/default/layout/layout-ajax.html.twig
  4. +2
    -3
      ShopBundle/Resources/views/backend/productfamily/form.html.twig
  5. +1
    -1
      ShopBundle/Resources/views/backend/productfamily/macros.html.twig
  6. +15
    -2
      ShopBundle/Services/Price/ProductPriceUtils.php

+ 47
- 38
ShopBundle/Resources/public/css/backend/custom.css Datei anzeigen

.layout-ajax #edit-productfamily-form .card-footer { .layout-ajax #edit-productfamily-form .card-footer {
display: none; 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 */ /* ORDER */
/* line 254, ../../sass/backend/custom.scss */
/* line 264, ../../sass/backend/custom.scss */
.table-order-summary { .table-order-summary {
width: 100%; width: 100%;
} }


/* line 257, ../../sass/backend/custom.scss */
/* line 267, ../../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 262, ../../sass/backend/custom.scss */
/* line 272, ../../sass/backend/custom.scss */
.product-form-modal { .product-form-modal {
display: none; display: none;
} }


/* line 263, ../../sass/backend/custom.scss */
/* line 273, ../../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 264, ../../sass/backend/custom.scss */
/* line 274, ../../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 265, ../../sass/backend/custom.scss */
/* line 275, ../../sass/backend/custom.scss */
.products-collection-table td { .products-collection-table td {
position: relative; position: relative;
} }


/* line 266, ../../sass/backend/custom.scss */
/* line 276, ../../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 267, ../../sass/backend/custom.scss */
/* line 277, ../../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 268, ../../sass/backend/custom.scss */
/* line 278, ../../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;*/ /* background-clip: padding-box;*/
border-collapse: collapse; border-collapse: collapse;
} }


/* line 269, ../../sass/backend/custom.scss */
/* line 279, ../../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;
position: relative; position: relative;
} }


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


/* line 271, ../../sass/backend/custom.scss */
/* line 281, ../../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 272, ../../sass/backend/custom.scss */
/* line 282, ../../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 273, ../../sass/backend/custom.scss */
/* line 283, ../../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;
border-bottom: 1px solid #dee2e6; border-bottom: 1px solid #dee2e6;
} }


/* line 274, ../../sass/backend/custom.scss */
/* line 284, ../../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 275, ../../sass/backend/custom.scss */
/* line 285, ../../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 276, ../../sass/backend/custom.scss */
/* line 286, ../../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 277, ../../sass/backend/custom.scss */
/* line 287, ../../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 278, ../../sass/backend/custom.scss */
/* line 288, ../../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 279, ../../sass/backend/custom.scss */
/* line 289, ../../sass/backend/custom.scss */
table.products-collection-table th.main-info, td.buyingPrice, td.multiplyingFactor, td.priceWithTax { table.products-collection-table th.main-info, td.buyingPrice, td.multiplyingFactor, td.priceWithTax {
background: #eeeeee; background: #eeeeee;
background-clip: padding-box; background-clip: padding-box;
text-decoration: underline; text-decoration: underline;
} }


/* line 281, ../../sass/backend/custom.scss */
/* line 291, ../../sass/backend/custom.scss */
table.products-collection-table tr.disabled { table.products-collection-table tr.disabled {
opacity: 0.5; opacity: 0.5;
} }


/* line 282, ../../sass/backend/custom.scss */
/* line 292, ../../sass/backend/custom.scss */
.table-striped tbody .tr-sep { .table-striped tbody .tr-sep {
border-top: 2px solid #888; border-top: 2px solid #888;
} }


/* DeliveryZone */ /* DeliveryZone */
/* line 286, ../../sass/backend/custom.scss */
/* line 296, ../../sass/backend/custom.scss */
#autocomplete-cities { #autocomplete-cities {
position: relative; position: relative;
} }


/* line 290, ../../sass/backend/custom.scss */
/* line 300, ../../sass/backend/custom.scss */
#autocomplete-cities .ui-autocomplete { #autocomplete-cities .ui-autocomplete {
left: 30%; left: 30%;
top: 41px; top: 41px;
margin-left: 18px; margin-left: 18px;
} }


/* line 296, ../../sass/backend/custom.scss */
/* line 306, ../../sass/backend/custom.scss */
.head-reminders { .head-reminders {
margin-top: 15px; margin-top: 15px;
} }


/* TABLEAU DE BORD */ /* TABLEAU DE BORD */
/* line 299, ../../sass/backend/custom.scss */
/* line 309, ../../sass/backend/custom.scss */
.todo-list > li { .todo-list > li {
position: relative; position: relative;
} }


/* line 300, ../../sass/backend/custom.scss */
/* line 310, ../../sass/backend/custom.scss */
.todo-list > li .text { .todo-list > li .text {
margin-left: 30px; margin-left: 30px;
} }


/* line 301, ../../sass/backend/custom.scss */
/* line 311, ../../sass/backend/custom.scss */
.todo-list > li .tools { .todo-list > li .tools {
position: absolute; position: absolute;
top: 4px; top: 4px;
right: 15px; right: 15px;
} }


/* line 303, ../../sass/backend/custom.scss */
/* line 313, ../../sass/backend/custom.scss */
#addTicketMessageForm { #addTicketMessageForm {
margin-top: 30px; margin-top: 30px;
border-top: 2px dotted #eee; border-top: 2px dotted #eee;
padding-top: 30px; padding-top: 30px;
} }


/* line 305, ../../sass/backend/custom.scss */
/* line 315, ../../sass/backend/custom.scss */
#dashboard .list-btn-statistic { #dashboard .list-btn-statistic {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: center; justify-content: center;
} }


/* line 306, ../../sass/backend/custom.scss */
/* line 316, ../../sass/backend/custom.scss */
#dashboard .btn-statistic { #dashboard .btn-statistic {
width: 120px; width: 120px;
height: 70px; height: 70px;
line-height: 1rem; line-height: 1rem;
} }


/* line 307, ../../sass/backend/custom.scss */
/* line 317, ../../sass/backend/custom.scss */
#dashboard .btn-statistic small { #dashboard .btn-statistic small {
margin-bottom: 10px; margin-bottom: 10px;
display: block; display: block;
} }


/* line 308, ../../sass/backend/custom.scss */
/* line 318, ../../sass/backend/custom.scss */
#dashboard .btn-statistic .value { #dashboard .btn-statistic .value {
display: block; display: block;
} }


/* line 310, ../../sass/backend/custom.scss */
/* line 320, ../../sass/backend/custom.scss */
#dashboard #range_date_interval { #dashboard #range_date_interval {
margin-bottom: 20px; margin-bottom: 20px;
} }


/* line 311, ../../sass/backend/custom.scss */
/* line 321, ../../sass/backend/custom.scss */
#dashboard #range_date_interval label { #dashboard #range_date_interval label {
float: left; float: left;
margin-right: 20px; margin-right: 20px;
} }


/* line 312, ../../sass/backend/custom.scss */
/* line 322, ../../sass/backend/custom.scss */
#dashboard #range_date_interval .form-check { #dashboard #range_date_interval .form-check {
float: left; float: left;
margin-right: 10px; margin-right: 10px;
} }


/* line 313, ../../sass/backend/custom.scss */
/* line 323, ../../sass/backend/custom.scss */
#dashboard .table-condensed .btn, #dashboard .table-condensed .btn-sm { #dashboard .table-condensed .btn, #dashboard .table-condensed .btn-sm {
white-space: nowrap; white-space: nowrap;
} }


/* Tickets */ /* Tickets */
/* line 319, ../../sass/backend/custom.scss */
/* line 329, ../../sass/backend/custom.scss */
#ticket-list .btn-sm { #ticket-list .btn-sm {
display: block; display: block;
} }

+ 16
- 6
ShopBundle/Resources/public/sass/backend/custom.scss Datei anzeigen

.layout-ajax { .layout-ajax {
#edit-productfamily-form { #edit-productfamily-form {
.card-sections { .card-sections {
width: 100% ;
position: fixed ;
left: 0px ;
top: 0px ;
width: 100%;
position: fixed;
left: 0px;
top: 0px;
z-index: 10; z-index: 10;
} }


.form { .form {
padding-top: 50px ;
padding-top: 50px;
} }


.card-footer { .card-footer {
display: none ;
display: none;
}

.in-advanced-editing-table {
.form {
padding-top: 0px ;
}
.card-sections,
.row-note {
display: none;
}
} }
} }
} }

+ 1
- 0
ShopBundle/Resources/views/backend/default/layout/layout-ajax.html.twig Datei anzeigen

<div class="layout-ajax"> <div class="layout-ajax">
{% block ajax %} {% block ajax %}
{% block head_stylesheets %} {% 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/adminlte/adminlte.css') }}">
<link rel="stylesheet" href="{{ asset('bundles/lcshop/css/backend/custom.css') }}"> <link rel="stylesheet" href="{{ asset('bundles/lcshop/css/backend/custom.css') }}">
{% endblock %} {% endblock %}

+ 2
- 3
ShopBundle/Resources/views/backend/productfamily/form.html.twig Datei anzeigen



{% set formValues = form.vars.value %} {% set formValues = form.vars.value %}


<div id="lc-product-family-edit">
<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="card card-light card-sections">
<div class="lc-vue-js-container card-header p-0 border-bottom-0"> <div class="lc-vue-js-container card-header p-0 border-bottom-0">
<ul class="nav nav-tabs" id="nav-params"> <ul class="nav nav-tabs" id="nav-params">
<span class="glyphicon glyphicon-triangle-bottom"></span> <span class="glyphicon glyphicon-triangle-bottom"></span>
<i class="fa fa-exclamation-circle invalid-form"></i> <i class="fa fa-exclamation-circle invalid-form"></i>
</a> </a>

</li> </li>
</ul> </ul>
</div> </div>
</div> </div>
</div> </div>
{% if entity.note|striptags !="" %} {% if entity.note|striptags !="" %}
<div class="row">
<div class="row row-note">
{{ macros.startCard(12, 'ProductFamily.note', 'light') }} {{ macros.startCard(12, 'ProductFamily.note', 'light') }}
{{ entity.note|raw }} {{ entity.note|raw }}
{{ macros.endCard() }} {{ macros.endCard() }}

+ 1
- 1
ShopBundle/Resources/views/backend/productfamily/macros.html.twig Datei anzeigen

{{ productFamily.unit.unitReference }} {{ productFamily.unit.unitReference }}
{% endif %} {% endif %}
</strong> </strong>
</span>
</span>
<br /> <br />
{% endfor %} {% endfor %}
{% endmacro total_order_product_family %} {% endmacro total_order_product_family %}

+ 15
- 2
ShopBundle/Services/Price/ProductPriceUtils.php Datei anzeigen

public function getBuyingPrice(ProductPropertyInterface $product) public function getBuyingPrice(ProductPropertyInterface $product)
{ {
if ($product->getBehaviorPriceInherited() == 'by-piece') { if ($product->getBehaviorPriceInherited() == 'by-piece') {
return $product->getBuyingPriceInherited();
return $product->getBuyingPriceInherited() ;
} }
elseif ($product->getBehaviorPriceInherited() == 'by-reference-unit') { elseif ($product->getBehaviorPriceInherited() == 'by-reference-unit') {


if ($product->getQuantityInherited() > 0) { if ($product->getQuantityInherited() > 0) {
return $product->getBuyingPriceByRefUnitInherited() * ($product->getQuantityInherited() / $product->getUnitInherited()->getCoefficient()); return $product->getBuyingPriceByRefUnitInherited() * ($product->getQuantityInherited() / $product->getUnitInherited()->getCoefficient());
} }
else{
else {
return 0; return 0;
} }
} }
); );
} }


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) public function getMultiplyingFactor(ProductPropertyInterface $product)
{ {
return $this->round($this->getPriceWithTax($product) / $this->getBuyingPrice($product)); return $this->round($this->getPriceWithTax($product) / $this->getBuyingPrice($product));

Laden…
Abbrechen
Speichern