00001 <?php
00002
00003 require_once( 'oxerptype.php');
00004
00005 class oxERPType_OrderArticle extends oxERPType
00006 {
00007 protected $_aFieldListVersions = array(
00008 '1' => array(
00009 'OXID' => 'OXID',
00010 'OXORDERID' => 'OXORDERID',
00011 'OXAMOUNT' => 'OXAMOUNT',
00012 'OXARTID' => 'OXARTID',
00013 'OXARTNUM' => 'OXARTNUM',
00014 'OXTITLE' => 'OXTITLE',
00015 'OXSHORTDESC' => 'OXSHORTDESC',
00016 'OXSELVARIANT' => 'OXSELVARIANT',
00017 'OXNETPRICE' => 'OXNETPRICE',
00018 'OXBRUTPRICE' => 'OXBRUTPRICE',
00019 'OXVAT' => 'OXVAT',
00020 'OXPERSPARAM' => 'OXPERSPARAM',
00021 'OXPRICE' => 'OXPRICE',
00022 'OXBPRICE' => 'OXBPRICE',
00023 'OXTPRICE' => 'OXTPRICE',
00024 'OXWRAPID' => 'OXWRAPID',
00025 'OXEXTURL' => 'OXEXTURL',
00026 'OXURLDESC' => 'OXURLDESC',
00027 'OXURLIMG' => 'OXURLIMG',
00028 'OXTHUMB' => 'OXTHUMB',
00029 'OXPIC1' => 'OXPIC1',
00030 'OXPIC2' => 'OXPIC2',
00031 'OXPIC3' => 'OXPIC3',
00032 'OXPIC4' => 'OXPIC4',
00033 'OXPIC5' => 'OXPIC5',
00034 'OXWEIGHT' => 'OXWEIGHT',
00035 'OXSTOCK' => 'OXSTOCK',
00036 'OXDELIVERY' => 'OXDELIVERY',
00037 'OXINSERT' => 'OXINSERT',
00038 'OXTIMESTAMP' => 'OXTIMESTAMP',
00039 'OXLENGTH' => 'OXLENGTH',
00040 'OXWIDTH' => 'OXWIDTH',
00041 'OXHEIGHT' => 'OXHEIGHT',
00042 'OXAKTION' => 'OXAKTION',
00043 'OXFILE' => 'OXFILE',
00044 'OXSEARCHKEYS' => 'OXSEARCHKEYS',
00045 'OXTEMPLATE' => 'OXTEMPLATE',
00046 'OXQUESTIONEMAIL'=> 'OXQUESTIONEMAIL',
00047 'OXISSEARCH' => 'OXISSEARCH',
00048 'OXFOLDER' => 'OXFOLDER',
00049 'OXSUBCLASS' => 'OXSUBCLASS',
00050 'OXSTORNO' => 'OXSTORNO',
00051 'OXORDERSHOPID' => 'OXORDERSHOPID',
00052 'OXTOTALVAT' => 'OXTOTALVAT',
00053 'OXERPSTATUS' => 'OXERPSTATUS'
00054 ),
00055 '2' => array(
00056 'OXID' => 'OXID',
00057 'OXORDERID' => 'OXORDERID',
00058 'OXAMOUNT' => 'OXAMOUNT',
00059 'OXARTID' => 'OXARTID',
00060 'OXARTNUM' => 'OXARTNUM',
00061 'OXTITLE' => 'OXTITLE',
00062 'OXSHORTDESC' => 'OXSHORTDESC',
00063 'OXSELVARIANT' => 'OXSELVARIANT',
00064 'OXNETPRICE' => 'OXNETPRICE',
00065 'OXBRUTPRICE' => 'OXBRUTPRICE',
00066 'OXVATPRICE' => 'OXVATPRICE',
00067 'OXVAT' => 'OXVAT',
00068 'OXPERSPARAM' => 'OXPERSPARAM',
00069 'OXPRICE' => 'OXPRICE',
00070 'OXBPRICE' => 'OXBPRICE',
00071 'OXNPRICE' => 'OXNPRICE',
00072 'OXWRAPID' => 'OXWRAPID',
00073 'OXEXTURL' => 'OXEXTURL',
00074 'OXURLDESC' => 'OXURLDESC',
00075 'OXURLIMG' => 'OXURLIMG',
00076 'OXTHUMB' => 'OXTHUMB',
00077 'OXPIC1' => 'OXPIC1',
00078 'OXPIC2' => 'OXPIC2',
00079 'OXPIC3' => 'OXPIC3',
00080 'OXPIC4' => 'OXPIC4',
00081 'OXPIC5' => 'OXPIC5',
00082 'OXWEIGHT' => 'OXWEIGHT',
00083 'OXSTOCK' => 'OXSTOCK',
00084 'OXDELIVERY' => 'OXDELIVERY',
00085 'OXINSERT' => 'OXINSERT',
00086 'OXTIMESTAMP' => 'OXTIMESTAMP',
00087 'OXLENGTH' => 'OXLENGTH',
00088 'OXWIDTH' => 'OXWIDTH',
00089 'OXHEIGHT' => 'OXHEIGHT',
00090 'OXFILE' => 'OXFILE',
00091 'OXSEARCHKEYS' => 'OXSEARCHKEYS',
00092 'OXTEMPLATE' => 'OXTEMPLATE',
00093 'OXQUESTIONEMAIL' => 'OXQUESTIONEMAIL',
00094 'OXISSEARCH' => 'OXISSEARCH',
00095 'OXFOLDER' => 'OXFOLDER',
00096 'OXSUBCLASS' => 'OXSUBCLASS',
00097 'OXSTORNO' => 'OXSTORNO',
00098 'OXORDERSHOPID' => 'OXORDERSHOPID',
00099 'OXERPSTATUS' => 'OXERPSTATUS',
00100 ),
00101 );
00102
00103
00104 public function __construct()
00105 {
00106 parent::__construct();
00107
00108 $this->_sTableName = 'oxorderarticles';
00109 $this->_sShopObjectName = 'oxorderarticle';
00110 }
00111
00112 public function getSQL( $sWhere, $iLanguage = 0, $iShopID = 1)
00113 {
00114 if( strstr( $sWhere, 'where'))
00115 $sWhere .= ' and ';
00116 else
00117 $sWhere .= ' where ';
00118
00119 $sWhere .= 'oxordershopid = \''.$iShopID.'\'';
00120
00121 return parent::getSQL($sWhere, $iLanguage, $iShopID);
00122 }
00123
00124 public function checkWriteAccess($sOxid)
00125 {
00126 $myConfig = oxConfig::getInstance();
00127
00128 $oDB = oxDb::getDb();
00129
00130 $sSql = "select oxordershopid from ". $this->getTableName($myConfig->getShopId()) ." where oxid = '". $sOxid ."'";
00131 $sRes = $oDB->getOne($sSql);
00132
00133 if($sRes && $sRes != $myConfig->getShopId()){
00134 throw new Exception( oxERPBase::$ERROR_USER_NO_RIGHTS);
00135 }
00136 }
00137
00146 protected function getSqlFieldName($sField, $iLanguage = 0, $iShopID = 1)
00147 {
00148 if ('1' == oxERPBase::getUsedDbFieldsVersion()) {
00149 switch ($sField) {
00150 case 'OXTOTALVAT': {
00151
00152 return "round(OXVATPRICE * OXAMOUNT, 5) as OXTOTALVAT";
00153 }
00154 case 'OXTPRICE':
00155 case 'OXAKTION':
00156 return "'' as $sField";
00157 }
00158 }
00159 return parent::getSqlFieldName($sField, $iLanguage, $iShopID);
00160 }
00161
00167 public function addExportData($aFields)
00168 {
00169 if(isset($aFields['OXTOTALVAT'])){
00170
00171 $aFields['OXTOTALVAT'] = (double) $aFields['OXTOTALVAT'];
00172 }
00173
00174 if (strlen($aFields['OXPERSPARAM'])) {
00175 $aPersVals = @unserialize($aFields['OXPERSPARAM']);
00176 if (is_array($aPersVals)) {
00177 $aFields['OXPERSPARAM'] = implode('|', $aPersVals);
00178 }
00179 }
00180 return $aFields;
00181 }
00182
00183
00191 protected function _preAssignObject($oShopObject, $aData, $blAllowCustomShopId)
00192 {
00193 $aData = parent::_preAssignObject($oShopObject, $aData, $blAllowCustomShopId);
00194 if ('1' == oxERPBase::getUsedDbFieldsVersion()) {
00195 $oDb = oxDb::getDb();
00196 if ($aData['OXAMOUNT']) {
00197 $aData['OXVATPRICE'] = $aData['OXTOTALVAT'] / $aData['OXAMOUNT'];
00198 }
00199 }
00200
00201
00202
00203 $aPersVals = @unserialize($aData['OXPERSPARAM']);
00204 if (!is_array($aPersVals)) {
00205
00206 $aPersVals = explode("|", $aData['OXPERSPARAM']);
00207 $aData['OXPERSPARAM'] = serialize($aPersVals);
00208 }
00209
00210 return $aData;
00211 }
00212 }