oxerptype_orderarticle.php

Go to the documentation of this file.
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', //that value is a array, therefore it can be added in the way val1,val2 etc. (its written serialized in the db)
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                     // We need to round this value here
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             // And we need to cast this value here, to remove trailing zeroes added after mysql round
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         // check if data is not serialized
00203         $aPersVals = @unserialize($aData['OXPERSPARAM']);
00204         if (!is_array($aPersVals)) {
00205             // data is a string with | separation, prepare for oxid
00206             $aPersVals = explode("|",  $aData['OXPERSPARAM']);
00207             $aData['OXPERSPARAM'] = serialize($aPersVals);
00208         }
00209 
00210         return $aData;
00211     }
00212 }

Generated on Tue Apr 21 15:45:44 2009 for OXID eShop CE by  doxygen 1.5.5