oxerptype_orderstatus.php

Go to the documentation of this file.
00001 <?php
00002 
00003 require_once 'oxerptype.php';
00004 
00008 class oxERPType_OrderStatus extends oxERPType
00009 {
00015     public function __construct()
00016     {
00017         parent::__construct();
00018 
00019         $this->_sTableName = 'oxorderarticles';
00020 
00021         $this->_aFieldList = array(
00022             'OXID'          => 'OXID',
00023             'OXERPSTATUS_STATUS'   => 'OXERPSTATUS_STATUS',
00024             'OXERPSTATUS_TIME'     => 'OXERPSTATUS_TIME',
00025             'OXERPSTATUS_TRACKID'  => 'OXERPSTATUS_TRACKID'
00026         );
00027     }
00028 
00038     public function getSQL( $sWhere, $iLanguage = 0, $iShopID = 1)
00039     {
00040         $oStr = getStr();
00041         if ( $oStr->strstr( $sWhere, 'where' ) ) {
00042             $sWhere .= ' and ';
00043         } else {
00044             $sWhere .= ' where ';
00045         }
00046 
00047         $sWhere .= 'oxordershopid = \''.$iShopID.'\'';
00048         return parent::getSQL( $sWhere, $iLanguage, $iShopID );
00049     }
00050 
00058     public function checkWriteAccess($sOxid)
00059     {
00060         $myConfig = oxConfig::getInstance();
00061 
00062         $oDB = oxDb::getDb();
00063 
00064         $sSql = "select oxordershopid from ". $this->getTableName($myConfig->getShopId()) ." where oxid = ".$oDB->quote( $sOxid );
00065         $sRes = $oDB->getOne($sSql);
00066 
00067         if ( $sRes && $sRes != $myConfig->getShopId() ) {
00068             throw new Exception( oxERPBase::$ERROR_USER_NO_RIGHTS);
00069         }
00070     }
00071 
00081     protected function _preAssignObject($oShopObject, $aData, $blAllowCustomShopId)
00082     {
00083         $aData = parent::_preAssignObject($oShopObject, $aData, $blAllowCustomShopId);
00084         if ( isset($aData['OXERPSTATUS_STATUS'] )
00085             && isset($aData['OXERPSTATUS_TIME'] )
00086             && isset($aData['OXERPSTATUS_TRACKID'] ) ) {
00087             $oStatus = new stdClass();
00088             $oStatus->STATUS        = $aData['OXERPSTATUS_STATUS'];
00089             $oStatus->date          = $aData['OXERPSTATUS_TIME'];
00090             $oStatus->trackingid    = $aData['OXERPSTATUS_TRACKID'];
00091             $aData['OXERPSTATUS']   = serialize( $oStatus );
00092         }
00093         return $aData;
00094     }
00095 
00103     public function addExportData( $aFields)
00104     {
00105         if ($aFields['OXERPSTATUS']) {
00106             $oStatus = @unserialize($aFields['OXERPSTATUS']);
00107             unset($aFields['OXERPSTATUS']);
00108             if (is_object($oStatus)) {
00109                 $aFields['OXERPSTATUS_STATUS']  = $oStatus->STATUS;
00110                 $aFields['OXERPSTATUS_TIME']    = $oStatus->date;
00111                 $aFields['OXERPSTATUS_TRACKID'] = $oStatus->trackingid;
00112             }
00113         }
00114         return $aFields;
00115     }
00116 
00117 
00127     protected function getSqlFieldName($sField, $iLanguage = 0, $iShopID = 1)
00128     {
00129         switch ($sField) {
00130             case 'OXERPSTATUS_STATUS':
00131                 return "(OXERPSTATUS) as OXERPSTATUS";
00132                 break;
00133             case 'OXERPSTATUS_TIME':
00134             case 'OXERPSTATUS_TRACKID':
00135                 return "'' as $sField";
00136                 break;
00137         }
00138 
00139         return parent::getSqlFieldName($sField, $iLanguage, $iShopID);
00140     }
00141 
00142 
00143 }