Jump to content

Filtrar pedidos por nombre de cliente sin apellido


Innla

Recommended Posts

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;
            }
        }

    }

 

Edited by Innla (see edit history)
Link to comment
Share on other sites

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...