示例#1
0
	/**
	 * @return array
	 */
	public function getChildren(Pap_Common_User $parent, $offset = '', $limit = '') {
		$children = array();

		$selectBuilder = new Gpf_SqlBuilder_SelectBuilder();
		$selectBuilder->select->addAll(Pap_Db_Table_Users::getInstance(), 'pu');
		$selectBuilder->select->addAll(Gpf_Db_Table_AuthUsers::getInstance(), 'au');

		$selectBuilder->from->add(Pap_Db_Table_Users::getName(), 'pu');
		$selectBuilder->from->addInnerJoin(Gpf_Db_Table_Users::getName(), 'gu', 'pu.accountuserid = gu.accountuserid');
		$selectBuilder->from->addInnerJoin(Gpf_Db_Table_AuthUsers::getName(), 'au', 'gu.authid = au.authid');

		$selectBuilder->where->add(Pap_Db_Table_Users::PARENTUSERID, '=', $parent->getId());
		$selectBuilder->where->add(Gpf_Db_Table_Users::STATUS, 'IN', array(Pap_Common_Constants::STATUS_APPROVED, Pap_Common_Constants::STATUS_PENDING));
		$selectBuilder->orderBy->add(Pap_Db_Table_Users::DATEINSERTED);

		$selectBuilder->limit->set($offset, $limit);
			
		foreach ($selectBuilder->getAllRowsIterator() as $userRecord) {
			$user = new Pap_Common_User();
			$user->fillFromRecord($userRecord);
			$children[] = $user;
		}

		return $children;
	}
 private function sendMail($templateId, Gpf_Data_Record $userRecord)
 {
     $user = new Pap_Common_User();
     $user->fillFromRecord($userRecord);
     $user->setPassword($userRecord->get('password'));
     $template = new Pap_Mail_MassMailTemplate();
     $template->setTemplateId($templateId);
     $template->setUser($user);
     $template->addRecipient($user->getEmail());
     $template->send();
 }
    private function sendMail($templateId, Gpf_Data_Record $userRecord, $filterId, $affiliateId) {
        $user = new Pap_Common_User();
        $user->fillFromRecord($userRecord);

        if ($userRecord->contains(Pap_Mail_MassMailAffiliatesGrid::COLUMN_PASSWORD)) {
            $user->setPassword($userRecord->get(Pap_Mail_MassMailAffiliatesGrid::COLUMN_PASSWORD));
        } else if ($userRecord->contains(Gpf_Db_Table_AuthUsers::PASSWORD)) {
            $user->setPassword($userRecord->get(Gpf_Db_Table_AuthUsers::PASSWORD));
        }

        $template = new Pap_Mail_MassMailTemplate();        

        if ($affiliateId != null && $affiliateId != '') {
            $this->setFromEmailAndName($template, $affiliateId);        
        }
        $template->setTemplateId($templateId);
        $template->setUser($user);
        $template->addRecipient($user->getEmail());
        $template->send();
    }
    /**
     * @service pay_affiliate write
     * @return Gpf_Rpc_Form
     */
    public function payAffiliates(Gpf_Rpc_Params $params) {
    	$form = new Gpf_Rpc_Form($params);    	    	        

    	$this->saveNotificationSettings($form);       	       
        $currency = Pap_Common_Utils_CurrencyUtils::getDefaultCurrency();
        $payoutHistory = $this->createPayoutHistoryItem($form);
        
        foreach ($this->getAffiliatesToPaySelect()->getAllRowsIterator() as $row) {
            $user = new Pap_Common_User();
            $user->fillFromRecord($row);
            $payout = new Pap_Common_Payout($user, $currency, $row->get('amountRaw'), $this->generateInvoiceNumber());
            $payout->setPayoutHistory($payoutHistory);
            $payout->generateInvoice();
            try {
                $payout->save();
            } catch (Gpf_DbEngine_Row_ConstraintException $e) {
            	$form->setErrorMessage($this->_('Failed to pay affiliates %s', $e->getMessage()));            	
            	continue;
            }
            $this->markTransactionsAsPaid($payout);
            $this->sendEmails($payout);

            Gpf_Plugins_Engine::extensionPoint('PostAffiliate.Pap_Merchants_Payout_PayAffiliatesForm.payAffiliates', $user);
        }           
             
        $form->setInfoMessage($this->_('Affiliates successfully paid'));        
        
        return $form;
    }