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 }