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
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
00030 $this->_aViewData["updatelist"] = "1";
00031 }
00032
00033 if ( $soxId != "-1" && isset( $soxId)) {
00034
00035 $oOrder = oxNew( "oxorder" );
00036 $oOrder->Load( $soxId);
00037
00038
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
00051 $oUser = oxNew( 'oxuser' );
00052 $oUser->load( $oOrder->oxorder__oxuserid->value );
00053
00054
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
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
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
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
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
00131 $timeout = oxUtilsDate::getInstance()->getTime();
00132 $now = date("Y-m-d H:i:s", $timeout);
00133 $oOrder->oxorder__oxsenddate->setValue($now);
00134 $oOrder->save();
00135
00136
00137 $oOrderArticles = $oOrder->getOrderArticles();
00138 foreach ( $oOrderArticles as $oxid=>$oArticle) {
00139
00140 if ( $oArticle->oxorderarticles__oxstorno->value == 1 )
00141 $oOrderArticles->offsetUnset($oxid);
00142 }
00143
00144 $blMail = oxConfig::getParameter( "sendmail");
00145 if ( isset( $blMail) && $blMail) {
00146
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 }