order_main.php

Go to the documentation of this file.
00001 <?php
00002 
00009 class Order_Main extends oxAdminDetails
00010 {
00018     public function render()
00019     {
00020         parent::render();
00021 
00022         $soxId = oxConfig::getParameter( "oxid");
00023         // check if we right now saved a new entry
00024         $sSavedID = oxConfig::getParameter( "saved_oxid");
00025         if ( ($soxId == "-1" || !isset( $soxId)) && isset( $sSavedID) ) {
00026             $soxId = $sSavedID;
00027             oxSession::deleteVar( "saved_oxid");
00028             $this->_aViewData["oxid"] =  $soxId;
00029             // for reloading upper frame
00030             $this->_aViewData["updatelist"] =  "1";
00031         }
00032 
00033         if ( $soxId != "-1" && isset( $soxId)) {
00034             // load object
00035             $oOrder = oxNew( "oxorder" );
00036             $oOrder->Load( $soxId);
00037 
00038             // paid ?
00039             if ( $oOrder->oxorder__oxpaid->value != "0000-00-00 00:00:00") {
00040                 $oOrder->blIsPaid = true;
00041                 $oOrder->oxorder__oxpaid->setValue( oxUtilsDate::getInstance()->formatDBDate( $oOrder->oxorder__oxpaid->value));
00042             }
00043 
00044             $this->_aViewData["edit"] =  $oOrder;
00045             $this->_aViewData["paymentType"] =  $oOrder->getPaymentType();
00046 
00047             $this->_aViewData["oShipSet"] =  $oOrder->getShippingSetList();
00048             if ( $oOrder->oxorder__oxdeltype->value ) {
00049 
00050                 // order user
00051                 $oUser = oxNew( 'oxuser' );
00052                 $oUser->load( $oOrder->oxorder__oxuserid->value );
00053 
00054                 // order sum in default currency
00055                 $dPrice = $oOrder->oxorder__oxtotalbrutsum->value / $oOrder->oxorder__oxcurrate->value;
00056 
00057                 $this->_aViewData["oPayments"] =  oxPaymentList::getInstance()->getPaymentList( $oOrder->oxorder__oxdeltype->value, $dPrice, $oUser );
00058             }
00059 
00060             // any voucher used ?
00061             $this->_aViewData["aVouchers"] =  $oOrder->getVoucherNrList();
00062         }
00063 
00064         $this->_aViewData["sNowValue"] = date("Y-m-d H:i:s", oxUtilsDate::getInstance()->getTime());
00065 
00066         return "order_main.tpl";
00067     }
00068 
00074     public function save()
00075     {
00076 
00077         $soxId      = oxConfig::getParameter( "oxid");
00078         $aParams    = oxConfig::getParameter( "editval");
00079         $aDynvalues = oxConfig::getParameter( "dynvalue");
00080 
00081         $blChangeDelivery = false;
00082 
00083             // shopid
00084             $sShopID = oxSession::getVar( "actshop");
00085             $aParams['oxorder__oxshopid'] = $sShopID;
00086 
00087         $oOrder = oxNew( "oxorder" );
00088         if ( $soxId != "-1") {
00089             $oOrder->load( $soxId);
00090             if ( $oOrder->oxorder__oxdelcost->value != $aParams['oxorder__oxdelcost'] ) {
00091                 $blChangeDelivery = true;
00092             }
00093         } else {
00094             $aParams['oxorder__oxid'] = null;
00095         }
00096 
00097         $oOrder->assign( $aParams);
00098 
00099         if ( isset( $aDynvalues)) {
00100             // #411 Dodger
00101             $oPayment = oxNew( "oxuserpayment" );
00102             $oPayment->load( $oOrder->oxorder__oxpaymentid->value);
00103             $oPayment->oxuserpayments__oxvalue->setValue(oxUtils::getInstance()->assignValuesToText( $aDynvalues));
00104             $oPayment->save();
00105         }
00106 
00107         $oOrder->save();
00108 
00109         $oOrder->recalculateOrder( array(), $blChangeDelivery );
00110 
00111         // set oxid if inserted
00112         if ( $soxId == "-1")
00113             oxSession::setVar( "saved_oxid", $oOrder->oxorder__oxid->value);
00114 
00115 
00116         return $this->autosave();
00117     }
00118 
00124     public function sendorder()
00125     {
00126         $soxId  = oxConfig::getParameter( "oxid");
00127         $oOrder = oxNew( "oxorder" );
00128         $oOrder->load( $soxId);
00129 
00130         // #632A
00131         $timeout = oxUtilsDate::getInstance()->getTime(); //time();
00132         $now = date("Y-m-d H:i:s", $timeout);
00133         $oOrder->oxorder__oxsenddate->setValue($now);
00134         $oOrder->save();
00135 
00136         // #1071C
00137         $oOrderArticles = $oOrder->getOrderArticles();
00138         foreach ( $oOrderArticles as $oxid=>$oArticle) {
00139             // remove canceled articles from list
00140             if ( $oArticle->oxorderarticles__oxstorno->value == 1 )
00141                 $oOrderArticles->offsetUnset($oxid);
00142         }
00143 
00144         $blMail  = oxConfig::getParameter( "sendmail");
00145         if ( isset( $blMail) && $blMail) {
00146             // send eMail
00147 
00148             $oxEMail = oxNew( "oxemail" );
00149             $oxEMail->SendSendedNowMail( $oOrder );
00150         }
00151 
00152     }
00153 
00159     public function resetorder()
00160     {
00161         $soxId  = oxConfig::getParameter( "oxid");
00162         $oOrder = oxNew( "oxorder" );
00163         $oOrder->load( $soxId);
00164 
00165         $oOrder->oxorder__oxsenddate->setValue("0000-00-00 00:00:00");
00166         $oOrder->save();
00167 
00168     }
00169 
00176     public function changeDelSet()
00177     {
00178         $soxId  = oxConfig::getParameter( "oxid");
00179         $oOrder = oxNew( "oxorder" );
00180         if ($oOrder->load( $soxId)) {
00181             $sDelType = oxConfig::getParameter( "setDelSet");
00182             $oOrder->oxorder__oxdeltype->setValue($sDelType);
00183             $oOrder->oxorder__oxpaymenttype->setValue("oxempty");
00184             $oOrder->save();
00185 
00186             $oOrder->recalculateOrder( array() );
00187         }
00188     }
00189 
00196     public function changePayment()
00197     {
00198         $soxId  = oxConfig::getParameter( "oxid");
00199         $oOrder = oxNew( "oxorder" );
00200         if ($oOrder->load( $soxId)) {
00201             $sPayment = oxConfig::getParameter( "setPayment");
00202             $oOrder->oxorder__oxpaymenttype->setValue($sPayment);
00203             $oOrder->save();
00204 
00205             $oOrder->recalculateOrder( array() );
00206         }
00207     }
00208 }

Generated on Fri Dec 19 14:20:28 2008 for OXID eShop CE by  doxygen 1.5.5