order_list.php

Go to the documentation of this file.
00001 <?php
00002 
00008 class Order_List extends oxAdminList
00009 {
00010 
00016     protected $_sListClass = 'oxorder';
00017 
00023     protected $_blDesc = true;
00024 
00030     protected $_sDefSortField = "oxorderdate";
00031 
00038     public function render()
00039     {
00040         parent::render();
00041 
00042         $aFolders = $this->getConfig()->getConfigParam('aOrderfolder');
00043         $sFolder = oxRegistry::getConfig()->getRequestParameter("folder");
00044         // first display new orders
00045         if (!$sFolder && is_array($aFolders)) {
00046             $aNames = array_keys($aFolders);
00047             $sFolder = $aNames[0];
00048         }
00049 
00050         $aSearch = array('oxorderarticles' => 'ARTID', 'oxpayments' => 'PAYMENT');
00051         $sSearch = oxRegistry::getConfig()->getRequestParameter("addsearch");
00052         $sSearchfld = oxRegistry::getConfig()->getRequestParameter("addsearchfld");
00053 
00054         $this->_aViewData["folder"] = $sFolder ? $sFolder : -1;
00055         $this->_aViewData["addsearchfld"] = $sSearchfld ? $sSearchfld : -1;
00056         $this->_aViewData["asearch"] = $aSearch;
00057         $this->_aViewData["addsearch"] = $sSearch;
00058         $this->_aViewData["afolder"] = $aFolders;
00059 
00060         return "order_list.tpl";
00061     }
00062 
00071     protected function _prepareWhereQuery($aWhere, $sqlFull)
00072     {
00073         $oDb = oxDb::getDb();
00074         $sQ = parent::_prepareWhereQuery($aWhere, $sqlFull);
00075         $myConfig = $this->getConfig();
00076         $aFolders = $myConfig->getConfigParam('aOrderfolder');
00077         $sFolder = oxRegistry::getConfig()->getRequestParameter('folder');
00078         //searchong for empty oxfolder fields
00079         if ($sFolder && $sFolder != '-1') {
00080             $sQ .= " and ( oxorder.oxfolder = " . $oDb->quote($sFolder) . " )";
00081         } elseif (!$sFolder && is_array($aFolders)) {
00082             $aFolderNames = array_keys($aFolders);
00083             $sQ .= " and ( oxorder.oxfolder = " . $oDb->quote($aFolderNames[0]) . " )";
00084         }
00085 
00086 
00087         return $sQ;
00088     }
00089 
00097     protected function _buildSelectString($oListObject = null)
00098     {
00099         $sSql = parent::_buildSelectString($oListObject);
00100         $oDb = oxDb::getDb();
00101 
00102         $sSearch = oxRegistry::getConfig()->getRequestParameter('addsearch');
00103         $sSearch = trim($sSearch);
00104         $sSearchField = oxRegistry::getConfig()->getRequestParameter('addsearchfld');
00105 
00106         if ($sSearch) {
00107             switch ($sSearchField) {
00108                 case 'oxorderarticles':
00109                     $sQ = "oxorder left join oxorderarticles on oxorderarticles.oxorderid=oxorder.oxid where ( oxorderarticles.oxartnum like " . $oDb->quote("%{$sSearch}%") . " or oxorderarticles.oxtitle like " . $oDb->quote("%{$sSearch}%") . " ) and ";
00110                     break;
00111                 case 'oxpayments':
00112                     $sQ = "oxorder left join oxpayments on oxpayments.oxid=oxorder.oxpaymenttype where oxpayments.oxdesc like " . $oDb->quote("%{$sSearch}%") . " and ";
00113                     break;
00114                 default:
00115                     $sQ = "oxorder where oxorder.oxpaid like " . $oDb->quote("%{$sSearch}%") . " and ";
00116                     break;
00117             }
00118             $sSql = str_replace('oxorder where', $sQ, $sSql);
00119         }
00120 
00121         return $sSql;
00122     }
00123 
00127     public function storno()
00128     {
00129         $oOrder = oxNew("oxorder");
00130         if ($oOrder->load($this->getEditObjectId())) {
00131             $oOrder->cancelOrder();
00132         }
00133 
00134 
00135         //we call init() here to load list items after sorno()
00136         $this->init();
00137     }
00138 
00144     public function getListSorting()
00145     {
00146         $aSorting = parent::getListSorting();
00147         if (isset($aSorting["oxorder"]["oxbilllname"])) {
00148             $this->_blDesc = false;
00149         }
00150 
00151         return $aSorting;
00152     }
00153 }