Browse Source

Tableau renouvelement stock

feature/export_comptable
Fab 4 years ago
parent
commit
d00d03bc6e
10 changed files with 212 additions and 147 deletions
  1. +46
    -25
      ShopBundle/Controller/Backend/ProductFamilyController.php
  2. +1
    -0
      ShopBundle/Model/Product.php
  3. +2
    -1
      ShopBundle/Repository/OrderShopRepository.php
  4. +0
    -1
      ShopBundle/Resources/config/easy_admin/base.yaml
  5. +135
    -114
      ShopBundle/Resources/public/css/backend/custom.css
  6. +4
    -2
      ShopBundle/Resources/public/sass/backend/custom.scss
  7. +1
    -0
      ShopBundle/Resources/translations/lcshop.fr.yaml
  8. +1
    -1
      ShopBundle/Resources/views/backend/default/layout/layout.html.twig
  9. +1
    -1
      ShopBundle/Resources/views/backend/default/list.html.twig
  10. +21
    -2
      ShopBundle/Resources/views/backend/productfamily/macros.html.twig

+ 46
- 25
ShopBundle/Controller/Backend/ProductFamilyController.php View File

)); ));


$formBuilder->add('stayOnPage', HiddenType::class, array( $formBuilder->add('stayOnPage', HiddenType::class, array(
'required'=>false,
'mapped'=>false,
'required' => false,
'mapped' => false,
)); ));
$formBuilder->add('warningMessageType', ChoiceType::class, array( $formBuilder->add('warningMessageType', ChoiceType::class, array(
'choices' => array( 'choices' => array(
return $formBuilder; return $formBuilder;
} }


public function updateProductFamilyEntity($entity, $editForm=false)
public function updateProductFamilyEntity($entity, $editForm = false)
{ {
if($editForm) {
if ($editForm) {
$this->processReductionCatalog($entity, $editForm); $this->processReductionCatalog($entity, $editForm);
$this->processCategories($entity); $this->processCategories($entity);
$this->processProducts($entity); $this->processProducts($entity);
} }
} }


protected function processProducts($entity, $clone =false)
protected function processProducts($entity, $clone = false)
{ {
//si il existe un et un seul produit pour ce product family n'ajoute rien supprime rien //si il existe un et un seul produit pour ce product family n'ajoute rien supprime rien
if (count($entity->getProducts()) == 0) { if (count($entity->getProducts()) == 0) {
$entity->addProduct($product); $entity->addProduct($product);
} else { } else {
foreach ($entity->getProducts() as $i => $product) { foreach ($entity->getProducts() as $i => $product) {
if($clone){
if ($clone) {
$newProduct = clone $product; $newProduct = clone $product;
$newProduct->setProductFamily($entity); $newProduct->setProductFamily($entity);
$this->em->persist($newProduct); $this->em->persist($newProduct);
$entity->addProduct($newProduct); $entity->addProduct($newProduct);
}else {
} else {
$product->setProductFamily($entity); $product->setProductFamily($entity);
$this->em->persist($product); $this->em->persist($product);
$entity->addProduct($product); $entity->addProduct($product);
if ($editForm->isSubmitted() && count($entity->getProductCategories()) == 0) { if ($editForm->isSubmitted() && count($entity->getProductCategories()) == 0) {
$editForm->get('productCategories')->addError(new FormError('Vous devez choisir au moins une catégorie')); $editForm->get('productCategories')->addError(new FormError('Vous devez choisir au moins une catégorie'));
} }

if ($editForm->isSubmitted() && $editForm->isValid() && count($entity->getProductCategories()) > 0) { if ($editForm->isSubmitted() && $editForm->isValid() && count($entity->getProductCategories()) > 0) {


$this->processUploadedFiles($editForm); $this->processUploadedFiles($editForm);


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


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


$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]);


if($newForm->get('stayOnPage')->getData()!="false" || $this->request->get('submitAndStay')!==null){
return $this->redirectToRoute('easyadmin', ['entity' => 'ProductFamily', 'action' => 'edit', 'id' => $entity->getId()]) ;
}else {
if ($newForm->get('stayOnPage')->getData() != "false" || $this->request->get('submitAndStay') !== null) {
return $this->redirectToRoute('easyadmin', ['entity' => 'ProductFamily', 'action' => 'edit', 'id' => $entity->getId()]);
} else {
return $this->redirectToReferrer(); return $this->redirectToReferrer();
} }
} }
return $this->executeDynamicMethod('render<EntityName>Template', ['new', $this->entity['templates']['new'], $parameters]); return $this->executeDynamicMethod('render<EntityName>Template', ['new', $this->entity['templates']['new'], $parameters]);
} }


public function duplicateAction(){
public function duplicateAction()
{
$id = $this->request->query->get('id'); $id = $this->request->query->get('id');
$refererUrl = $this->request->query->get('referer', ''); $refererUrl = $this->request->query->get('referer', '');


$easyadmin = $this->request->attributes->get('easyadmin'); $easyadmin = $this->request->attributes->get('easyadmin');


$entity= $this->em->getRepository($easyadmin['entity']['class'])->find($id);
$entity = $this->em->getRepository($easyadmin['entity']['class'])->find($id);


$newProductFamily = clone $entity ;
if($easyadmin['entity']['name'] == "ProductFamily"){
$newProductFamily = clone $entity;
if ($easyadmin['entity']['name'] == "ProductFamily") {
$this->processProducts($newProductFamily, true); $this->processProducts($newProductFamily, true);
} }
$this->em->persist($newProductFamily) ;
$this->em->flush() ;
$this->em->persist($newProductFamily);
$this->em->flush();


return $this->redirectToRoute('easyadmin', ['entity' => $easyadmin['entity']['name'], 'action' => 'edit', 'id' =>$newProductFamily->getId(), 'referer' =>$refererUrl ]) ;
return $this->redirectToRoute('easyadmin', ['entity' => $easyadmin['entity']['name'], 'action' => 'edit', 'id' => $newProductFamily->getId(), 'referer' => $refererUrl]);
} }




public function getTotalProductOrdered($entity){
public function getTotalProductOrdered($entity)
{
$orderShopRepo = $this->em->getRepository(OrderShopInterface::class); $orderShopRepo = $this->em->getRepository(OrderShopInterface::class);
$totalProductOrdered = array(); $totalProductOrdered = array();
$currentWeekNumber = $this->orderUtils->getWeekNumberCurrent();
$totalProductOrdered['total'][$currentWeekNumber +1] = 0;
$totalProductOrdered['total'][$currentWeekNumber ] = 0;

foreach ($entity->getProducts() as $product) { foreach ($entity->getProducts() as $product) {
$currentWeekNumber = $this->orderUtils->getWeekNumberCurrent();
//Les commandes sont ouvertes ont récupèrent les commandes en cours et celle de la semaine dernière //Les commandes sont ouvertes ont récupèrent les commandes en cours et celle de la semaine dernière
if ($this->orderUtils->isOpenSale()) { if ($this->orderUtils->isOpenSale()) {
$totalProductOrdered[$product->getId()][$currentWeekNumber +1] = $orderShopRepo->countValidOrderProductsOfWeekByProduct($currentWeekNumber +1, $product->getId());
$totalProductOrdered[$product->getId()][$currentWeekNumber] = $orderShopRepo->countValidOrderProductsOfWeekByProduct($currentWeekNumber, $product->getId()); $totalProductOrdered[$product->getId()][$currentWeekNumber] = $orderShopRepo->countValidOrderProductsOfWeekByProduct($currentWeekNumber, $product->getId());
$totalProductOrdered[$product->getId()][$currentWeekNumber - 1] = $orderShopRepo->countValidOrderProductsOfWeekByProduct($currentWeekNumber - 1, $product->getId());

if ($entity->getBehaviorCountStock() == ProductFamily::BEHAVIOR_COUNT_STOCK_BY_MEASURE) {
$ratioByMeasure = $product->getQuantity() / $product->getUnitInherited()->getCoefficient();
$totalProductOrdered['total'][$currentWeekNumber +1] += $orderShopRepo->countValidOrderProductsOfWeekByProduct($currentWeekNumber +1, $product->getId()) * $ratioByMeasure;
$totalProductOrdered['total'][$currentWeekNumber] += $orderShopRepo->countValidOrderProductsOfWeekByProduct($currentWeekNumber, $product->getId()) * $ratioByMeasure;
} else {
$totalProductOrdered['total'][$currentWeekNumber +1] += $orderShopRepo->countValidOrderProductsOfWeekByProduct($currentWeekNumber+1, $product->getId());
$totalProductOrdered['total'][$currentWeekNumber] += $orderShopRepo->countValidOrderProductsOfWeekByProduct($currentWeekNumber, $product->getId());
}

} else { } else {
$totalProductOrdered[$product->getId()][$currentWeekNumber] = $orderShopRepo->countValidOrderProductsOfWeekByProduct($currentWeekNumber, $product->getId());
$totalProductOrdered[$product->getId()][$currentWeekNumber +1] = $orderShopRepo->countValidOrderProductsOfWeekByProduct($currentWeekNumber+1, $product->getId());
if ($entity->getBehaviorCountStock() == ProductFamily::BEHAVIOR_COUNT_STOCK_BY_MEASURE) {
$ratioByMeasure = $product->getQuantity() / $product->getUnitInherited()->getCoefficient();
$totalProductOrdered['total'][$currentWeekNumber+1] += $orderShopRepo->countValidOrderProductsOfWeekByProduct($currentWeekNumber+1, $product->getId()) * $ratioByMeasure;
}else{
$totalProductOrdered['total'][$currentWeekNumber+1] += $orderShopRepo->countValidOrderProductsOfWeekByProduct($currentWeekNumber+1, $product->getId());
}
} }

} }
return $totalProductOrdered; return $totalProductOrdered;
} }

+ 1
- 0
ShopBundle/Model/Product.php View File

public function __construct() public function __construct()
{ {
$this->orderProducts = new ArrayCollection(); $this->orderProducts = new ArrayCollection();
$this->status = 1;
} }


public function getBuyingPriceInherited() public function getBuyingPriceInherited()

+ 2
- 1
ShopBundle/Repository/OrderShopRepository.php View File

$query->setParameter('product', $productId); $query->setParameter('product', $productId);
$query->select('SUM(orderProduct.quantityOrder) as quantity'); $query->select('SUM(orderProduct.quantityOrder) as quantity');


return $query->getQuery()->getOneOrNullResult();
$result = $query->getQuery()->getOneOrNullResult();
return $result['quantity'];


} }
} }

+ 0
- 1
ShopBundle/Resources/config/easy_admin/base.yaml View File

- '/bundles/lcshop/js/backend/script/custom.js' - '/bundles/lcshop/js/backend/script/custom.js'
css: css:
- '/bundles/lcshop/css/backend/jquery-ui.min.css' - '/bundles/lcshop/css/backend/jquery-ui.min.css'
- '/bundles/lcshop/css/backend/custom.css'
form_theme: form_theme:
- '@LcShop/backend/form/custom_bootstrap_4.html.twig' - '@LcShop/backend/form/custom_bootstrap_4.html.twig'
- '@LcShop/backend/form/ckeditor_widget.html.twig' - '@LcShop/backend/form/ckeditor_widget.html.twig'

+ 135
- 114
ShopBundle/Resources/public/css/backend/custom.css View File

.main-sidebar .sidebar { .main-sidebar .sidebar {
padding-left: 0px; padding-left: 0px;
padding-right: 0px; padding-right: 0px;
margin-top: 57px;
padding-top: 114px;
} }


/* line 38, ../../sass/backend/custom.scss */ /* line 38, ../../sass/backend/custom.scss */
padding: .4rem .5rem .4rem .7rem; padding: .4rem .5rem .4rem .7rem;
} }


/* line 43, ../../sass/backend/custom.scss */
/* line 40, ../../sass/backend/custom.scss */
body#pdl-body .wrapper .main-sidebar {
bottom: 0;
float: none;
height: 100vh;
left: 0;
position: fixed;
top: 0;
}

/* line 41, ../../sass/backend/custom.scss */
body#pdl-body .wrapper .content-wrapper {
margin-top: 0;
padding-top: 57px;
}

