oxerptype_order.php

Go to the documentation of this file.
00001 <?php
00002 
00003 require_once 'oxerptype.php';
00004 
00008 class oxERPType_Order extends oxERPType
00009 {
00014     protected $_aFieldListVersions = array(
00015         '1' => array(
00016             'OXID'           => 'OXID',
00017             'OXSHOPID'       => 'OXSHOPID',
00018             'OXUSERID'       => 'OXUSERID',
00019             'OXORDERDATE'    => 'OXORDERDATE', //always now()
00020             'OXORDERNR'      => 'OXORDERNR',
00021             'OXBILLCOMPANY'  => 'OXBILLCOMPANY',
00022             'OXBILLEMAIL'    => 'OXBILLEMAIL',
00023             'OXBILLFNAME'    => 'OXBILLFNAME',
00024             'OXBILLLNAME'    => 'OXBILLLNAME',
00025             'OXBILLSTREET'   => 'OXBILLSTREET',
00026             'OXBILLSTREETNR' => 'OXBILLSTREETNR',
00027             'OXBILLADDINFO'  => 'OXBILLADDINFO',
00028             'OXBILLUSTID'    => 'OXBILLUSTID',
00029             'OXBILLCITY'     => 'OXBILLCITY',
00030             'OXBILLCOUNTRY'  => 'OXBILLCOUNTRY',
00031             'OXBILLZIP'      => 'OXBILLZIP',
00032             'OXBILLFON'      => 'OXBILLFON',
00033             'OXBILLFAX'      => 'OXBILLFAX',
00034             'OXBILLSAL'      => 'OXBILLSAL',
00035             'OXDELCOMPANY'   => 'OXDELCOMPANY',
00036             'OXDELFNAME'     => 'OXDELFNAME',
00037             'OXDELLNAME'     => 'OXDELLNAME',
00038             'OXDELSTREET'    => 'OXDELSTREET',
00039             'OXDELSTREETNR'  => 'OXDELSTREETNR',
00040             'OXDELADDINFO'   => 'OXDELADDINFO',
00041             'OXDELCITY'      => 'OXDELCITY',
00042             'OXDELCOUNTRY'   => 'OXDELCOUNTRY',
00043             'OXDELZIP'       => 'OXDELZIP',
00044             'OXDELFON'       => 'OXDELFON',
00045             'OXDELFAX'       => 'OXDELFAX',
00046             'OXDELSAL'       => 'OXDELSAL',
00047             'OXPAYMENTID'    => 'OXPAYMENTID',
00048             'OXPAYMENTTYPE'  => 'OXPAYMENTTYPE',
00049             'OXDELCOST'      => 'OXDELCOST',
00050             'OXDELVAT'       => 'OXDELVAT',
00051             'OXPAYCOST'      => 'OXPAYCOST',
00052             'OXPAYVAT'       => 'OXPAYVAT',
00053             'OXWRAPCOST'     => 'OXWRAPCOST',
00054             'OXWRAPVAT'      => 'OXWRAPVAT',
00055             'OXCARDID'       => 'OXCARDID',
00056             'OXCARDTEXT'     => 'OXCARDTEXT',
00057             'OXDISCOUNT'     => 'OXDISCOUNT',
00058             'OXEXPORT'       => 'OXEXPORT',
00059             'OXBILLNR'       => 'OXBILLNR',
00060             'OXTRACKCODE'    => 'OXTRACKCODE',
00061             'OXSENDDATE'     => 'OXSENDDATE',
00062             'OXREMARK'       => 'OXREMARK',
00063             'OXVOUCHERDISCOUNT'      => 'OXVOUCHERDISCOUNT',
00064             'OXCURRENCY'     => 'OXCURRENCY',
00065             'OXCURRATE'      => 'OXCURRATE',
00066             'OXFOLDER'       => 'OXFOLDER', //also not possible to set from external
00067             'OXPIDENT'       => 'OXPIDENT',
00068             'OXTRANSID'      => 'OXTRANSID',
00069             'OXPAYID'        => 'OXPAYID',
00070             'OXXID'          => 'OXXID',
00071             'OXPAID'         => 'OXPAID',
00072             'OXSTORNO'       => 'OXSTORNO',
00073             'OXIP'           => 'OXIP',
00074             'OXTRANSSTATUS'  => 'OXTRANSSTATUS',
00075             'OXLANG'         => 'OXLANG',
00076             'OXINVOICENR'    => 'OXINVOICENR',
00077             'OXPHAPPROVED'   => 'OXPHAPPROVED',
00078             'OXPHISPHORDER'  => 'OXPHISPHORDER',
00079             'OXDELTYPE'      => 'OXDELTYPE',
00080             'OXPIXIEXPORT'   => 'OXPIXIEXPORT',
00081         ),
00082         '2' => array(
00083             'OXID' => 'OXID',
00084             'OXSHOPID' => 'OXSHOPID',
00085             'OXUSERID' => 'OXUSERID',
00086             'OXORDERDATE' => 'OXORDERDATE',
00087             'OXORDERNR' => 'OXORDERNR',
00088             'OXBILLCOMPANY' => 'OXBILLCOMPANY',
00089             'OXBILLEMAIL' => 'OXBILLEMAIL',
00090             'OXBILLFNAME' => 'OXBILLFNAME',
00091             'OXBILLLNAME' => 'OXBILLLNAME',
00092             'OXBILLSTREET' => 'OXBILLSTREET',
00093             'OXBILLSTREETNR' => 'OXBILLSTREETNR',
00094             'OXBILLADDINFO' => 'OXBILLADDINFO',
00095             'OXBILLUSTID' => 'OXBILLUSTID',
00096             'OXBILLUSTIDSTATUS' => 'OXBILLUSTIDSTATUS',
00097             'OXBILLCITY' => 'OXBILLCITY',
00098             'OXBILLCOUNTRYID' => 'OXBILLCOUNTRYID',
00099             'OXBILLZIP' => 'OXBILLZIP',
00100             'OXBILLFON' => 'OXBILLFON',
00101             'OXBILLFAX' => 'OXBILLFAX',
00102             'OXBILLSAL' => 'OXBILLSAL',
00103             'OXDELCOMPANY' => 'OXDELCOMPANY',
00104             'OXDELFNAME' => 'OXDELFNAME',
00105             'OXDELLNAME' => 'OXDELLNAME',
00106             'OXDELSTREET' => 'OXDELSTREET',
00107             'OXDELSTREETNR' => 'OXDELSTREETNR',
00108             'OXDELADDINFO' => 'OXDELADDINFO',
00109             'OXDELCITY' => 'OXDELCITY',
00110             'OXDELCOUNTRYID' => 'OXDELCOUNTRYID',
00111             'OXDELZIP' => 'OXDELZIP',
00112             'OXDELFON' => 'OXDELFON',
00113             'OXDELFAX' => 'OXDELFAX',
00114             'OXDELSAL' => 'OXDELSAL',
00115             'OXPAYMENTID' => 'OXPAYMENTID',
00116             'OXPAYMENTTYPE' => 'OXPAYMENTTYPE',
00117             'OXTOTALNETSUM' => 'OXTOTALNETSUM',
00118             'OXTOTALBRUTSUM' => 'OXTOTALBRUTSUM',
00119             'OXTOTALORDERSUM' => 'OXTOTALORDERSUM',
00120             'OXDELCOST' => 'OXDELCOST',
00121             'OXDELVAT' => 'OXDELVAT',
00122             'OXPAYCOST' => 'OXPAYCOST',
00123             'OXPAYVAT' => 'OXPAYVAT',
00124             'OXWRAPCOST' => 'OXWRAPCOST',
00125             'OXWRAPVAT' => 'OXWRAPVAT',
00126             'OXCARDID' => 'OXCARDID',
00127             'OXCARDTEXT' => 'OXCARDTEXT',
00128             'OXDISCOUNT' => 'OXDISCOUNT',
00129             'OXEXPORT' => 'OXEXPORT',
00130             'OXBILLNR' => 'OXBILLNR',
00131             'OXTRACKCODE' => 'OXTRACKCODE',
00132             'OXSENDDATE' => 'OXSENDDATE',
00133             'OXREMARK' => 'OXREMARK',
00134             'OXVOUCHERDISCOUNT' => 'OXVOUCHERDISCOUNT',
00135             'OXCURRENCY' => 'OXCURRENCY',
00136             'OXCURRATE' => 'OXCURRATE',
00137             'OXFOLDER' => 'OXFOLDER',
00138             'OXPIDENT' => 'OXPIDENT',
00139             'OXTRANSID' => 'OXTRANSID',
00140             'OXPAYID' => 'OXPAYID',
00141             'OXXID' => 'OXXID',
00142             'OXPAID' => 'OXPAID',
00143             'OXSTORNO' => 'OXSTORNO',
00144             'OXIP' => 'OXIP',
00145             'OXTRANSSTATUS' => 'OXTRANSSTATUS',
00146             'OXLANG' => 'OXLANG',
00147             'OXINVOICENR' => 'OXINVOICENR',
00148             'OXDELTYPE' => 'OXDELTYPE',
00149             'OXPIXIEXPORT' => 'OXPIXIEXPORT',
00150         ),
00151     );
00152 
00158     public function __construct()
00159     {
00160         parent::__construct();
00161 
00162         $this->_sTableName = 'oxorder';
00163         $this->_sShopObjectName = 'oxorder';
00164         $this->_blRestrictedByShopId = true;
00165     }
00166 
00176     protected function getSqlFieldName($sField, $iLanguage = 0, $iShopID = 1)
00177     {
00178         if ('1' == oxERPBase::getUsedDbFieldsVersion()) {
00179             switch ($sField) {
00180                 case 'OXBILLCOUNTRY':
00181                     return "(select oxtitle from oxcountry where oxcountry.oxid = OXBILLCOUNTRYID limit 1) as OXBILLCOUNTRY";
00182                     break;
00183                 case 'OXDELCOUNTRY':
00184                     return "(select oxtitle from oxcountry where oxcountry.oxid = OXDELCOUNTRYID limit 1) as OXDELCOUNTRY";
00185                     break;
00186                 case 'OXPHAPPROVED':
00187                 case 'OXPHISPHORDER':
00188                     return "'' as $sField";
00189                     break;
00190             }
00191         }
00192         return parent::getSqlFieldName($sField, $iLanguage, $iShopID);
00193     }
00194 
00204     protected function _preAssignObject($oShopObject, $aData, $blAllowCustomShopId)
00205     {
00206         $aData = parent::_preAssignObject($oShopObject, $aData, $blAllowCustomShopId);
00207 
00208         if ('1' == oxERPBase::getUsedDbFieldsVersion()) {
00209             $oDb = oxDb::getDb();
00210             $sTitle = mysql_real_escape_string($aData['OXBILLCOUNTRY']);
00211             if ($id = $oDb->getOne("select oxid from oxcountry where oxtitle = '$sTitle' limit 1")) {
00212                 $aData['OXBILLCOUNTRYID'] = $id;
00213             }
00214             $sTitle = mysql_real_escape_string($aData['OXDELCOUNTRY']);
00215             if ($id = $oDb->getOne("select oxid from oxcountry where oxtitle = '$sTitle' limit 1")) {
00216                 $aData['OXDELCOUNTRYID'] = $id;
00217             }
00218         }
00219         return $aData;
00220     }
00221 
00230     protected function _postSaveObject($oShopObject, $aData)
00231     {
00232         if ('1' == oxERPBase::getRequestedVersion()) {
00233             if (!$aData['OXORDERNR']) {
00234                 // version 1 erp did NOT have order number ajustments, for using them, use 1.1 version
00235                 if ($sOxid = $oShopObject->getId()) {
00236                     oxDb::getDb()->Execute("update oxorder set oxordernr=0 where oxid='$sOxid' limit 1");
00237                 }
00238             }
00239         } elseif ( '1.1' == oxERPBase::getRequestedVersion() ) {
00240             return array('OXID'=>$oShopObject->getId(), 'OXORDERNR'=>$oShopObject->oxorder__oxordernr->value);
00241         }
00242         return parent::_postSaveObject($oShopObject, $aData);
00243     }
00244 }