Moduł Magento do zmiany wykresu deski rozdzielczej
Śledzę ten postZmień wykres pulpitu nawigacyjnego w wersji 1.7 / 1.12 Magento aby umożliwić sprzedaż zamówień „przetwarzania” na wykresie pulpitu nawigacyjnego. Moje pliki znajdują się poniżej i wewnątrz odpowiednich katalogów, a także wyświetlane jako aktywne w konfiguracji> zaawansowane. Ponownie indeksowałem, odświeżałem pamięć podręczną i odświeżałem statystyki życia. Nie widzę błędów w dziennikach. Czy widzisz, co jest nie tak? Mam firegento i mam włączone logowanie, ale to też nie działa.
EDYCJA: Suma przychodów na pulpicie wydaje się poprawna, ale nie odzwierciedla się na wykresie osi czasu. Na przykład może być 30-terminowy porządek netto 2000 $ o 10 rano, ale nie jest wyświetlany na wykresie czasu. Bounty dla każdego, kto może naprawić skrypt poniżej, aby odzwierciedlić dla mnie oś czasu!
CaitlinHavener / Dashboard / etc / config.xml:
<?xml version="1.0"?>
<config>
<modules>
<CaitlinHavener_Dashboard>
<version>1.0</version>
</CaitlinHavener_Dashboard>
</modules>
<global>
<models>
<CaitlinHavener_Dashboard>
<class>CaitlinHavener_Dashboard_Model</class>
</CaitlinHavener_Dashboard>
<reports_resource>
<rewrite>
<order_collection>CaitlinHavener_Dashboard_Model_Reports_Resource_Order_Collection</order_collection>
</rewrite>
</reports_resource>
</models>
</global>
</config>
CaitlinHavener / Dashboard / Model / Raporty / Resource / Order / Collection.php
<?php
/**
* Show all orders, not only the invoiced one
*/
class CaitlinHavener_Dashboard_Model_Reports_Resource_Order_Collection extends Mage_Reports_Model_Resource_Order_Collection
{
protected function _prepareSummaryLive($range, $customStart, $customEnd, $isFilter = 0)
{
$this->setMainTable('sales/order');
$adapter = $this->getConnection();
/**
* Reset all columns, because result will group only by 'created_at' field
*/
$this->getSelect()->reset(Zend_Db_Select::COLUMNS);
/* $expression = sprintf('%s - %s - %s - (%s - %s - %s)',
$adapter->getIfNullSql('main_table.base_total_invoiced', 0),
$adapter->getIfNullSql('main_table.base_tax_invoiced', 0),
$adapter->getIfNullSql('main_table.base_shipping_invoiced', 0),
$adapter->getIfNullSql('main_table.base_total_refunded', 0),
$adapter->getIfNullSql('main_table.base_tax_refunded', 0),
$adapter->getIfNullSql('main_table.base_shipping_refunded', 0)
); */
$expression = sprintf('%s - %s - %s - (%s - %s - %s)',
$adapter->getIfNullSql('main_table.base_total_invoiced', 'main_table.base_grand_total'),
$adapter->getIfNullSql('main_table.base_tax_invoiced', 'main_table.base_tax_amount'),
$adapter->getIfNullSql('main_table.base_shipping_invoiced', 'main_table.base_shipping_amount'),
$adapter->getIfNullSql('main_table.base_total_refunded', 0),
$adapter->getIfNullSql('main_table.base_tax_refunded', 0),
$adapter->getIfNullSql('main_table.base_shipping_refunded', 0)
);
if ($isFilter == 0) {
$this->getSelect()->columns(array(
'revenue' => new Zend_Db_Expr(
sprintf('SUM((%s) * %s)', $expression,
$adapter->getIfNullSql('main_table.base_to_global_rate', 0)
)
)
));
} else {
$this->getSelect()->columns(array(
'revenue' => new Zend_Db_Expr(sprintf('SUM(%s)', $expression))
));
}
$dateRange = $this->getDateRange($range, $customStart, $customEnd);
$tzRangeOffsetExpression = $this->_getTZRangeOffsetExpression(
$range, 'created_at', $dateRange['from'], $dateRange['to']
);
$this->getSelect()
->columns(array(
'quantity' => 'COUNT(main_table.entity_id)',
'range' => $tzRangeOffsetExpression,
))
//BOF modification
->where('main_table.state NOT IN (?)', array(
Mage_Sales_Model_Order::STATE_PENDING_PAYMENT,
// Mage_Sales_Model_Order::STATE_NEW
)
)
//EOF modification
->order('range', Zend_Db_Select::SQL_ASC)
->group($tzRangeOffsetExpression);
$this->addFieldToFilter('created_at', $dateRange);
return $this;
}
protected function _calculateTotalsLive($isFilter = 0)
{
$this->setMainTable('sales/order');
$this->removeAllFieldsFromSelect();
$adapter = $this->getConnection();
// $baseTotalInvoiced = $adapter->getIfNullSql('main_table.base_grand_total', 0);
// $baseTotalRefunded = $adapter->getIfNullSql('main_table.base_discount_refunded', 0);
// $baseTaxInvoiced = $adapter->getIfNullSql('main_table.base_tax_amount', 0);
// $baseTaxRefunded = $adapter->getIfNullSql('main_table.base_tax_refunded', 0);
// $baseShippingInvoiced = $adapter->getIfNullSql('main_table.base_shipping_amount', 0);
// $baseShippingRefunded = $adapter->getIfNullSql('main_table.base_shipping_refunded', 0);
// $baseShippingRefunded = $adapter->getIfNullSql('main_table.base_shipping_refunded', 0);
$baseTotalInvoiced = $adapter->getIfNullSql('main_table.base_total_invoiced', 'main_table.base_grand_total'); // This will check if there is no invoice it will calculate based on the grand totals ( so when you generate and invoice u will have no issues with the numbers also )
$baseTotalRefunded = $adapter->getIfNullSql('main_table.base_total_refunded', 0);
$baseTaxInvoiced = $adapter->getIfNullSql('main_table.base_tax_invoiced', 'main_table.base_tax_amount'); // Same here for taxes
$baseTaxRefunded = $adapter->getIfNullSql('main_table.base_tax_refunded', 0);
$baseShippingInvoiced = $adapter->getIfNullSql('main_table.base_shipping_invoiced', 'main_table.base_shipping_amount'); // Same here for shipping
$baseShippingRefunded = $adapter->getIfNullSql('main_table.base_shipping_refunded', 0);
$revenueExp = sprintf('%s - %s - %s - (%s - %s - %s)',
$baseTotalInvoiced,
$baseTaxInvoiced,
$baseShippingInvoiced,
$baseTotalRefunded,
$baseTaxRefunded,
$baseShippingRefunded
);
$taxExp = sprintf('%s - %s', $baseTaxInvoiced, $baseTaxRefunded);
$shippingExp = sprintf('%s - %s', $baseShippingInvoiced, $baseShippingRefunded);
if ($isFilter == 0) {
$rateExp = $adapter->getIfNullSql('main_table.base_to_global_rate', 0);
$this->getSelect()->columns(
array(
'revenue' => new Zend_Db_Expr(sprintf('SUM((%s) * %s)', $revenueExp, $rateExp)),
'tax' => new Zend_Db_Expr(sprintf('SUM((%s) * %s)', $taxExp, $rateExp)),
'shipping' => new Zend_Db_Expr(sprintf('SUM((%s) * %s)', $shippingExp, $rateExp))
)
);
} else {
$this->getSelect()->columns(
array(
'revenue' => new Zend_Db_Expr(sprintf('SUM(%s)', $revenueExp)),
'tax' => new Zend_Db_Expr(sprintf('SUM(%s)', $taxExp)),
'shipping' => new Zend_Db_Expr(sprintf('SUM(%s)', $shippingExp))
)
);
}
$this->getSelect()->columns(array(
'quantity' => 'COUNT(main_table.entity_id)'
))
->where('main_table.state NOT IN (?)', array(
Mage_Sales_Model_Order::STATE_PENDING_PAYMENT,
//Mage_Sales_Model_Order::STATE_NEW
)
);
return $this;
}
}
?>