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 if ( strstr( $sWhere, 'where' ) ) { 00041 $sWhere .= ' and '; 00042 } else { 00043 $sWhere .= ' where '; 00044 } 00045 00046 $sWhere .= 'oxordershopid = \''.$iShopID.'\''; 00047 return parent::getSQL( $sWhere, $iLanguage, $iShopID ); 00048 } 00049 00057 public function checkWriteAccess($sOxid) 00058 { 00059 $myConfig = oxConfig::getInstance(); 00060 00061 $oDB = oxDb::getDb(); 00062 00063 $sSql = "select oxordershopid from ". $this->getTableName($myConfig->getShopId()) ." where oxid = '". $sOxid ."'"; 00064 $sRes = $oDB->getOne($sSql); 00065 00066 if ( $sRes && $sRes != $myConfig->getShopId() ) { 00067 throw new Exception( oxERPBase::$ERROR_USER_NO_RIGHTS); 00068 } 00069 } 00070 00080 protected function _preAssignObject($oShopObject, $aData, $blAllowCustomShopId) 00081 { 00082 $aData = parent::_preAssignObject($oShopObject, $aData, $blAllowCustomShopId); 00083 if ( isset($aData['OXERPSTATUS_STATUS'] ) 00084 && isset($aData['OXERPSTATUS_TIME'] ) 00085 && isset($aData['OXERPSTATUS_TRACKID'] ) ) { 00086 $oStatus = new stdClass(); 00087 $oStatus->STATUS = $aData['OXERPSTATUS_STATUS']; 00088 $oStatus->date = $aData['OXERPSTATUS_TIME']; 00089 $oStatus->trackingid = $aData['OXERPSTATUS_TRACKID']; 00090 $aData['OXERPSTATUS'] = serialize( $oStatus ); 00091 } 00092 return $aData; 00093 } 00094 00102 public function addExportData( $aFields) 00103 { 00104 if ($aFields['OXERPSTATUS']) { 00105 $oStatus = @unserialize($aFields['OXERPSTATUS']); 00106 unset($aFields['OXERPSTATUS']); 00107 if (is_object($oStatus)) { 00108 $aFields['OXERPSTATUS_STATUS'] = $oStatus->STATUS; 00109 $aFields['OXERPSTATUS_TIME'] = $oStatus->date; 00110 $aFields['OXERPSTATUS_TRACKID'] = $oStatus->trackingid; 00111 } 00112 } 00113 return $aFields; 00114 } 00115 00116 00126 protected function getSqlFieldName($sField, $iLanguage = 0, $iShopID = 1) 00127 { 00128 switch ($sField) { 00129 case 'OXERPSTATUS_STATUS': 00130 return "(OXERPSTATUS) as OXERPSTATUS"; 00131 case 'OXERPSTATUS_TIME': 00132 case 'OXERPSTATUS_TRACKID': 00133 return "'' as $sField"; 00134 } 00135 00136 return parent::getSqlFieldName($sField, $iLanguage, $iShopID); 00137 } 00138 00139 00140 }