Example #1
0
 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;
 }