00001 <?php 00002 00003 require_once( 'oxerptype.php'); 00004 00005 class oxERPType_OrderStatus extends oxERPType 00006 { 00007 public function __construct() 00008 { 00009 parent::__construct(); 00010 00011 $this->_sTableName = 'oxorderarticles'; 00012 00013 $this->_aFieldList = array( 00014 'OXID' => 'OXID', 00015 'OXERPSTATUS_STATUS' => 'OXERPSTATUS_STATUS', 00016 'OXERPSTATUS_TIME' => 'OXERPSTATUS_TIME', 00017 'OXERPSTATUS_TRACKID' => 'OXERPSTATUS_TRACKID' 00018 ); 00019 } 00020 00021 public function getSQL( $sWhere, $iLanguage = 0, $iShopID = 1) 00022 { 00023 if( strstr( $sWhere, 'where')) 00024 $sWhere .= ' and '; 00025 else 00026 $sWhere .= ' where '; 00027 00028 $sWhere .= 'oxordershopid = \''.$iShopID.'\''; 00029 00030 return parent::getSQL($sWhere, $iLanguage, $iShopID); 00031 } 00032 00033 public function checkWriteAccess($sOxid) 00034 { 00035 $myConfig = oxConfig::getInstance(); 00036 00037 $oDB = oxDb::getDb(); 00038 00039 $sSql = "select oxordershopid from ". $this->getTableName($myConfig->getShopId()) ." where oxid = '". $sOxid ."'"; 00040 $sRes = $oDB->getOne($sSql); 00041 00042 if($sRes && $sRes != $myConfig->getShopId()){ 00043 throw new Exception( oxERPBase::$ERROR_USER_NO_RIGHTS); 00044 } 00045 } 00046 00054 protected function _preAssignObject($oShopObject, $aData, $blAllowCustomShopId) 00055 { 00056 $aData = parent::_preAssignObject($oShopObject, $aData, $blAllowCustomShopId); 00057 if (isset($aData['OXERPSTATUS_STATUS']) 00058 && isset($aData['OXERPSTATUS_TIME']) 00059 && isset($aData['OXERPSTATUS_TRACKID'])) 00060 { 00061 $oStatus = new stdClass(); 00062 $oStatus->STATUS = $aData['OXERPSTATUS_STATUS']; 00063 $oStatus->date = $aData['OXERPSTATUS_TIME']; 00064 $oStatus->trackingid = $aData['OXERPSTATUS_TRACKID']; 00065 $aData['OXERPSTATUS'] = serialize( $oStatus ); 00066 } 00067 return $aData; 00068 } 00069 00075 public function addExportData( $aFields) 00076 { 00077 if ($aFields['OXERPSTATUS']) { 00078 $oStatus = @unserialize($aFields['OXERPSTATUS']); 00079 unset($aFields['OXERPSTATUS']); 00080 if (is_object($oStatus)) { 00081 $aFields['OXERPSTATUS_STATUS'] = $oStatus->STATUS; 00082 $aFields['OXERPSTATUS_TIME'] = $oStatus->date; 00083 $aFields['OXERPSTATUS_TRACKID'] = $oStatus->trackingid; 00084 } 00085 } 00086 return $aFields; 00087 } 00088 00089 00098 protected function getSqlFieldName($sField, $iLanguage = 0, $iShopID = 1) 00099 { 00100 switch ($sField) { 00101 case 'OXERPSTATUS_STATUS': 00102 return "(OXERPSTATUS) as OXERPSTATUS"; 00103 case 'OXERPSTATUS_TIME': 00104 case 'OXERPSTATUS_TRACKID': 00105 return "'' as $sField"; 00106 } 00107 00108 return parent::getSqlFieldName($sField, $iLanguage, $iShopID); 00109 } 00110 00111 00112 }