/* line 42, ../../sass/backend/custom.scss */
.sidebar {
overflow-y: auto;
}

/* line 45, ../../sass/backend/custom.scss */
#lc-flash-messages { #lc-flash-messages {
display: none; display: none;
} }


/* line 45, ../../sass/backend/custom.scss */
/* line 47, ../../sass/backend/custom.scss */
.main-sidebar .logo-long { .main-sidebar .logo-long {
padding: 8px 0; padding: 8px 0;
text-align: center; text-align: center;
} }


/* line 46, ../../sass/backend/custom.scss */
/* line 48, ../../sass/backend/custom.scss */
.main-sidebar .logo-long img { .main-sidebar .logo-long img {
height: 40px; height: 40px;
display: inline-block; display: inline-block;
} }


/* line 47, ../../sass/backend/custom.scss */
/* line 49, ../../sass/backend/custom.scss */
.sidebar-collapse .main-sidebar .logo-long span { .sidebar-collapse .main-sidebar .logo-long span {
display: none; display: none;
} }


/* line 48, ../../sass/backend/custom.scss */
/* line 50, ../../sass/backend/custom.scss */
.sidebar-collapse .main-sidebar:hover .logo-long span { .sidebar-collapse .main-sidebar:hover .logo-long span {
display: inline-block; display: inline-block;
} }


