Jump to content

(SOLUCIONADO) Ordenar alfabéticamente direcciones de entrega de clientes


mapez991

Recommended Posts

Hola a todos. Estoy usando la versión 1.5.6 y el tema default.

Estoy usando distintos vendedores, que estan registrados como clientes en la tienda con sus correspondientes cuentas. Cada vendedor, cada vez que hace un cliente nuevo, lo da de alta en su cuenta de la tienda como una nueva dirección de entrega. En el título de la dirección escribimos el nombre del cliente para reconocerlo más rápidamente

 

Al final nos encontramos que cada vendedor en su cuenta de cliente, tiene un montón de direcciones de entrega. El problema que tengo es que cuando llego al paso 3 del proceso de compra, las direcciones de entrega me salen ordenadas en la lista por orden de introducción. Necesito que me salgan por orden alfabético.

 

He estado mirando las clases y los controladores pero no tengo los conocimientos suficientes y no doy con la solución.

 

Adjunto imagen para que quede más claro mi problema.

 

Muchas gracias de antemano

 

 

post-490195-0-78273200-1387312141_thumb.jpg

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

Mira ver a modo de prueba (si funciona ya despues hacer el override) editar el fichero:
 

/classes/Customer.php

Buscar esto:
 

public function getAddresses($id_lang)
{
$share_order = (bool)Context::getContext()->shop->getGroup()->share_order;
$cache_id = 'Customer::getAddresses'.(int)$this->id.'-'.(int)$id_lang.'-'.$share_order;
if (!Cache::isStored($cache_id))
{
$sql = 'SELECT DISTINCT a.*, cl.`name` AS country, s.name AS state, s.iso_code AS state_iso
FROM `'._DB_PREFIX_.'address` a
LEFT JOIN `'._DB_PREFIX_.'country` c ON (a.`id_country` = c.`id_country`)
LEFT JOIN `'._DB_PREFIX_.'country_lang` cl ON (c.`id_country` = cl.`id_country`)
LEFT JOIN `'._DB_PREFIX_.'state` s ON (s.`id_state` = a.`id_state`)
'.($share_order ? '' : Shop::addSqlAssociation('country', 'c')).'
WHERE `id_lang` = '.(int)$id_lang.' AND `id_customer` = '.(int)$this->id.' AND a.`deleted` = 0';

$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
Cache::store($cache_id, $result);
}
return Cache::retrieve($cache_id);
}

y probar dejar algo asi:
 

public function getAddresses($id_lang)
{
$share_order = (bool)Context::getContext()->shop->getGroup()->share_order;
$cache_id = 'Customer::getAddresses'.(int)$this->id.'-'.(int)$id_lang.'-'.$share_order;
if (!Cache::isStored($cache_id))
{
$sql = 'SELECT DISTINCT a.*, cl.`name` AS country, s.name AS state, s.iso_code AS state_iso
FROM `'._DB_PREFIX_.'address` a
LEFT JOIN `'._DB_PREFIX_.'country` c ON (a.`id_country` = c.`id_country`)
LEFT JOIN `'._DB_PREFIX_.'country_lang` cl ON (c.`id_country` = cl.`id_country`)
LEFT JOIN `'._DB_PREFIX_.'state` s ON (s.`id_state` = a.`id_state`)
'.($share_order ? '' : Shop::addSqlAssociation('country', 'c')).'
WHERE `id_lang` = '.(int)$id_lang.' AND `id_customer` = '.(int)$this->id.' AND a.`deleted` = 0 order by a.`alias`';

$result = Db::getInstance(_PS_USE_SQL_SLAVE_)->executeS($sql);
Cache::store($cache_id, $result);
}
return Cache::retrieve($cache_id);
}
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...