Question

j'obtiens une erreur Utilisation invalide de la table avec UNION pendant que j'essaie d'exporter le rapport Best-sellers dans l'administrateur.
Vous trouverez ci-dessous le contenu du rapport d’exception.

a:5:{i:0;s:31:"Invalid use of table with UNION";i:1;s:1946:"#0 /lib/Zend/Db/Select.php(230): Zend_Db_Select->_join('from', 'sales_bestselle...', NULL, Array, NULL)
#1 /app/code/core/Mage/Sales/Model/Mysql4/Report/Bestsellers/Collection.php(125): Zend_Db_Select->from('sales_bestselle...', Array)
#2 /app/code/core/Mage/Sales/Model/Mysql4/Report/Collection/Abstract.php(241): Mage_Sales_Model_Mysql4_Report_Bestsellers_Collection->_initSelect()
#3 /app/code/core/Mage/Adminhtml/Block/Widget/Grid.php(923): Mage_Sales_Model_Mysql4_Report_Collection_Abstract->load()
#4 /app/code/core/Mage/Adminhtml/Block/Widget/Grid.php(1119): Mage_Adminhtml_Block_Widget_Grid->_exportIterateCollection('_exportExcelIte...', Array)
#5 /app/code/core/Mage/Adminhtml/controllers/Report/SalesController.php(139): Mage_Adminhtml_Block_Widget_Grid->getExcelFile('bestsellers.xml')
#6 /app/code/core/Mage/Core/Controller/Varien/Action.php(420): Mage_Adminhtml_Report_SalesController->exportBestsellersExcelAction()
#7 /app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(257): Mage_Core_Controller_Varien_Action->dispatch('exportBestselle...')
#8 /app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#9 /app/code/core/Mage/Core/Model/App.php(340): Mage_Core_Controller_Varien_Front->dispatch()
#10 /app/Mage.php(627): Mage_Core_Model_App->run(Array)
#11 /index.php(110): Mage::run('', 'store')
#12 {main}";s:3:"url";s:167:"/index.php/admin/report_sales/exportBestsellersExcel/filter/ZnJvbT0wOCUyRjE2JTJGMTUmdG89MDIlMkYxNiUyRjE2JnBlcmlvZF90eXBlPXllYXImc2hvd19lbXB0eV9yb3dzPTA=/";s:11:"script_name";s:10:"/index.php";s:4:"skin";s:5:"admin";}

Veuillez me faire savoir si quelqu'un est confronté à un problème similaire.
Comment cela peut-il être résolu ?
Toute aide serait appréciée.

Était-ce utile?

La solution

Pour résoudre le problème, j'ai réécrit le Mage_Adminhtml_Block_Report_Sales_Bestsellers_Grid et méthode de remplacement _exportIterateCollection

<?php

class Custom_Reports_Block_Adminhtml_Report_Sales_Bestsellers_Grid extends Mage_Adminhtml_Block_Report_Sales_Bestsellers_Grid {

    public function _exportIterateCollection($callback, array $args) {
        //$originalCollection = clone $this->getCollection();
        $originalCollection = $this->getCollection();
        $count = null;
        $page = 1;
        $lPage = null;
        $break = false;

        while ($break !== true) {
            $collection = $originalCollection;
            $collection->setPageSize($this->_exportPageSize);
            $collection->setCurPage($page);
            $collection->load();
            if (is_null($count)) {
                $count = $collection->getSize();
                $lPage = $collection->getLastPageNumber();
            }
            if ($lPage == $page) {
                $break = true;
            }
            $page ++;

            foreach ($collection as $item) {
                call_user_func_array(array($this, $callback), array_merge(array($item), $args));
            }
        }
    }

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