/* line 50, ../../sass/backend/custom.scss */
/* line 52, ../../sass/backend/custom.scss */
.table.datatable-simple .highlight { .table.datatable-simple .highlight {
background: var(--teal); background: var(--teal);
} }


/* line 51, ../../sass/backend/custom.scss */
/* line 53, ../../sass/backend/custom.scss */
.datatable-field-search.small { .datatable-field-search.small {
width: 50px; width: 50px;
} }


/* line 53, ../../sass/backend/custom.scss */
/* line 55, ../../sass/backend/custom.scss */
.dataTables_length, .dataTables_filter { .dataTables_length, .dataTables_filter {
padding: .75rem 1.25rem 0.25rem; padding: .75rem 1.25rem 0.25rem;
} }


/* line 55, ../../sass/backend/custom.scss */
/* line 57, ../../sass/backend/custom.scss */
table.fixedHeader-floating { table.fixedHeader-floating {
margin-top: 0px !important; margin-top: 0px !important;
} }


/* line 56, ../../sass/backend/custom.scss */
/* line 58, ../../sass/backend/custom.scss */
table th.sorting_asc, table th.sorting_desc { table th.sorting_asc, table th.sorting_desc {
border-top: 3px solid var(--success); border-top: 3px solid var(--success);
} }


/* line 57, ../../sass/backend/custom.scss */
/* line 59, ../../sass/backend/custom.scss */
.card-body table.lc-table-list th.sorted, table th.sorting_asc, table th.sorting_desc { .card-body table.lc-table-list th.sorted, table th.sorting_asc, table th.sorting_desc {
border-top: 2px solid var(--success); border-top: 2px solid var(--success);
} }


/*.card-body table.lc-table-list th{border-top:3px solid var(--success);}*/ /*.card-body table.lc-table-list th{border-top:3px solid var(--success);}*/
/* line 59, ../../sass/backend/custom.scss */
/* line 61, ../../sass/backend/custom.scss */
table th.filtered { table th.filtered {
border-top: 3px solid var(--primary); border-top: 3px solid var(--primary);
} }


/* line 62, ../../sass/backend/custom.scss */
/* line 64, ../../sass/backend/custom.scss */
.lc-table-list thead a { .lc-table-list thead a {
color: #212529; color: #212529;
} }


/* line 63, ../../sass/backend/custom.scss */
/* line 65, ../../sass/backend/custom.scss */
.table-filters-line th { .table-filters-line th {
font-weight: 400; font-weight: 400;
position: relative; position: relative;
} }


/* line 64, ../../sass/backend/custom.scss */
/* line 66, ../../sass/backend/custom.scss */
.table-filters-line th input { .table-filters-line th input {
width: 350px; width: 350px;
} }


