list_order.php

Go to the documentation of this file.
00001 <?php
00002 
00006 class List_Order extends Order_List
00007 {
00013     protected $_blDesc = false;
00014 
00020     public function getListSorting()
00021     {
00022         $aSort = oxConfig::getParameter( 'sort' );
00023         if ( $this->_aCurrSorting === null && isset( $aSort[0]['oxorderdate'] ) ) {
00024             $this->_aCurrSorting[]["max(oxorder.oxorderdate)"] = "desc";
00025             return $this->_aCurrSorting;
00026         } else {
00027             return parent::getListSorting();
00028         }
00029     }
00030 
00036     protected function _getViewListSize()
00037     {
00038         return $this->_getUserDefListSize();
00039     }
00040 
00047     public function render()
00048     {
00049         oxAdminList::render();
00050 
00051         $this->_aViewData["menustructure"] = $this->getNavigation()->getDomXml()->documentElement->childNodes;
00052 
00053         return "list_order.tpl";
00054     }
00055 
00056 
00065     public function _prepareWhereQuery( $aWhere, $sqlFull )
00066     {
00067         $sQ  = oxAdminList::_prepareWhereQuery( $aWhere, $sqlFull );
00068         $sQ .= " group by oxorderarticles.oxartnum";
00069         return $sQ;
00070     }
00071 
00079     protected function _calcListItemsCount( $sSql )
00080     {
00081         $oStr = getStr();
00082 
00083         // count SQL
00084         $sSql = $oStr->preg_replace( '/select .* from/', 'select count(*) from ', $sSql );
00085 
00086         // removing order by
00087         $sSql = $oStr->preg_replace( '/order by .*$/', '', $sSql );
00088 
00089         // con of list items which fits current search conditions
00090         $this->_iListSize = oxDb::getDb()->getOne( "select count(*) from ( $sSql ) as test", false, false );
00091 
00092         // set it into session that other frames know about size of DB
00093         oxSession::setVar( 'iArtCnt', $this->_iListSize );
00094     }
00095 
00103     protected function _buildSelectString( $oObject = null )
00104     {
00105         return 'select oxorderarticles.oxid, oxorder.oxid as oxorderid, max(oxorder.oxorderdate) as oxorderdate, oxorderarticles.oxartnum, sum( oxorderarticles.oxamount ) as oxorderamount, oxorderarticles.oxtitle, round( sum(oxorderarticles.oxbrutprice*oxorder.oxcurrate),2) as oxprice from oxorderarticles left join oxorder on oxorder.oxid=oxorderarticles.oxorderid where 1 ';
00106     }
00107 
00115     protected function _prepareOrderByQuery( $sSql = null )
00116     {
00117         // calculating sum
00118         $sSumQ = getStr()->preg_replace( array( "/select .*? from/", "/group by oxorderarticles.oxartnum/" ), array( "select round( sum(oxorderarticles.oxbrutprice*oxorder.oxcurrate),2) from", "" ), $sSql );
00119         $this->_aViewData["sumresult"] = oxDb::getDb()->getOne( $sSumQ, false, false );
00120         return parent::_prepareOrderByQuery( $sSql );
00121     }
00122 }