public function processDataWhenEditOrder() { $result = array(); $orderId = Mage::getSingleton('adminhtml/session_quote')->getOrder()->getId(); $currentCouponCode = ''; $session = Mage::getSingleton('checkout/session'); $couponCodeBySession = $session->getAffiliateCouponCode(); $baseAffiliateDiscount = 0; if ($orderId) { // edit order $currentOrderEdit = Mage::getModel('sales/order')->load($orderId); $orderIncrementId = $currentOrderEdit->getIncrementId(); /* get transaction was created by order editing */ $transactionAffiliate = Mage::getModel('affiliateplus/transaction')->getCollection()->addFieldToFilter('order_number', $orderIncrementId)->getFirstItem(); $currentCouponCode = $transactionAffiliate->getCouponCode(); $convertLifetime = false; if ($currentCouponCode && !$couponCodeBySession) { $convertLifetime = true; } /* end get transaction */ $affId = $transactionAffiliate->getAccountId(); // check lifetime $customerId = Mage::getSingleton('adminhtml/session_quote')->getCustomer()->getId(); $accountInfo = $this->checkLifeTimeForOrderBackend($customerId); if ($accountInfo) { $defaultDiscount = true; } else { if ($currentCouponCode && !$couponCodeBySession) { return $result; } $defaultDiscount = false; $programId = ''; $programInfo = new Varien_Object(array('program_id' => $programId)); Mage::dispatchEvent('affiliateplus_program_transaction_data', array('order_number' => $orderIncrementId, 'program_info' => $programInfo)); $programId = $programInfo->getProgramId(); if (!$programId) { $programId = $transactionAffiliate->getProgramId(); $programName = $transactionAffiliate->getProgramName(); } // $baseAffiliateDiscount = $currentOrderEdit->getAffiliateplusDiscount(); $accountInfo = Mage::getModel('affiliateplus/account')->load($affId); if ($accountInfo->getStatus() == 2 && $couponCodeBySession == '') { return $result; } } $currentAff = Mage::getModel('affiliateplus/account')->load($affId); if (!$convertLifetime) { if ($currentAff->getStatus() == 1) { $accountInfo = $currentAff; } else { return $result; } } } else { /* Edit By Jack - create order for lower affiliate */ $customerId = Mage::getSingleton('adminhtml/session_quote')->getCustomer()->getId(); $accountInfo = $this->checkLifeTimeForOrderBackend($customerId); if ($accountInfo) { $defaultDiscount = true; } else { $defaultDiscount = false; } /* End Edit By Jack */ } if ($couponCodeBySession && $this->isAdmin()) { $programAndAccountData = new Varien_Object(array('program_id' => '', 'account_info' => '', 'program_name' => '')); Mage::dispatchEvent('affiliateplus_coupon_get_program_data_and_account', array('coupon_code_by_session' => $couponCodeBySession, 'program_and_account_data' => $programAndAccountData)); $programId = $programAndAccountData->getProgramId(); $programName = $programAndAccountData->getProgramName(); $accountInfo = $programAndAccountData->getAccountInfo(); if ($accountInfo && $accountInfo->getStatus() != 1) { return $result; } } if (isset($currentCouponCode)) { $result['current_couponcode'] = $currentCouponCode; } if (isset($programId)) { $result['program_id'] = $programId; } if (isset($programName)) { $result['program_name'] = $programName; } if (isset($accountInfo)) { $result['account_info'] = $accountInfo; } if (isset($baseAffiliateDiscount)) { $result['base_affiliate_discount'] = $baseAffiliateDiscount; } if (isset($customerId)) { $result['customer_id'] = $customerId; } if (isset($defaultDiscount)) { $result['default_discount'] = $defaultDiscount; } return $result; }