00001 <?php
00002
00003 require_once( 'oxerptype.php');
00004
00005
00006 class oxERPType_Order extends oxERPType
00007 {
00008 protected $_aFieldListVersions = array(
00009 '1' => array(
00010 'OXID' => 'OXID',
00011 'OXSHOPID' => 'OXSHOPID',
00012 'OXUSERID' => 'OXUSERID',
00013 'OXORDERDATE' => 'OXORDERDATE',
00014 'OXORDERNR' => 'OXORDERNR',
00015 'OXBILLCOMPANY' => 'OXBILLCOMPANY',
00016 'OXBILLEMAIL' => 'OXBILLEMAIL',
00017 'OXBILLFNAME' => 'OXBILLFNAME',
00018 'OXBILLLNAME' => 'OXBILLLNAME',
00019 'OXBILLSTREET' => 'OXBILLSTREET',
00020 'OXBILLSTREETNR' => 'OXBILLSTREETNR',
00021 'OXBILLADDINFO' => 'OXBILLADDINFO',
00022 'OXBILLUSTID' => 'OXBILLUSTID',
00023 'OXBILLCITY' => 'OXBILLCITY',
00024 'OXBILLCOUNTRY' => 'OXBILLCOUNTRY',
00025 'OXBILLZIP' => 'OXBILLZIP',
00026 'OXBILLFON' => 'OXBILLFON',
00027 'OXBILLFAX' => 'OXBILLFAX',
00028 'OXBILLSAL' => 'OXBILLSAL',
00029 'OXDELCOMPANY' => 'OXDELCOMPANY',
00030 'OXDELFNAME' => 'OXDELFNAME',
00031 'OXDELLNAME' => 'OXDELLNAME',
00032 'OXDELSTREET' => 'OXDELSTREET',
00033 'OXDELSTREETNR' => 'OXDELSTREETNR',
00034 'OXDELADDINFO' => 'OXDELADDINFO',
00035 'OXDELCITY' => 'OXDELCITY',
00036 'OXDELCOUNTRY' => 'OXDELCOUNTRY',
00037 'OXDELZIP' => 'OXDELZIP',
00038 'OXDELFON' => 'OXDELFON',
00039 'OXDELFAX' => 'OXDELFAX',
00040 'OXDELSAL' => 'OXDELSAL',
00041 'OXPAYMENTID' => 'OXPAYMENTID',
00042 'OXPAYMENTTYPE' => 'OXPAYMENTTYPE',
00043 'OXDELCOST' => 'OXDELCOST',
00044 'OXDELVAT' => 'OXDELVAT',
00045 'OXPAYCOST' => 'OXPAYCOST',
00046 'OXPAYVAT' => 'OXPAYVAT',
00047 'OXWRAPCOST' => 'OXWRAPCOST',
00048 'OXWRAPVAT' => 'OXWRAPVAT',
00049 'OXCARDID' => 'OXCARDID',
00050 'OXCARDTEXT' => 'OXCARDTEXT',
00051 'OXDISCOUNT' => 'OXDISCOUNT',
00052 'OXEXPORT' => 'OXEXPORT',
00053 'OXBILLNR' => 'OXBILLNR',
00054 'OXTRACKCODE' => 'OXTRACKCODE',
00055 'OXSENDDATE' => 'OXSENDDATE',
00056 'OXREMARK' => 'OXREMARK',
00057 'OXVOUCHERDISCOUNT' => 'OXVOUCHERDISCOUNT',
00058 'OXCURRENCY' => 'OXCURRENCY',
00059 'OXCURRATE' => 'OXCURRATE',
00060 'OXFOLDER' => 'OXFOLDER',
00061 'OXPIDENT' => 'OXPIDENT',
00062 'OXTRANSID' => 'OXTRANSID',
00063 'OXPAYID' => 'OXPAYID',
00064 'OXXID' => 'OXXID',
00065 'OXPAID' => 'OXPAID',
00066 'OXSTORNO' => 'OXSTORNO',
00067 'OXIP' => 'OXIP',
00068 'OXTRANSSTATUS' => 'OXTRANSSTATUS',
00069 'OXLANG' => 'OXLANG',
00070 'OXINVOICENR' => 'OXINVOICENR',
00071 'OXPHAPPROVED' => 'OXPHAPPROVED',
00072 'OXPHISPHORDER' => 'OXPHISPHORDER',
00073 'OXDELTYPE' => 'OXDELTYPE',
00074 'OXPIXIEXPORT' => 'OXPIXIEXPORT',
00075 ),
00076 '2' => array(
00077 'OXID' => 'OXID',
00078 'OXSHOPID' => 'OXSHOPID',
00079 'OXUSERID' => 'OXUSERID',
00080 'OXORDERDATE' => 'OXORDERDATE',
00081 'OXORDERNR' => 'OXORDERNR',
00082 'OXBILLCOMPANY' => 'OXBILLCOMPANY',
00083 'OXBILLEMAIL' => 'OXBILLEMAIL',
00084 'OXBILLFNAME' => 'OXBILLFNAME',
00085 'OXBILLLNAME' => 'OXBILLLNAME',
00086 'OXBILLSTREET' => 'OXBILLSTREET',
00087 'OXBILLSTREETNR' => 'OXBILLSTREETNR',
00088 'OXBILLADDINFO' => 'OXBILLADDINFO',
00089 'OXBILLUSTID' => 'OXBILLUSTID',
00090 'OXBILLUSTIDSTATUS' => 'OXBILLUSTIDSTATUS',
00091 'OXBILLCITY' => 'OXBILLCITY',
00092 'OXBILLCOUNTRYID' => 'OXBILLCOUNTRYID',
00093 'OXBILLZIP' => 'OXBILLZIP',
00094 'OXBILLFON' => 'OXBILLFON',
00095 'OXBILLFAX' => 'OXBILLFAX',
00096 'OXBILLSAL' => 'OXBILLSAL',
00097 'OXDELCOMPANY' => 'OXDELCOMPANY',
00098 'OXDELFNAME' => 'OXDELFNAME',
00099 'OXDELLNAME' => 'OXDELLNAME',
00100 'OXDELSTREET' => 'OXDELSTREET',
00101 'OXDELSTREETNR' => 'OXDELSTREETNR',
00102 'OXDELADDINFO' => 'OXDELADDINFO',
00103 'OXDELCITY' => 'OXDELCITY',
00104 'OXDELCOUNTRYID' => 'OXDELCOUNTRYID',
00105 'OXDELZIP' => 'OXDELZIP',
00106 'OXDELFON' => 'OXDELFON',
00107 'OXDELFAX' => 'OXDELFAX',
00108 'OXDELSAL' => 'OXDELSAL',
00109 'OXPAYMENTID' => 'OXPAYMENTID',
00110 'OXPAYMENTTYPE' => 'OXPAYMENTTYPE',
00111 'OXTOTALNETSUM' => 'OXTOTALNETSUM',
00112 'OXTOTALBRUTSUM' => 'OXTOTALBRUTSUM',
00113 'OXTOTALORDERSUM' => 'OXTOTALORDERSUM',
00114 'OXDELCOST' => 'OXDELCOST',
00115 'OXDELVAT' => 'OXDELVAT',
00116 'OXPAYCOST' => 'OXPAYCOST',
00117 'OXPAYVAT' => 'OXPAYVAT',
00118 'OXWRAPCOST' => 'OXWRAPCOST',
00119 'OXWRAPVAT' => 'OXWRAPVAT',
00120 'OXCARDID' => 'OXCARDID',
00121 'OXCARDTEXT' => 'OXCARDTEXT',
00122 'OXDISCOUNT' => 'OXDISCOUNT',
00123 'OXEXPORT' => 'OXEXPORT',
00124 'OXBILLNR' => 'OXBILLNR',
00125 'OXTRACKCODE' => 'OXTRACKCODE',
00126 'OXSENDDATE' => 'OXSENDDATE',
00127 'OXREMARK' => 'OXREMARK',
00128 'OXVOUCHERDISCOUNT' => 'OXVOUCHERDISCOUNT',
00129 'OXCURRENCY' => 'OXCURRENCY',
00130 'OXCURRATE' => 'OXCURRATE',
00131 'OXFOLDER' => 'OXFOLDER',
00132 'OXPIDENT' => 'OXPIDENT',
00133 'OXTRANSID' => 'OXTRANSID',
00134 'OXPAYID' => 'OXPAYID',
00135 'OXXID' => 'OXXID',
00136 'OXPAID' => 'OXPAID',
00137 'OXSTORNO' => 'OXSTORNO',
00138 'OXIP' => 'OXIP',
00139 'OXTRANSSTATUS' => 'OXTRANSSTATUS',
00140 'OXLANG' => 'OXLANG',
00141 'OXINVOICENR' => 'OXINVOICENR',
00142 'OXDELTYPE' => 'OXDELTYPE',
00143 'OXPIXIEXPORT' => 'OXPIXIEXPORT',
00144 ),
00145 );
00146
00147
00148 public function __construct()
00149 {
00150 parent::__construct();
00151
00152 $this->_sTableName = 'oxorder';
00153 $this->_sShopObjectName = 'oxorder';
00154 $this->_blRestrictedByShopId = true;
00155 }
00156
00165 protected function getSqlFieldName($sField, $iLanguage = 0, $iShopID = 1)
00166 {
00167 if ('1' == oxERPBase::getUsedDbFieldsVersion()) {
00168 switch ($sField) {
00169 case 'OXBILLCOUNTRY':
00170 return "(select oxtitle from oxcountry where oxcountry.oxid = OXBILLCOUNTRYID limit 1) as OXBILLCOUNTRY";
00171 case 'OXDELCOUNTRY':
00172 return "(select oxtitle from oxcountry where oxcountry.oxid = OXDELCOUNTRYID limit 1) as OXDELCOUNTRY";
00173 case 'OXPHAPPROVED':
00174 case 'OXPHISPHORDER':
00175 return "'' as $sField";
00176 }
00177 }
00178 return parent::getSqlFieldName($sField, $iLanguage, $iShopID);
00179 }
00180
00188 protected function _preAssignObject($oShopObject, $aData, $blAllowCustomShopId)
00189 {
00190 $aData = parent::_preAssignObject($oShopObject, $aData, $blAllowCustomShopId);
00191
00192 if ('1' == oxERPBase::getUsedDbFieldsVersion()) {
00193 $oDb = oxDb::getDb();
00194 $sTitle = mysql_real_escape_string($aData['OXBILLCOUNTRY']);
00195 if ($id = $oDb->getOne("select oxid from oxcountry where oxtitle = '$sTitle' limit 1")) {
00196 $aData['OXBILLCOUNTRYID'] = $id;
00197 }
00198 $sTitle = mysql_real_escape_string($aData['OXDELCOUNTRY']);
00199 if ($id = $oDb->getOne("select oxid from oxcountry where oxtitle = '$sTitle' limit 1")) {
00200 $aData['OXDELCOUNTRYID'] = $id;
00201 }
00202 }
00203 return $aData;
00204 }
00205
00213 protected function _postSaveObject($oShopObject, $aData)
00214 {
00215 if ('1' == oxERPBase::getRequestedVersion()) {
00216 if (!$aData['OXORDERNR']) {
00217
00218 if ($sOxid = $oShopObject->getId()) {
00219 oxDb::getDb()->Execute("update oxorder set oxordernr=0 where oxid='$sOxid' limit 1");
00220 }
00221 }
00222 }elseif ('1.1' == oxERPBase::getRequestedVersion()) {
00223 return array('OXID'=>$oShopObject->getId(), 'OXORDERNR'=>$oShopObject->oxorder__oxordernr->value);
00224 }
00225 return parent::_postSaveObject($oShopObject, $aData);
00226 }
00227 }