@@ -157,20 +157,22 @@ public function changeIdentity(Varien_Event_Observer $event)
157157
158158 if (is_object ($ order_totals )) {
159159 $ order_totals
160- ->addFieldToSelect ('* ' )
161- ->addFieldToFilter ('customer_id ' , $ customer ->getId ())
162- ->addFieldToFilter ('status ' , Mage_Sales_Model_Order::STATE_COMPLETE )
163- ->addAttributeToSelect ('grand_total ' )
164- ->getColumnValues ('grand_total ' );
160+ ->addFieldToFilter ('customer_id ' , $ customer ->getId ())
161+ ->addFieldToFilter ('status ' , Mage_Sales_Model_Order::STATE_COMPLETE )
162+ ;
165163
166- $ sum = 0 ;
167- foreach ($ order_totals as $ total ) {
168- if (isset ($ total ['grand_total ' ]))
169- $ sum += (float )$ total ['grand_total ' ];
170- }
164+ $ order_totals ->getSelect ()
165+ ->reset (Zend_Db_Select::COLUMNS )
166+ ->columns (new Zend_Db_Expr ("SUM(grand_total) as total " ))
167+ ->columns (new Zend_Db_Expr ("AVG(grand_total) as avg_total " ))
168+ ->group ('customer_id ' )
169+ ;
170+
171+ $ sum = (float ) $ order_totals ->getFirstItem ()->getTotal ();
172+ $ avg = (float ) $ order_totals ->getFirstItem ()->getAvgTotal ();
171173
172174 $ lifetime_sale = Mage::helper ('core ' )->currency ($ sum , true , false );
173- $ average_sale = Mage::helper ('core ' )->currency ($ sum / ( count ( $ order_totals ) ?: 1 ) , true , false );
175+ $ average_sale = Mage::helper ('core ' )->currency ($ avg , true , false );
174176 }
175177
176178 $ info ['user ' ] = array (
0 commit comments