Question

Cela peut sembler comme un idiot questoin donc je mes excuses si elle ne mais je me changer l'ordre de tri pour les commentaires dans l'histoire Magento Ventes / Order_View Commentaires onglet Historique.

Actuellement, les commentaires sont répertoriés par ordre croissant, mais je voudrais les énumérer dans l'ordre décroissant, sans avoir à toucher tous les fichiers de base bien sûr ...

La question que je voudrais tout comme Où? et comment?

Merci d'avance ...

Était-ce utile?

La solution

La collection d'histoire d'état est tiré de l'objet Mage_Sales_Model_Order dans une méthode appelée getStatusHistoryCollection. Cette méthode est définie comme suit:

/**
 * Enter description here...
 *
 * @return Mage_Sales_Model_Entity_Order_Status_History_Collection
 */
public function getStatusHistoryCollection($reload=false)
{
    if (is_null($this->_statusHistory) || $reload) {
        $this->_statusHistory = Mage::getResourceModel('sales/order_status_history_collection')
            ->setOrderFilter($this)
            ->setOrder('created_at', 'desc')
            ->setOrder('entity_id', 'desc');

        if ($this->getId()) {
            foreach ($this->_statusHistory as $status) {
                $status->setOrder($this);
            }
        }
    }
    return $this->_statusHistory;
} 

Comme vous pouvez le voir dans setOrder('created_at', 'desc') par défaut, il est trié par ordre décroissant , et a été depuis Magento 1.0 (peut-être plus, je n'ai pas accès aux versions précédentes).

Alors, que ce soit que vous voulez dire l'ordre croissant (le plus ancien) ou que vous avez un conflit d'extension qui est en train de réécrire cette méthode. Si c'est le premier - créer une ré-écriture de modèle de Mage_Sales_Model_Order et réécrire uniquement la méthode getStatusHistoryCollection, aller chercher le parent et l'application d'un nouveau genre:

public function getStatusHistoryCollection($reload=false)
{
    $_history = parent::getStatusHistoryCollection($reload);
    $_history->setOrder('created_at', 'asc');
    return $_history;
} 

Dans le cas contraire, vous devrez traquer le module incriminé / réécriture qui est à l'origine de votre ordre de tri indésirable.

Modifier

Apparemment, je ne peux pas lire! Pour la postérité je garde ce qui précède parce qu'il est du bon de toute façon.

L'onglet Historique sur le point de vue de l'ordre de vente est en effet trié en mode ascendant, car il contient tous des histoires pour tous les commentaires sur chaque élément de transaction (note de crédit , facture, commande, livraisons, etc.). Cette pseudo-collection réunie en getFullHistory est recueillie par bousculant tous les commentaires de type de transaction dans un grand tableau et appelant une méthode de tri personnalisé sur elle.

Pour régler ce problème, vous devez réécrire la fonction de tri utilisé dans la méthode usort du Mage_Adminhtml_Block_Sales_Order_View_Tab_History de classe. Il devrait être aussi facile que:

private static function _sortHistoryByTimestamp($a, $b)
{
   return -1 * (parent::_sortHistoryByTimestamp($a, $b));
}

Ce qui devrait forcer l'ordre de tri à la direction opposée. Désolé pour la confusion.

Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange
scroll top