/* line 65, ../../sass/backend/custom.scss */
/* line 67, ../../sass/backend/custom.scss */
#list_filter_id { #list_filter_id {
width: 60px; width: 60px;
} }


/* line 66, ../../sass/backend/custom.scss */
/* line 68, ../../sass/backend/custom.scss */
.lc-table-list .date-range { .lc-table-list .date-range {
width: 130px; width: 130px;
} }


/* line 68, ../../sass/backend/custom.scss */
/* line 70, ../../sass/backend/custom.scss */
th.actions, td.actions { th.actions, td.actions {
white-space: nowrap; white-space: nowrap;
text-align: right; text-align: right;
} }


/* line 70, ../../sass/backend/custom.scss */
/* line 72, ../../sass/backend/custom.scss */
.table td, .table th { .table td, .table th {
padding: 0.35rem; padding: 0.35rem;
} }


/* line 71, ../../sass/backend/custom.scss */
/* line 73, ../../sass/backend/custom.scss */
.delivery-field .form-group { .delivery-field .form-group {
display: inline-block; display: inline-block;
margin-bottom: 0px; margin-bottom: 0px;
margin-right: 15px; margin-right: 15px;
} }


/* line 72, ../../sass/backend/custom.scss */
/* line 74, ../../sass/backend/custom.scss */
.delivery-field .form-group .form-control { .delivery-field .form-group .form-control {
width: 150px; width: 150px;
} }


/* line 74, ../../sass/backend/custom.scss */
/* line 76, ../../sass/backend/custom.scss */
table th input { table th input {
width: auto; width: auto;
} }


/* line 75, ../../sass/backend/custom.scss */
/* line 77, ../../sass/backend/custom.scss */
table th .select2-container--default .select2-selection--single { table th .select2-container--default .select2-selection--single {
padding: 0.3rem 0.4rem; padding: 0.3rem 0.4rem;
} }


/************************ LOGIN PAGE *********************/ /************************ LOGIN PAGE *********************/
/* line 78, ../../sass/backend/custom.scss */
/* line 80, ../../sass/backend/custom.scss */
.login-logo { .login-logo {
display: block; display: block;
margin: auto; margin: auto;
} }


/************************ form error *********************/ /************************ form error *********************/
/* line 81, ../../sass/backend/custom.scss */
/* line 83, ../../sass/backend/custom.scss */
.form-sent .form-control:invalid { .form-sent .form-control:invalid {
border-color: #dc3545; border-color: #dc3545;
padding-right: 2.25rem; padding-right: 2.25rem;
background-size: calc(.75em + .375rem) calc(.75em + .375rem); background-size: calc(.75em + .375rem) calc(.75em + .375rem);
} }


/* line 82, ../../sass/backend/custom.scss */
/* line 84, ../../sass/backend/custom.scss */
.form-sent select.form-control:invalid + .select2 .select2-selection { .form-sent select.form-control:invalid + .select2 .select2-selection {
border-color: #dc3545; border-color: #dc3545;
} }


/* line 83, ../../sass/backend/custom.scss */
/* line 85, ../../sass/backend/custom.scss */
.form-sent select.form-control:invalid + .select2 .select2-selection b { .form-sent select.form-control:invalid + .select2 .select2-selection b {
border-color: #dc3545 transparent transparent transparent; border-color: #dc3545 transparent transparent transparent;
} }


/*CUSTOM Checkbox /*CUSTOM Checkbox
/* Customize the label (the container) */ /* Customize the label (the container) */
/* line 88, ../../sass/backend/custom.scss */
/* line 90, ../../sass/backend/custom.scss */
.form-check-label { .form-check-label {
display: block; display: block;
position: relative; position: relative;
} }


/* Hide the browser's default checkbox */ /* Hide the browser's default checkbox */
/* line 90, ../../sass/backend/custom.scss */
/* line 92, ../../sass/backend/custom.scss */
.form-check-label input { .form-check-label input {
position: absolute; position: absolute;
opacity: 0; opacity: 0;
} }


/* Create a custom checkbox */ /* Create a custom checkbox */
/* line 93, ../../sass/backend/custom.scss */
/* line 95, ../../sass/backend/custom.scss */
.form-check { .form-check {
padding-left: 0px; padding-left: 0px;
} }


/* line 95, ../../sass/backend/custom.scss */
/* line 97, ../../sass/backend/custom.scss */
.form-sent .form-check-label input:invalid ~ .checkmark { .form-sent .form-check-label input:invalid ~ .checkmark {
border-color: #dc3545; border-color: #dc3545;
} }


/* line 96, ../../sass/backend/custom.scss */
/* line 98, ../../sass/backend/custom.scss */
.form-check-label input:disabled ~ .checkmark { .form-check-label input:disabled ~ .checkmark {
display: none; display: none;
} }


/* line 97, ../../sass/backend/custom.scss */
/* line 99, ../../sass/backend/custom.scss */
.form-check-label input ~ .checkmark { .form-check-label input ~ .checkmark {
position: absolute; position: absolute;
top: 0; top: 0;
border: 1px solid var(--primary); border: 1px solid var(--primary);
} }


/* line 98, ../../sass/backend/custom.scss */
/* line 100, ../../sass/backend/custom.scss */
.form-check-label.big input ~ .checkmark { .form-check-label.big input ~ .checkmark {
height: 21px; height: 21px;
width: 21px; width: 21px;
} }


