00001 <?php
00002
00003 require_once( 'oxerptype.php');
00004
00005 class oxERPType_Article extends oxERPType
00006 {
00007
00008 protected $_aFieldListVersions = array (
00009 '1' => array(
00010 'OXSHOPID' => 'OXSHOPID',
00011 'OXSHOPINCL' => 'OXSHOPINCL',
00012 'OXSHOPEXCL' => 'OXSHOPEXCL',
00013 'OXPARENTID' => 'OXPARENTID',
00014 'OXACTIV' => 'OXACTIV',
00015 'OXACTIVFROM' => 'OXACTIVFROM',
00016 'OXACTIVTO' => 'OXACTIVTO',
00017 'OXARTNUM' => 'OXARTNUM',
00018 'OXEAN' => 'OXEAN',
00019 'OXDISTEAN' => 'OXDISTEAN',
00020 'OXTITLE' => 'OXTITLE',
00021 'OXSHORTDESC' => 'OXSHORTDESC',
00022 'OXLONGDESC' => 'OXLONGDESC',
00023 'OXPRICE' => 'OXPRICE',
00024 'OXBLFIXEDPRICE' => 'OXBLFIXEDPRICE',
00025 'OXPRICEA' => 'OXPRICEA',
00026 'OXPRICEB' => 'OXPRICEB',
00027 'OXPRICEC' => 'OXPRICEC',
00028 'OXBPRICE' => 'OXBPRICE',
00029 'OXTPRICE' => 'OXTPRICE',
00030 'OXUNITNAME' => 'OXUNITNAME',
00031 'OXUNITQUANTITY' => 'OXUNITQUANTITY',
00032 'OXEXTURL' => 'OXEXTURL',
00033 'OXURLDESC' => 'OXURLDESC',
00034 'OXURLIMG' => 'OXURLIMG',
00035 'OXVAT' => 'OXVAT',
00036 'OXTHUMB' => 'OXTHUMB',
00037 'OXICON' => 'OXICON',
00038 'OXPIC1' => 'OXPIC1',
00039 'OXPIC2' => 'OXPIC2',
00040 'OXPIC3' => 'OXPIC3',
00041 'OXPIC4' => 'OXPIC4',
00042 'OXPIC5' => 'OXPIC5',
00043 'OXPIC6' => 'OXPIC6',
00044 'OXPIC7' => 'OXPIC7',
00045 'OXPIC8' => 'OXPIC8',
00046 'OXPIC9' => 'OXPIC9',
00047 'OXPIC10' => 'OXPIC10',
00048 'OXPIC11' => 'OXPIC11',
00049 'OXPIC12' => 'OXPIC12',
00050 'OXZOOM1' => 'OXZOOM1',
00051 'OXZOOM2' => 'OXZOOM2',
00052 'OXZOOM3' => 'OXZOOM3',
00053 'OXZOOM4' => 'OXZOOM4',
00054 'OXWEIGHT' => 'OXWEIGHT',
00055 'OXSTOCK' => 'OXSTOCK',
00056 'OXSTOCKFLAG' => 'OXSTOCKFLAG',
00057 'OXSTOCKTEXT' => 'OXSTOCKTEXT',
00058 'OXNOSTOCKTEXT' => 'OXNOSTOCKTEXT',
00059 'OXDELIVERY' => 'OXDELIVERY',
00060 'OXINSERT' => 'OXINSERT',
00061 'OXTIMESTAMP' => 'OXTIMESTAMP',
00062 'OXLENGTH' => 'OXLENGTH',
00063 'OXWIDTH' => 'OXWIDTH',
00064 'OXHEIGHT' => 'OXHEIGHT',
00065 'OXAKTION' => 'OXAKTION',
00066 'OXFILE' => 'OXFILE',
00067 'OXSEARCHKEYS' => 'OXSEARCHKEYS',
00068 'OXTEMPLATE' => 'OXTEMPLATE',
00069 'OXQUESTIONEMAIL'=> 'OXQUESTIONEMAIL',
00070 'OXISSEARCH' => 'OXISSEARCH',
00071 'OXVARNAME' => 'OXVARNAME',
00072 'OXVARSTOCK' => 'OXVARSTOCK',
00073 'OXVARCOUNT' => 'OXVARCOUNT',
00074 'OXVARSELECT' => 'OXVARSELECT',
00075 'OXVARNAME_1' => 'OXVARNAME_1',
00076 'OXVARSELECT_1' => 'OXVARSELECT_1',
00077 'OXVARNAME_2' =>'OXVARNAME_2',
00078 'OXVARSELECT_2' =>'OXVARSELECT_2',
00079 'OXVARNAME_3' =>'OXVARNAME_3',
00080 'OXVARSELECT_3' =>'OXVARSELECT_3',
00081 'OXTITLE_1' =>'OXTITLE_1',
00082 'OXSHORTDESC_1' =>'OXSHORTDESC_1',
00083 'OXLONGDESC_1' =>'OXLONGDESC_1',
00084 'OXURLDESC_1' =>'OXURLDESC_1',
00085 'OXSEARCHKEYS_1'=>'OXSEARCHKEYS_1',
00086 'OXTITLE_2' =>'OXTITLE_2',
00087 'OXSHORTDESC_2' =>'OXSHORTDESC_2',
00088 'OXLONGDESC_2' =>'OXLONGDESC_2',
00089 'OXURLDESC_2' =>'OXURLDESC_2',
00090 'OXSEARCHKEYS_2'=>'OXSEARCHKEYS_2',
00091 'OXTITLE_3' =>'OXTITLE_3',
00092 'OXSHORTDESC_3' =>'OXSHORTDESC_3',
00093 'OXLONGDESC_3' =>'OXLONGDESC_3',
00094 'OXURLDESC_3' =>'OXURLDESC_3',
00095 'OXSEARCHKEYS_3'=>'OXSEARCHKEYS_3',
00096 'OXFOLDER' =>'OXFOLDER',
00097 'OXSUBCLASS' =>'OXSUBCLASS',
00098 'OXSTOCKTEXT_1' =>'OXSTOCKTEXT_1',
00099 'OXSTOCKTEXT_2' =>'OXSTOCKTEXT_2',
00100 'OXSTOCKTEXT_3' =>'OXSTOCKTEXT_3',
00101 'OXNOSTOCKTEXT_1'=>'OXNOSTOCKTEXT_1',
00102 'OXNOSTOCKTEXT_2'=>'OXNOSTOCKTEXT_2',
00103 'OXNOSTOCKTEXT_3'=>'OXNOSTOCKTEXT_3',
00104 'OXSORT' => 'OXSORT',
00105 'OXSOLDAMOUNT' => 'OXSOLDAMOUNT',
00106 'OXNONMATERIAL' => 'OXNONMATERIAL',
00107 'OXFREESHIPPING' => 'OXFREESHIPPING',
00108 'OXREMINDACTIV' => 'OXREMINDACTIV',
00109 'OXREMINDAMOUNT' => 'OXREMINDAMOUNT',
00110 'OXAMITEMID' =>'OXAMITEMID',
00111 'OXAMTASKID' =>'OXAMTASKID',
00112 'OXVENDORID' =>'OXVENDORID',
00113 'OXSKIPDISCOUNTS'=> 'OXSKIPDISCOUNTS',
00114 'OXORDERINFO' =>'OXORDERINFO',
00115 'OXSEOID' =>'OXSEOID',
00116 'OXSEOID_1' =>'OXSEOID_1',
00117 'OXSEOID_2' =>'OXSEOID_2',
00118 'OXSEOID_3' =>'OXSEOID_3',
00119 'OXPIXIEXPORT' => 'OXPIXIEXPORT',
00120 'OXPIXIEXPORTED' => 'OXPIXIEXPORTED',
00121 'OXVPE' => 'OXVPE',
00122 'OXID' => 'OXID',
00123 ),
00124 '2' => array(
00125 'OXID' => 'OXID',
00126 'OXSHOPID' => 'OXSHOPID',
00127 'OXSHOPINCL' => 'OXSHOPINCL',
00128 'OXSHOPEXCL' => 'OXSHOPEXCL',
00129 'OXPARENTID' => 'OXPARENTID',
00130 'OXACTIVE' => 'OXACTIVE',
00131 'OXACTIVEFROM' => 'OXACTIVEFROM',
00132 'OXACTIVETO' => 'OXACTIVETO',
00133 'OXARTNUM' => 'OXARTNUM',
00134 'OXEAN' => 'OXEAN',
00135 'OXDISTEAN' => 'OXDISTEAN',
00136 'OXTITLE' => 'OXTITLE',
00137 'OXSHORTDESC' => 'OXSHORTDESC',
00138 'OXPRICE' => 'OXPRICE',
00139 'OXBLFIXEDPRICE' => 'OXBLFIXEDPRICE',
00140 'OXPRICEA' => 'OXPRICEA',
00141 'OXPRICEB' => 'OXPRICEB',
00142 'OXPRICEC' => 'OXPRICEC',
00143 'OXBPRICE' => 'OXBPRICE',
00144 'OXTPRICE' => 'OXTPRICE',
00145 'OXUNITNAME' => 'OXUNITNAME',
00146 'OXUNITQUANTITY' => 'OXUNITQUANTITY',
00147 'OXEXTURL' => 'OXEXTURL',
00148 'OXURLDESC' => 'OXURLDESC',
00149 'OXURLIMG' => 'OXURLIMG',
00150 'OXVAT' => 'OXVAT',
00151 'OXTHUMB' => 'OXTHUMB',
00152 'OXICON' => 'OXICON',
00153 'OXPIC1' => 'OXPIC1',
00154 'OXPIC2' => 'OXPIC2',
00155 'OXPIC3' => 'OXPIC3',
00156 'OXPIC4' => 'OXPIC4',
00157 'OXPIC5' => 'OXPIC5',
00158 'OXPIC6' => 'OXPIC6',
00159 'OXPIC7' => 'OXPIC7',
00160 'OXPIC8' => 'OXPIC8',
00161 'OXPIC9' => 'OXPIC9',
00162 'OXPIC10' => 'OXPIC10',
00163 'OXPIC11' => 'OXPIC11',
00164 'OXPIC12' => 'OXPIC12',
00165 'OXZOOM1' => 'OXZOOM1',
00166 'OXZOOM2' => 'OXZOOM2',
00167 'OXZOOM3' => 'OXZOOM3',
00168 'OXZOOM4' => 'OXZOOM4',
00169 'OXWEIGHT' => 'OXWEIGHT',
00170 'OXSTOCK' => 'OXSTOCK',
00171 'OXSTOCKFLAG' => 'OXSTOCKFLAG',
00172 'OXSTOCKTEXT' => 'OXSTOCKTEXT',
00173 'OXNOSTOCKTEXT' => 'OXNOSTOCKTEXT',
00174 'OXDELIVERY' => 'OXDELIVERY',
00175 'OXINSERT' => 'OXINSERT',
00176 'OXTIMESTAMP' => 'OXTIMESTAMP',
00177 'OXLENGTH' => 'OXLENGTH',
00178 'OXWIDTH' => 'OXWIDTH',
00179 'OXHEIGHT' => 'OXHEIGHT',
00180 'OXFILE' => 'OXFILE',
00181 'OXSEARCHKEYS' => 'OXSEARCHKEYS',
00182 'OXTEMPLATE' => 'OXTEMPLATE',
00183 'OXQUESTIONEMAIL' => 'OXQUESTIONEMAIL',
00184 'OXISSEARCH' => 'OXISSEARCH',
00185 'OXVARNAME' => 'OXVARNAME',
00186 'OXVARSTOCK' => 'OXVARSTOCK',
00187 'OXVARCOUNT' => 'OXVARCOUNT',
00188 'OXVARSELECT' => 'OXVARSELECT',
00189 'OXVARMINPRICE' => 'OXVARMINPRICE',
00190 'OXVARNAME_1' => 'OXVARNAME_1',
00191 'OXVARSELECT_1' => 'OXVARSELECT_1',
00192 'OXVARNAME_2' => 'OXVARNAME_2',
00193 'OXVARSELECT_2' => 'OXVARSELECT_2',
00194 'OXVARNAME_3' => 'OXVARNAME_3',
00195 'OXVARSELECT_3' => 'OXVARSELECT_3',
00196 'OXTITLE_1' => 'OXTITLE_1',
00197 'OXSHORTDESC_1' => 'OXSHORTDESC_1',
00198 'OXURLDESC_1' => 'OXURLDESC_1',
00199 'OXSEARCHKEYS_1' => 'OXSEARCHKEYS_1',
00200 'OXTITLE_2' => 'OXTITLE_2',
00201 'OXSHORTDESC_2' => 'OXSHORTDESC_2',
00202 'OXURLDESC_2' => 'OXURLDESC_2',
00203 'OXSEARCHKEYS_2' => 'OXSEARCHKEYS_2',
00204 'OXTITLE_3' => 'OXTITLE_3',
00205 'OXSHORTDESC_3' => 'OXSHORTDESC_3',
00206 'OXURLDESC_3' => 'OXURLDESC_3',
00207 'OXSEARCHKEYS_3' => 'OXSEARCHKEYS_3',
00208 'OXFOLDER' => 'OXFOLDER',
00209 'OXSUBCLASS' => 'OXSUBCLASS',
00210 'OXSTOCKTEXT_1' => 'OXSTOCKTEXT_1',
00211 'OXSTOCKTEXT_2' => 'OXSTOCKTEXT_2',
00212 'OXSTOCKTEXT_3' => 'OXSTOCKTEXT_3',
00213 'OXNOSTOCKTEXT_1' => 'OXNOSTOCKTEXT_1',
00214 'OXNOSTOCKTEXT_2' => 'OXNOSTOCKTEXT_2',
00215 'OXNOSTOCKTEXT_3' => 'OXNOSTOCKTEXT_3',
00216 'OXSORT' => 'OXSORT',
00217 'OXSOLDAMOUNT' => 'OXSOLDAMOUNT',
00218 'OXNONMATERIAL' => 'OXNONMATERIAL',
00219 'OXFREESHIPPING' => 'OXFREESHIPPING',
00220 'OXREMINDACTIV' => 'OXREMINDACTIV',
00221 'OXREMINDAMOUNT' => 'OXREMINDAMOUNT',
00222 'OXAMITEMID' => 'OXAMITEMID',
00223 'OXAMTASKID' => 'OXAMTASKID',
00224 'OXVENDORID' => 'OXVENDORID',
00225 'OXSKIPDISCOUNTS' => 'OXSKIPDISCOUNTS',
00226 'OXORDERINFO' => 'OXORDERINFO',
00227 'OXPIXIEXPORT' => 'OXPIXIEXPORT',
00228 'OXPIXIEXPORTED' => 'OXPIXIEXPORTED',
00229 'OXVPE' => 'OXVPE',
00230 'OXRATING' => 'OXRATING',
00231 'OXRATINGCNT' => 'OXRATINGCNT',
00232 'OXLONGDESC' => 'OXLONGDESC',
00233 'OXLONGDESC_1' => 'OXLONGDESC_1',
00234 'OXLONGDESC_2' => 'OXLONGDESC_2',
00235 'OXLONGDESC_3' => 'OXLONGDESC_3',
00236 ),
00237 );
00238 public function __construct()
00239 {
00240
00241 parent::__construct();
00242
00243 $this->_sTableName = 'oxarticles';
00244 $this->_sShopObjectName = 'oxarticle';
00245
00246 }
00247
00256 protected function getSqlFieldName($sField, $iLanguage = 0, $iShopID = 1)
00257 {
00258 switch ($sField) {
00259
00260 case 'OXLONGDESC':
00261 case 'OXLONGDESC_1':
00262 case 'OXLONGDESC_2':
00263 case 'OXLONGDESC_3':
00264
00265 return "(select $sField from oxartextends where ".$this->getTableName($iShopID).".oxid = oxartextends.oxid limit 1) as $sField";
00266 }
00267
00268 if ('1' == oxERPBase::getUsedDbFieldsVersion()) {
00269 switch ($sField) {
00270 case 'OXAKTION':
00271 case 'OXSEOID':
00272 case 'OXSEOID_1':
00273 case 'OXSEOID_2':
00274 case 'OXSEOID_3':
00275 return "'' as $sField";
00276 case 'OXACTIV':
00277 return "OXACTIVE as OXACTIV";
00278 case 'OXACTIVFROM':
00279 return "OXACTIVEFROM as OXACTIVFROM";
00280 case 'OXACTIVTO':
00281 return "OXACTIVETO as OXACTIVTO";
00282 }
00283 }
00284
00285 return parent::getSqlFieldName($sField, $iLanguage, $iShopID);
00286 }
00287
00297 protected function _preAssignObject($oShopObject, $aData, $blAllowCustomShopId)
00298 {
00299 $oCompat = oxNew('OXERPCompatability');
00300 if ( !$oCompat->isArticleNullLongDescComatable() ) {
00301
00302 $aLongDescriptionFields = array('OXLONGDESC_1','OXLONGDESC_2','OXLONGDESC_3');
00303
00304 foreach ($aLongDescriptionFields as $iKey => $sField){
00305 if( in_array($sField,$this->_aFieldList)){
00306 unset($aLongDescriptionFields[$iKey]);
00307 }
00308 }
00309
00310 if(count($aLongDescriptionFields)){
00311 $oArtExt = oxNew('oxbase');
00312 $oArtExt->init('oxartextends');
00313
00314 if( $oArtExt->load($aData['OXID']) ) {
00315 foreach ($aLongDescriptionFields as $sField) {
00316 $sFieldName = $oArtExt->getCoreTableName()."__".strtolower( $sField );
00317 $sLongDesc = null;
00318
00319 if ($oArtExt->$sFieldName instanceof oxField) {
00320 $sLongDesc = $oArtExt->$sFieldName->getRawValue();
00321 } elseif (is_object($oArtExt->$sFieldName)) {
00322 $sLongDesc = $oArtExt->$sFieldName->value;
00323 }
00324
00325 if ( isset($sLongDesc) ) {
00326 $aData[$sField] = $sLongDesc;
00327 }
00328 }
00329 }
00330 }
00331 }
00332
00333 return parent::_preAssignObject($oShopObject, $aData, $blAllowCustomShopId);
00334 }
00335 }