Jump to content

Edit History

Innla

Innla

Hola,

en nuestro Prestashop tenemos quitado el campo 'lastname' y solo utilizamos el 'firstname' en el que introducimos el nombre completo: nombre + apellido. 

Uno de los problemas que esto nos causa es que en el listado de pedidos la columna cliente, por defecto, muestra la primera letra del campo 'firstname' y el 'lastname' completo. Como no tenemos campo 'lastname', solo nos muestra la inicial del nombre, lo que es muy poco útil.

Para solucionarlo, estoy utilizando el hook 'hookActionOrderGridQueryBuilderModifier' con el cual he conseguido mostrar el campo 'firstname' completo correctamente. Pero aun me dan problemas las búsquedas por nombre:

  • Si escribo solo el nombre --> busca correctamente
  • si escribo nombre + espacio + apellido --> no encuentra resultados
  • Si escribo nombre y además utilizo otros filtros, por ejemplo, estado de pedido = enviado -> solo filtra por nombre, no filtra por estado de pedido

 

A continuación muestro el código que tengo hasta ahora:

public function hookActionOrderGridQueryBuilderModifier(array $params){

        $searchQueryBuilder = $params['search_query_builder'];
        $searchCriteria = $params['search_criteria'];
        $countQueryBuilder = $params['count_query_builder'];

        $searchQueryBuilder->addSelect('cu.`firstname` AS `customer`');

        // for search action
        foreach ($searchCriteria->getFilters() as $filterName => $filterValue) {
            if ('customer' === $filterName) {
                $searchQueryBuilder->where('cu.`firstname` like :' . $filterName);
                $filterValue = substr_replace($filterValue, '%', 0, 0);
                $filterValue = substr_replace($filterValue, '%', strlen($filterName), 0);
                $searchQueryBuilder->setParameter($filterName, $filterValue);
                continue;
            }
        }

    }

 

Innla

Innla

Hola,

en nuestro Prestashop tenemos quitado el campo 'lastname' y solo utilizamos el 'firstname' en el que introducimos el nombre completo: nombre + apellido. 

Uno de los problemas que esto nos causa es que en el listado de pedidos la columna cliente, por defecto, muestra la primera letra del campo 'firstname' y el 'lastname' completo. Como no tenemos campo 'lastname', solo nos muestra la inicial del nombre, lo que es muy poco util.

Para solucionarlo, estoy utilizando el hook 'hookActionOrderGridQueryBuilderModifier' con el cual he conseguido mostrar el campo 'firstname' completo correctamente. Pero aun me dan problemas las busquedas por nombre:

  • Si escribo solo el nombre --> busca correctamente
  • si escribo nombre + espacio + apellido --> no encuentra resultados
  • Si escribo nombre y ademas utilizo otros filtros, por ejemplo, estado de pedido = enviado -> solo filtra por nombre, no filtra por estado de pedido

 

A continuacion muestro el código que tengo hasta ahora:

public function hookActionOrderGridQueryBuilderModifier(array $params){

        $searchQueryBuilder = $params['search_query_builder'];
        $searchCriteria = $params['search_criteria'];
        $countQueryBuilder = $params['count_query_builder'];

        $searchQueryBuilder->addSelect('cu.`firstname` AS `customer`');

        // for search action
        foreach ($searchCriteria->getFilters() as $filterName => $filterValue) {
            if ('customer' === $filterName) {
                $searchQueryBuilder->where('cu.`firstname` like :' . $filterName);
                $filterValue = substr_replace($filterValue, '%', 0, 0);
                $filterValue = substr_replace($filterValue, '%', strlen($filterName), 0);
                $searchQueryBuilder->setParameter($filterName, $filterValue);
                continue;
            }
        }

    }

 

×
×
  • Create New...