/* line 99, ../../sass/backend/custom.scss */
/* line 101, ../../sass/backend/custom.scss */
.form-check-label input[type="checkbox"] ~ .checkmark { .form-check-label input[type="checkbox"] ~ .checkmark {
top: 2px; top: 2px;
} }


/* line 100, ../../sass/backend/custom.scss */
/* line 102, ../../sass/backend/custom.scss */
.form-check-label input[type="radio"] ~ .checkmark { .form-check-label input[type="radio"] ~ .checkmark {
top: 3px; top: 3px;
border-radius: 50%; border-radius: 50%;
} }


/* line 101, ../../sass/backend/custom.scss */
/* line 103, ../../sass/backend/custom.scss */
.form-check-label:hover input ~ .checkmark { .form-check-label:hover input ~ .checkmark {
background-color: #ccc; background-color: #ccc;
} }


/* When the checkbox is checked, add a blue background */ /* When the checkbox is checked, add a blue background */
/* line 103, ../../sass/backend/custom.scss */
/* line 105, ../../sass/backend/custom.scss */
.form-check-label input:checked ~ .checkmark { .form-check-label input:checked ~ .checkmark {
background-color: var(--primary); background-color: var(--primary);
} }


/* Create the checkmark/indicator (hidden when not checked) */ /* Create the checkmark/indicator (hidden when not checked) */
/* line 105, ../../sass/backend/custom.scss */
/* line 107, ../../sass/backend/custom.scss */
.form-check-label .checkmark:after { .form-check-label .checkmark:after {
content: ""; content: "";
position: absolute; position: absolute;
} }


/* Show the checkmark when checked */ /* Show the checkmark when checked */
/* line 107, ../../sass/backend/custom.scss */
/* line 109, ../../sass/backend/custom.scss */
.form-check-label input:checked ~ .checkmark:after { .form-check-label input:checked ~ .checkmark:after {
display: block; display: block;
} }


/* Style the checkmark/indicator */ /* Style the checkmark/indicator */
/* line 109, ../../sass/backend/custom.scss */
/* line 111, ../../sass/backend/custom.scss */
.form-check-label .checkmark:after { .form-check-label .checkmark:after {
left: 7px; left: 7px;
top: 3px; top: 3px;
transform: rotate(45deg); transform: rotate(45deg);
} }


/* line 110, ../../sass/backend/custom.scss */
/* line 112, ../../sass/backend/custom.scss */
.form-check-label input[type="checkbox"] ~ .checkmark:after { .form-check-label input[type="checkbox"] ~ .checkmark:after {
left: 6px; left: 6px;
top: 2px; top: 2px;
transform: rotate(45deg); transform: rotate(45deg);
} }


/* line 111, ../../sass/backend/custom.scss */
/* line 113, ../../sass/backend/custom.scss */
.form-check-label input[type="radio"] ~ .checkmark:after { .form-check-label input[type="radio"] ~ .checkmark:after {
top: 4px; top: 4px;
left: 4px; left: 4px;
background: white; background: white;
} }


/* line 113, ../../sass/backend/custom.scss */
/* line 115, ../../sass/backend/custom.scss */
.form-check-label.big input[type="checkbox"] ~ .checkmark:after { .form-check-label.big input[type="checkbox"] ~ .checkmark:after {
left: 7px; left: 7px;
top: 3px; top: 3px;
} }


/* Create a custom radio button */ /* Create a custom radio button */
/* line 117, ../../sass/backend/custom.scss */
/* line 119, ../../sass/backend/custom.scss */
.product-categories .parent .form-group.field-checkbox .form-check-label { .product-categories .parent .form-group.field-checkbox .form-check-label {
padding-left: 0px; padding-left: 0px;
font-style: italic; font-style: italic;
} }


/* line 118, ../../sass/backend/custom.scss */
/* line 120, ../../sass/backend/custom.scss */
.product-categories .children .form-group.field-checkbox { .product-categories .children .form-group.field-checkbox {
margin-left: 20px; margin-left: 20px;
} }


/* line 119, ../../sass/backend/custom.scss */
/* line 121, ../../sass/backend/custom.scss */
.product-categories .form-group { .product-categories .form-group {
margin-bottom: 0.15rem; margin-bottom: 0.15rem;
} }


/* line 120, ../../sass/backend/custom.scss */
/* line 122, ../../sass/backend/custom.scss */
.lc-deleted-field { .lc-deleted-field {
display: none; display: none;
} }


/* line 121, ../../sass/backend/custom.scss */
/* line 123, ../../sass/backend/custom.scss */
.lc-offline-field { .lc-offline-field {
opacity: 0.5; opacity: 0.5;
} }


/* line 122, ../../sass/backend/custom.scss */
/* line 124, ../../sass/backend/custom.scss */
.lc-offline-field label::after { .lc-offline-field label::after {
content: ' [hors ligne]'; content: ' [hors ligne]';
} }


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


/* line 129, ../../sass/backend/custom.scss */
/* line 131, ../../sass/backend/custom.scss */
.button-action a.float-right { .button-action a.float-right {
margin-left: 10px; margin-left: 10px;
} }


/* line 131, ../../sass/backend/custom.scss */
/* line 133, ../../sass/backend/custom.scss */
.input-group-text { .input-group-text {
padding: 0.25rem 0.75rem; padding: 0.25rem 0.75rem;
} }


/* line 135, ../../sass/backend/custom.scss */
/* line 137, ../../sass/backend/custom.scss */
.col-form-label { .col-form-label {
font-weight: bold; font-weight: bold;
} }


