Jump to content

Ocultar pestaña Precios a salesman [Resuelto]


Eutanasio

Recommended Posts

Buenas,

Hay manera de ocultar la pestaña Precio en la ficha de producto del BO a los empleados con permiso "salesman"? no lo veo relevante para ellos, al menos no deberían poder ver el precio de compra al proveedor, es información sensible que incluso podría ver un cliente en algún momento que un empleado abriese la ficha de producto en un PDV

Gracias

Link to comment
Share on other sites

  • 2 weeks later...

 

 

No existe ninguna opción por defecto de configuración para hacerlo. Puede hacerse mediante modificación de código.

Este sería un ejemplo para version 1.7.6.3

En el archivo 

/src/PrestaShopBundle/Controller/Admin/ProductController.php

Se añade acceso a la información  de Empleado, objeto Employee

use Employee;
use PrestaShop\PrestaShop\Adapter\LegacyContext as ContextAdapter;

En la function formAction($id, Request $request)  antes de la parte donde se asignan las variables a la plantillas, se añade la instancia a la información de Empleado, quedando asi mas o menos

  $employee = (new ContextAdapter())->getContext()->employee; // Codigo nuevo añadido 
  $drawerModules = (new HookFinder())->setHookName('displayProductPageDrawer')
            ->setParams(['product' => $product])
            ->addExpectedInstanceClasses('PrestaShop\PrestaShop\Core\Product\ProductAdminDrawer')
            ->present();

        return [
            'form' => $form->createView(),
            'formCombinations' => $formBulkCombinations->createView(),

Y se asigna la nueva variable que hace falta sin olvidarnos de la coma al final

 'employeeSuperAdmin' =>  $employee->isSuperAdmin() ? true : false,

 

Ya solo nos faltaria añadir la condición en el archivo de la plantilla

/src/PrestaShopBundle/Resources/views/Admin/Product/ProductPage/Blocks/tabs.html.twig

Dejando esta parte de esta manera

 {% if employeeSuperAdmin %}
  <li id="tab_step2" class="nav-item"><a href="#step2" role="tab" data-toggle="tab" class="nav-link">{{ 'Pricing'|trans({}, 'Admin.Catalog.Feature') }}</a></li>
 {% endif %}

De esta manera la pestaña solo se mostrara cuando el empleado sea SuperAdmin

spacer.png

  • Like 1
Link to comment
Share on other sites

Asi es , deberias borrar el cache desde 

Parámetros Avanzados / Rendimiento / Borrar cache

Y colocar la nueva variable en el array, eg:

        return [
            'form' => $form->createView(),
            'formCombinations' => $formBulkCombinations->createView(),
            'categories' => $this->get('prestashop.adapter.data_provider.category')->getCategoriesWithBreadCrumb(),
            'employeeAdmitted' =>  in_array($employee->id_profile, array(1, 3, 4)) ? true : false,
             

 

  • Like 1
Link to comment
Share on other sites

  • Eutanasio changed the title to Ocultar pestaña Precios a salesman [Resuelto]

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...