예제 #1
0
 protected function postInsert()
 {
     $this->profile->setUserId($this->getId());
     $this->profile->save(false);
     /*$this->sendEmail('user-register.tpl');*/
     if ($this->user_type == 'admin') {
         DatabaseObject_StaticUtility::addClubNumber($this->_db, $this->university_id);
         DatabaseObject_StaticUtility::addTypeClubNumber($this->_db, $this->type_id);
     }
     /*****creat account balance now.*/
     if (!$this->accountbalanceExists()) {
         $this->accountBalanceSummary->user_id = $this->getId();
         $this->accountBalanceSummary->save(false);
     }
     unset($_SESSION['referral']);
     //remove the current referral session
     //echo "at post insert person: ".$this->referral_id;
     if ($this->referral_id != '') {
         $referralUser = new DatabaseObject_User($this->_db);
         if ($referralUser->loadByRefereeId($this->referral_id)) {
             $referralAccountAndRewardPointProcessor = new AccountBalanceAndRewardPointProcessor($this->_db, $referralUser);
             $trackingId = $referralAccountAndRewardPointProcessor->updatePendingRewardPointsAndBalanceForUser('REWARD_ADDITION', 4, 'caused_by_user_id', $this->getId(), 'Reward points awarded for the referral of user ' . $this->first_name . ' ' . $this->last_name);
             $referralAccountAndRewardPointProcessor->postPendingRewardPointsAndBalanceForUser($trackingId);
         }
         //DatabaseObject_Helper_UserManager::addRewardPointToUser($this->_db, $this->referral_id, '4', 'from referred new member registration', $_SERVER['REMOTE_ADDR'], $this->username, $this->getId(), $this->referee_id);
     }
     $userAccountBalanceAndRewardPointProcessor = new AccountBalanceAndRewardPointProcessor($this->_db, $this);
     $trackingId = $userAccountBalanceAndRewardPointProcessor->updatePendingRewardPointsAndBalanceForUser('REWARD_ADDITION', 8, 'caused_by_user_id', $this->getId(), 'Reward points awarded for registration');
     $userAccountBalanceAndRewardPointProcessor->postPendingRewardPointsAndBalanceForUser($trackingId);
     return true;
 }
 public function processtransfersAction()
 {
     $transferId = $this->getRequest()->getParam('transferId');
     $transferTracking = new DatabaseObject_Account_UserAccountBalanceTransferTracking($this->db);
     if ($transferTracking->load($transferId)) {
         echo 'here at loaded<br/>';
         if ($transferTracking->status == 'PENDING') {
             echo 'here at pending<br/>';
             $user = new DatabaseObject_User($this->db);
             $user->load($transferTracking->from_user_id);
             $userPendingBalanceProcessor = new AccountBalanceAndRewardPointProcessor($this->db, $user);
             $toUser = new DatabaseObject_User($this->db);
             $toUser->load($transferTracking->to_user_id);
             $toUserPendingBalanceProcessor = new AccountBalanceAndRewardPointProcessor($this->db, $toUser);
             if ($userPendingBalanceProcessor->postPendingRewardPointsAndBalanceForUser($transferTracking->sender_pending_tracking_id) && $toUserPendingBalanceProcessor->postPendingRewardPointsAndBalanceForUser($transferTracking->receiver_pending_tracking_id)) {
                 echo 'here at processed';
                 $transferTracking->status = 'PROCESSED';
                 $transferTracking->date_processed = date('Y-m-d G:i:s');
                 $transferTracking->save();
             }
         } else {
             echo 'not pending, can not be done';
             echo $transferTracking->status;
         }
     } else {
         echo 'here at not loaded';
     }
 }
 public function markorderasupdatedorcancelledAction()
 {
     //there are still tracking id problems.
     $this->adminOrders = new Zend_Session_Namespace('adminOrders');
     $orderItemId = $this->getRequest()->getParam('id');
     $product = new DatabaseObject_OrderProfile($this->db);
     if ($product->load($orderItemId)) {
         //Load dance rialto
         $danceRialto = new DatabaseObject_User($this->db);
         //that is the id of DanceRialto Admin
         $danceRialto->load(1);
         $danceRialtoAccountProcessor = new AccountBalanceAndRewardPointProcessor($this->db, $danceRialto);
         //load seller.
         $seller = new DatabaseObject_User($this->db);
         $seller->load($product->uploader_id);
         echo 'orderProfile uploader_id is: ' . $seller->getId();
         //Zend_Debug::dump($seller);
         $sellerBalanceAccountProcessor = new AccountBalanceAndRewardPointProcessor($this->db, $seller);
         //load buyer
         $buyer = new DatabaseObject_User($this->db);
         $buyer->load($product->buyer_id);
         $buyerAccountBalanceAndRewardPointProcessor = new AccountBalanceAndRewardPointProcessor($this->db, $buyer);
         if ($product->orderStatus->order_status == 'ORDER_COMPLETED' || $product->orderStatus->order_status == 'HELD_BY_SELLER_FOR_ARBITRATION_APPROVED') {
             $product->orderStatus->order_status = 'BALANCE_UPDATED';
             //$product->orderStatus->product_delivered_date=date('Y-m-d',mktime(0,0,0,date("m"),date("d"),date("Y")));
             //$this->messenger->addMessage($product->late_delivery_confirmation_date);
             //$this->messenger->addMessage('shipped delivered');
             if ($product->orderStatus->save()) {
                 //update profile status tracking
                 DatabaseObject_Helper_Admin_OrderManager::updateStatusTracking($this->db, $orderItemId, 'BALANCE_UPDATED');
                 //buyer reward points gets posted
                 $buyerTrackingId = DatabaseObject_Account_UserPendingRewardPointAndBalanceTracking::loadTrackingIdByColumnId($this->db, $product->buyer_id, 'from_order_profile_id', $orderItemId);
                 foreach ($buyerTrackingId as $k => $v) {
                     $buyerAccountBalanceAndRewardPointProcessor->postPendingRewardPointsAndBalanceForUser($v['user_pending_reward_point_and_balance_tracking_id']);
                 }
                 //***seller balance gets posted
                 $sellerTrackingId = DatabaseObject_Account_UserPendingRewardPointAndBalanceTracking::loadTrackingIdByColumnId($this->db, $product->uploader_id, 'from_order_profile_id', $orderItemId);
                 foreach ($sellerTrackingId as $k => $v) {
                     $sellerBalanceAccountProcessor->postPendingRewardPointsAndBalanceForUser($v['user_pending_reward_point_and_balance_tracking_id']);
                 }
                 //***danceRialto balance gets posted
                 $DRtrackingId = DatabaseObject_Account_UserPendingRewardPointAndBalanceTracking::loadTrackingIdByColumnId($this->db, $danceRialto->getId(), 'from_order_profile_id', $orderItemId);
                 foreach ($DRtrackingId as $k => $v) {
                     $danceRialtoAccountProcessor->postPendingRewardPointsAndBalanceForUser($v['user_pending_reward_point_and_balance_tracking_id']);
                 }
                 echo 'complted';
             }
             $this->adminOrders->orderProfiles->balanceUpdatedOrders[$orderItemId] = $this->adminOrders->orderProfiles->orderCompletedOrders[$orderItemId];
             unset($this->adminOrders->orderProfiles->orderCompletedOrders[$orderItemId]);
             $this->messenger->addMessage('Balance transfered');
         } else {
             if ($product->orderStatus->order_status == 'RETURN_COMPLETED' || $product->orderStatus->order_status == 'CANCELLED_BY_SELLER' || $product->orderStatus->order_status == 'CANCELLED_BY_BUYER' || $product->orderStatus->order_status == 'HELD_BY_SELLER_FOR_ARBITRATION_DENIED') {
                 $product->orderStatus->order_status = 'BALANCE_REFUNDED';
                 $this->messenger->addMessage($product->late_return_delivery_confirmation_date);
                 if ($product->orderStatus->save()) {
                     //update profile status tracking
                     DatabaseObject_Helper_Admin_OrderManager::updateStatusTracking($this->db, $orderItemId, 'BALANCE_REFUNDED');
                     //***Buyer balance gets posted and updated.
                     $buyerTrackingId = $buyerAccountBalanceAndRewardPointProcessor->updatePendingRewardPointsAndBalanceForUser('BALANCE_ADDITION', $product->seller_receivable + $product->dr_receivable, 'from_order_profile_id', $product->getId(), 'Balance addition from the refund of ' . $product->product_name . ' in order Id: ' . $product->order_unique_id);
                     $buyerAccountBalanceAndRewardPointProcessor->postPendingRewardPointsAndBalanceForUser($buyerTrackingId);
                     //***Buyer reward points gets cancelled.
                     $buyerTrackingIdArray = DatabaseObject_Account_UserPendingRewardPointAndBalanceTracking::loadTrackingIdByColumnId($this->db, $product->buyer_id, 'from_order_profile_id', $orderItemId);
                     foreach ($buyerTrackingIdArray as $k => $v) {
                         $buyerAccountBalanceAndRewardPointProcessor->cancelPendingRewardPointsAndBalanceForUser($v['user_pending_reward_point_and_balance_tracking_id']);
                     }
                     //***Seller balance gets cancelled.
                     $sellerTrackingIdArray = DatabaseObject_Account_UserPendingRewardPointAndBalanceTracking::loadTrackingIdByColumnId($this->db, $product->uploader_id, 'from_order_profile_id', $orderItemId);
                     foreach ($sellerTrackingIdArray as $k => $v) {
                         $sellerBalanceAccountProcessor->cancelPendingRewardPointsAndBalanceForUser($v['user_pending_reward_point_and_balance_tracking_id']);
                     }
                     //***danceRialto balance gets Cancelled
                     $DRtrackingIdArray = DatabaseObject_Account_UserPendingRewardPointAndBalanceTracking::loadTrackingIdByColumnId($this->db, $danceRialto->getId(), 'from_order_profile_id', $orderItemId);
                     foreach ($DRtrackingIdArray as $k => $v) {
                         $danceRialtoAccountProcessor->cancelPendingRewardPointsAndBalanceForUser($v['user_pending_reward_point_and_balance_tracking_id']);
                     }
                     echo 'return complted';
                 }
                 $this->messenger->addMessage('Balance refunded');
                 $this->adminOrders->orderProfiles->balanceRefundedOrders[$orderItemId] = $this->adminOrders->orderProfiles->returnCompletedOrders[$orderItemId];
                 unset($this->adminOrders->orderProfiles->returnCompletedOrders[$orderItemId]);
             }
         }
         //$this->_redirect($_SERVER['HTTP_REFERER']);
         //verifying the cart completion
         $cartCompletion = $buyerAccountBalanceAndRewardPointProcessor->checkCartCompletion($product->order_unique_id);
         if ($cartCompletion['processed'] == true) {
             echo 'here';
             $buyerCartPendingTrackingIdArray = DatabaseObject_Account_UserPendingRewardPointAndBalanceTracking::loadTrackingIdByColumnId($this->db, $product->buyer_id, 'from_order_id', $product->order_unique_id);
             if (count($buyerCartPendingTrackingIdArray) > 0) {
                 Zend_Debug::dump($buyerCartPendingTrackingIdArray);
                 if ($cartCompletion['allCancelled'] == true) {
                     echo 'cancel the cart pending info<br />';
                     $buyerAccountBalanceAndRewardPointProcessor->cancelPendingRewardPointsAndBalanceForUser($buyerCartPendingTrackingIdArray[0]['user_pending_reward_point_and_balance_tracking_id']);
                 } elseif ($cartCompletion['allCancelled'] == false) {
                     echo 'post the cart pending info<br />';
                     $buyerAccountBalanceAndRewardPointProcessor->postPendingRewardPointsAndBalanceForUser($buyerCartPendingTrackingIdArray[0]['user_pending_reward_point_and_balance_tracking_id']);
                 }
             }
         }
     } else {
         $this->messenger->addMessage('not even loaded');
     }
     $this->_redirect($_SERVER['HTTP_REFERER']);
 }