/* line 137, ../../sass/backend/custom.scss */
/* line 139, ../../sass/backend/custom.scss */
#toast-container.toast-top-right { #toast-container.toast-top-right {
top: 60px; top: 60px;
} }


/* SIDEBAR */ /* SIDEBAR */
/* line 140, ../../sass/backend/custom.scss */
/* line 142, ../../sass/backend/custom.scss */
.main-header.navbar { .main-header.navbar {
padding: 0; padding: 0;
min-height: 57px; min-height: 57px;
} }


/* line 141, ../../sass/backend/custom.scss */
/* line 143, ../../sass/backend/custom.scss */
.lc-navbar li { .lc-navbar li {
border-left: 1px solid #e0e0e0; border-left: 1px solid #e0e0e0;
padding: 0.5rem 1.5rem; padding: 0.5rem 1.5rem;
} }


/* line 142, ../../sass/backend/custom.scss */
/* line 144, ../../sass/backend/custom.scss */
.lc-navbar li label { .lc-navbar li label {
margin-bottom: 0; margin-bottom: 0;
vertical-align: middle; vertical-align: middle;
font-weight: normal !important; font-weight: normal !important;
} }


/* line 144, ../../sass/backend/custom.scss */
/* line 146, ../../sass/backend/custom.scss */
#switch-merchant { #switch-merchant {
min-width: 170px; min-width: 170px;
} }


/* Sortable */ /* Sortable */
/* line 150, ../../sass/backend/custom.scss */
/* line 152, ../../sass/backend/custom.scss */
.ui-sortable-helper { .ui-sortable-helper {
display: table; display: table;
} }


/* line 151, ../../sass/backend/custom.scss */
/* line 153, ../../sass/backend/custom.scss */
.ui-state-highlight { .ui-state-highlight {
background: #eee; background: #eee;
} }


/* line 152, ../../sass/backend/custom.scss */
/* line 154, ../../sass/backend/custom.scss */
.lc-sortable div:last-child { .lc-sortable div:last-child {
display: none; display: none;
} }
.lc-ckfinder-wrap .lc-ckfinder-button{width: 100%; bottom: 0px; left: 0; position: absolute;} .lc-ckfinder-wrap .lc-ckfinder-button{width: 100%; bottom: 0px; left: 0; position: absolute;}
*/ */
/* VUES JS */ /* VUES JS */
/* line 167, ../../sass/backend/custom.scss */
/* line 169, ../../sass/backend/custom.scss */
.nav-item .btn { .nav-item .btn {
padding-right: 15px; padding-right: 15px;
position: relative; position: relative;
} }


/* line 168, ../../sass/backend/custom.scss */
/* line 170, ../../sass/backend/custom.scss */
.nav-item .btn .invalid-form { .nav-item .btn .invalid-form {
display: none; display: none;
position: absolute; position: absolute;
font-size: 1.2rem; font-size: 1.2rem;
} }


/* line 169, ../../sass/backend/custom.scss */
/* line 171, ../../sass/backend/custom.scss */
.nav-item.has-invalid .btn .invalid-form { .nav-item.has-invalid .btn .invalid-form {
display: inline-block; display: inline-block;
z-index: 2; z-index: 2;
} }


/* ProductFamily */ /* ProductFamily */
/* line 174, ../../sass/backend/custom.scss */
/* line 176, ../../sass/backend/custom.scss */
.field-unit-quantity { .field-unit-quantity {
border-bottom: 2px dotted #eee; border-bottom: 2px dotted #eee;
padding-bottom: 10px; padding-bottom: 10px;
margin-bottom: 20px; margin-bottom: 20px;
} }


/* line 175, ../../sass/backend/custom.scss */
/* line 177, ../../sass/backend/custom.scss */
.field-reduction-apply { .field-reduction-apply {
border-top: 2px dotted #eee; border-top: 2px dotted #eee;
padding-top: 10px; padding-top: 10px;
margin-top: 20px; margin-top: 20px;
} }


/* line 177, ../../sass/backend/custom.scss */
/* line 179, ../../sass/backend/custom.scss */
.new-productfamily #nav-params, .new-productfamily #nav-params,
.edit-productfamily #nav-params { .edit-productfamily #nav-params {
margin-bottom: 30px; margin-bottom: 30px;
} }


/* line 182, ../../sass/backend/custom.scss */
/* line 184, ../../sass/backend/custom.scss */
.new-productfamily #nav-params .btn, .new-productfamily #nav-params .btn,
.edit-productfamily #nav-params .btn { .edit-productfamily #nav-params .btn {
margin-left: 20px; margin-left: 20px;
} }


/* line 187, ../../sass/backend/custom.scss */
/* line 189, ../../sass/backend/custom.scss */
.new-productfamily #product-categories .row, .new-productfamily #product-categories .row,
.edit-productfamily #product-categories .row { .edit-productfamily #product-categories .row {
padding: 10px; padding: 10px;
} }


/* line 192, ../../sass/backend/custom.scss */
/* line 194, ../../sass/backend/custom.scss */
.new-productfamily #product-categories .form-group, .new-productfamily #product-categories .form-group,
.edit-productfamily #product-categories .form-group { .edit-productfamily #product-categories .form-group {
width: 100%; width: 100%;
padding: 4px; padding: 4px;
} }


/* line 198, ../../sass/backend/custom.scss */
/* line 200, ../../sass/backend/custom.scss */
.new-productfamily #product-categories .children, .new-productfamily #product-categories .children,
.edit-productfamily #product-categories .children { .edit-productfamily #product-categories .children {
margin-left: 20px; margin-left: 20px;
width: 100%; width: 100%;
} }


/* line 204, ../../sass/backend/custom.scss */
/* line 206, ../../sass/backend/custom.scss */
.new-productfamily ul.products, .new-productfamily ul.products,
.edit-productfamily ul.products { .edit-productfamily ul.products {
padding: 0px; padding: 0px;
list-style-type: none; list-style-type: none;
} }


/* line 210, ../../sass/backend/custom.scss */
/* line 212, ../../sass/backend/custom.scss */
.new-productfamily ul.products li.product, .new-productfamily ul.products li.product,
.edit-productfamily ul.products li.product { .edit-productfamily ul.products li.product {
padding: 0px; padding: 0px;
position: relative; position: relative;
} }


/* line 217, ../../sass/backend/custom.scss */
/* line 219, ../../sass/backend/custom.scss */
.new-productfamily ul.products li.add, .new-productfamily ul.products li.add,
.edit-productfamily ul.products li.add { .edit-productfamily ul.products li.add {
text-align: right; text-align: right;
} }


/* line 222, ../../sass/backend/custom.scss */
/* line 224, ../../sass/backend/custom.scss */
.autoresize textarea { .autoresize textarea {
height: auto; height: auto;
min-height: 38px; min-height: 38px;
} }


/* line 224, ../../sass/backend/custom.scss */
/* line 226, ../../sass/backend/custom.scss */
.field-price .input-group.buyingPrice input, .field-price .input-group.buyingPrice .input-group-text { .field-price .input-group.buyingPrice input, .field-price .input-group.buyingPrice .input-group-text {
font-weight: bold; font-weight: bold;
border-color: #222; border-color: #222;
} }


/* line 225, ../../sass/backend/custom.scss */
/* line 227, ../../sass/backend/custom.scss */
.field-price .input-group.buyingPriceByRefUnit input, .field-price .input-group.buyingPriceByRefUnit .input-group-text { .field-price .input-group.buyingPriceByRefUnit input, .field-price .input-group.buyingPriceByRefUnit .input-group-text {
font-weight: bold; font-weight: bold;
border-color: #222; border-color: #222;
} }


/* line 226, ../../sass/backend/custom.scss */
/* line 228, ../../sass/backend/custom.scss */
.field-price .input-group.priceWithTax input, .field-price .input-group.priceWithTax .input-group-text { .field-price .input-group.priceWithTax input, .field-price .input-group.priceWithTax .input-group-text {
font-weight: bold; font-weight: bold;
border-color: #222; border-color: #222;
} }


/* line 227, ../../sass/backend/custom.scss */
/* line 229, ../../sass/backend/custom.scss */
.field-price .input-group.priceByRefUnitWithTax input, .field-price .input-group.priceByRefUnitWithTax .input-group-text { .field-price .input-group.priceByRefUnitWithTax input, .field-price .input-group.priceByRefUnitWithTax .input-group-text {
font-weight: bold; font-weight: bold;
border-color: #222; border-color: #222;
} }


/* line 228, ../../sass/backend/custom.scss */
/* line 230, ../../sass/backend/custom.scss */
.input-group.multiplyingFactor input, .input-group.multiplyingFactor .input-group-text { .input-group.multiplyingFactor input, .input-group.multiplyingFactor .input-group-text {
font-weight: bold; font-weight: bold;
border-color: #222; border-color: #222;
} }


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


/* line 237, ../../sass/backend/custom.scss */
/* line 239, ../../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 242, ../../sass/backend/custom.scss */
/* line 244, ../../sass/backend/custom.scss */
.product-form-modal { .product-form-modal {
display: none; display: none;
} }


/* line 243, ../../sass/backend/custom.scss */
/* line 245, ../../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 244, ../../sass/backend/custom.scss */
/* line 246, ../../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 245, ../../sass/backend/custom.scss */
/* line 247, ../../sass/backend/custom.scss */
.products-collection-table td { .products-collection-table td {
position: relative; position: relative;
} }


/* line 246, ../../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 { .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 247, ../../sass/backend/custom.scss */
/* line 249, ../../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 248, ../../sass/backend/custom.scss */
/* line 250, ../../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 249, ../../sass/backend/custom.scss */
/* line 251, ../../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-bottom: 2px solid #dee2e6; border-bottom: 2px solid #dee2e6;
} }


/* line 250, ../../sass/backend/custom.scss */
/* line 252, ../../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 251, ../../sass/backend/custom.scss */
/* line 253, ../../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 252, ../../sass/backend/custom.scss */
/* line 254, ../../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 253, ../../sass/backend/custom.scss */
/* line 255, ../../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 254, ../../sass/backend/custom.scss */
/* line 256, ../../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 255, ../../sass/backend/custom.scss */
/* line 257, ../../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 256, ../../sass/backend/custom.scss */
/* line 258, ../../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 257, ../../sass/backend/custom.scss */
/* line 259, ../../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 258, ../../sass/backend/custom.scss */
/* line 260, ../../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 259, ../../sass/backend/custom.scss */
/* line 261, ../../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;
} }


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


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


/* line 270, ../../sass/backend/custom.scss */
/* line 272, ../../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 276, ../../sass/backend/custom.scss */
/* line 278, ../../sass/backend/custom.scss */
.head-reminders { .head-reminders {
margin-top: 15px; margin-top: 15px;
} }


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


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


/* line 281, ../../sass/backend/custom.scss */
/* line 283, ../../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 283, ../../sass/backend/custom.scss */
/* line 285, ../../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 285, ../../sass/backend/custom.scss */
/* line 287, ../../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 286, ../../sass/backend/custom.scss */
/* line 288, ../../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 287, ../../sass/backend/custom.scss */
/* line 289, ../../sass/backend/custom.scss */
#dashboard .btn-statistic small { #dashboard .btn-statistic small {
margin-bottom: 10px; margin-bottom: 10px;
display: block; display: block;
} }


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

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



/***************************************** ADMIN SIDEBAR ***************************************/ /***************************************** ADMIN SIDEBAR ***************************************/
.main-sidebar p{font-size: 0.8rem;} .main-sidebar p{font-size: 0.8rem;}
.main-sidebar .sidebar{padding-left: 0px; padding-right: 0px; margin-top: 57px;}
.main-sidebar .sidebar{padding-left: 0px; padding-right: 0px; padding-top: 114px;}
.main-sidebar .nav-link{padding: .4rem .5rem .4rem .7rem;} .main-sidebar .nav-link{padding: .4rem .5rem .4rem .7rem;}



body#pdl-body .wrapper .main-sidebar{bottom: 0; float: none; height: 100vh; left: 0; position: fixed; top: 0;}
body#pdl-body .wrapper .content-wrapper{margin-top: 0; padding-top: 57px;}
.sidebar{overflow-y: auto;}




#lc-flash-messages{display: none;} #lc-flash-messages{display: none;}

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

deselect: Désélectionner deselect: Désélectionner
form.empty_value: Aucun(e) form.empty_value: Aucun(e)
add: Ajouter add: Ajouter
valid: Valider
product: product:
editStock: Gérer les stocks editStock: Gérer les stocks
editProductFamily: Éditer le produit editProductFamily: Éditer le produit

+ 1
- 1
ShopBundle/Resources/views/backend/default/layout/layout.html.twig View File

</head> </head>


{% block body %} {% block body %}
<body class="{% block body_class %}sidebar-mini layout-navbar-fixed {% endblock %}{% block body_class_extend %}{% endblock %}">
<body id="pdl-body" class="{% block body_class %}sidebar-mini layout-navbar-fixed{% endblock %} {% block body_class_extend %}{% endblock %}">
{# <script> {# <script>
document.body.classList.add( document.body.classList.add(
'easyadmin-content-width-' + (localStorage.getItem('easyadmin/content/width') || 'normal'), 'easyadmin-content-width-' + (localStorage.getItem('easyadmin/content/width') || 'normal'),

+ 1
- 1
ShopBundle/Resources/views/backend/default/list.html.twig View File

</div> </div>
{% else %} {% else %}
<div class="form-widget input-group-sm"> <div class="form-widget input-group-sm">
{% if metadata.dataType == 'integer' or metadata.dataType== 'text' %}
{% if metadata.dataType == 'integer' or metadata.dataType== 'string' %}
{{ form_widget(filters_form[field], {'attr': {'autocomplete': 'off', 'data-lc-autocomplete-url' : path('easyadmin', { {{ form_widget(filters_form[field], {'attr': {'autocomplete': 'off', 'data-lc-autocomplete-url' : path('easyadmin', {
action: 'autocomplete', action: 'autocomplete',
field: field, field: field,

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

{% trans_default_domain 'lcshop' %} {% trans_default_domain 'lcshop' %}


{% macro total_order_product(totalProductOrdered) %}
{% macro total_order_product(totalProductOrdered, productFamily=false) %}
{% for weekNumber, weekNumberQuantity in totalProductOrdered %} {% for weekNumber, weekNumberQuantity in totalProductOrdered %}
<span class="text-success"><i class="fa fa-calendar"></i> {{ weekNumber }}</span> <span class="text-success"><i class="fa fa-calendar"></i> {{ weekNumber }}</span>
<span class="text-info"><i class="fa fa-shopping-basket"></i> <span class="text-info"><i class="fa fa-shopping-basket"></i>
<strong>{{ weekNumberQuantity['quantity'] is null ? 0 : weekNumberQuantity['quantity']}}</strong></span>
<strong>
{{ weekNumberQuantity is null ? 0 : weekNumberQuantity}}
</strong>
</span>
<br /> <br />
{% endfor %} {% endfor %}
{% endmacro total_order_product %} {% endmacro total_order_product %}



{% macro total_order_product_family(totalProductOrdered, productFamily) %}
{% for weekNumber, weekNumberQuantity in totalProductOrdered %}
<span class="text-success"><i class="fa fa-calendar"></i> {{ weekNumber }}</span>
<span class="text-info"><i class="fa fa-shopping-basket"></i>
<strong>
{{ weekNumberQuantity is null ? 0 : weekNumberQuantity}}
{% if productFamily and productFamily.behaviorCountStock== constant('Lc\\ShopBundle\\Model\\ProductFamily::BEHAVIOR_COUNT_STOCK_BY_MEASURE') %}
{{ productFamily.unit.unitReference }}
{% endif %}
</strong>
</span>
<br />
{% endfor %}
{% endmacro total_order_product_family %}

{% macro product_field(colspan, field, field_name, field_display = false, display_suffix="",attr="") %} {% macro product_field(colspan, field, field_name, field_display = false, display_suffix="",attr="") %}


{% if field_display == false %}{% set field_display = field_name %}{% endif %} {% if field_display == false %}{% set field_display = field_name %}{% endif %}

Loading…
Cancel
Save