Esempio n. 1
0
 public function testHandleInvalidEmailRecipient()
 {
     \Tbmt\MailHelper::send('*****@*****.**', null, 'test', 'test');
 }
Esempio n. 2
0
 /**
  * Set user as paid and spread provisions.
  *
  * Update all current Transfers with state Transfer::STATE_RESERVED to
  * Transfer::STATE_COLLECT making them ready for processing.
  *
  * NOTE: Caller is responsible for transactional processing.
  *
  */
 public function onReceivedMemberFee($currency, $when, $freeFromInvitation, PropelPDO $con)
 {
     if (!$this->isExtended()) {
         return;
     }
     if ($this->hadPaid()) {
         throw new \Exception('Paid member receiving fee again!');
     }
     $referrer = $this->getReferrerMember();
     if (!$referrer) {
         throw new Exception('Member (' . $this->getId() . ') has no referrer!');
     }
     if (!$this->isMarkedAsPaid()) {
         // Prevent multiple income of the same message. Because this situation
         // can ocure more often because of the removal of not paying members
         // {@see $this->fireReservedReceivedMemberFeeEvents}
         if (!$freeFromInvitation) {
             \Tbmt\MailHelper::sendFeeIncome($this);
         }
     }
     if (!$freeFromInvitation) {
         \Tbmt\MailHelper::sendFeeIncomeReferrer($referrer, $this);
     }
     if ($referrer && !$referrer->hadPaid()) {
         // if the parent hasnt paid yet. reserve this event until his fee is
         // comming in or we kick him from the list.
         $referrer->reserveReceivedMemberFeeEvent($this, $currency, $when, $freeFromInvitation, $con);
         return;
     }
     $this->setPaidDate($when);
     TransferQuery::create()->filterByState(Transfer::STATE_RESERVED)->filterByMember($this)->update(['State' => Transfer::STATE_COLLECT], $con);
     \Tbmt\DistributionStrategy::getInstance()->onReceivedMemberFee($this, $referrer, $currency, $when, $freeFromInvitation, $con);
     $this->fireReservedReceivedMemberFeeEvents($con);
     $this->save($con);
 }
Esempio n. 3
0
 public function createFromSignup($data, $referrerMember, \Invitation $invitation = null, \PropelPDO $con)
 {
     // This functions expects this parameter to be valid!
     // E.g. the result from $this->validateSignupForm()
     $now = time();
     if (!$con->beginTransaction()) {
         throw new \Exception('Could not begin transaction');
     }
     try {
         $member = new \Member();
         $member->setFirstName($data['firstName'])->setLastName($data['lastName'])->setEmail($data['email'])->setTitle($data['title'])->setCity($data['city'])->setZipCode($data['zip_code'])->setCountry('India')->setAge($data['age'])->setBankRecipient($data['bank_recipient'])->setIban($data['iban'])->setBic($data['bic'])->setPassword($data['password'])->setSignupDate($now)->setBonusIds('{}')->setPaidDate(null)->setIsExtended(1);
         $member->setHash(\Member::calcHash($member));
         $wasFreeInvitation = false;
         if ($invitation) {
             $invitationType = $invitation->getType();
             $member->setType($invitationType);
             // Special case if e.g. director invites another director.
             // The referrer of the referrer will be the referrer.
             // This is necessary because the same type can not be on same line vertical
             // but horizontal. E.g. Director can have more marketing leader under him
             // but only Directors next to him (NOT under him)
             if ($invitationType > \Member::TYPE_MEMBER && $referrerMember->getType() == $invitationType) {
                 $referrerMember = $referrerMember->getReferrerMember();
             }
             $invitation->setAcceptedDate($now);
             if ($invitation->getFreeSignup()) {
                 $member->setFreeInvitation(1);
                 $wasFreeInvitation = true;
             }
             // Deprecated code
             // if ( $invitation->getType() === \Member::TYPE_SUB_PROMOTER ) {
             //   $member->setSubPromoterReferral($invitation->getMeta()['promoter_id']);
             // }
         }
         $member->setReferrerMember($referrerMember, $con);
         $member->save($con);
         $member->setNum($member->getId() + 1000000);
         if ($invitation) {
             $invitation->setAcceptedMemberId($member->getId());
             $invitation->save($con);
             if ($wasFreeInvitation) {
                 $member->onReceivedMemberFee(\Transaction::$BASE_CURRENCY, $now, true, $con);
             }
         }
         if ($wasFreeInvitation) {
             \Tbmt\MailHelper::sendFreeSignupConfirm($member);
             \Tbmt\MailHelper::sendNewFreeRecruitmentCongrats($referrerMember, $member);
         } else {
             \Tbmt\MailHelper::sendSignupConfirm($member);
             \Tbmt\MailHelper::sendNewRecruitmentCongrats($referrerMember, $member);
         }
         $member->save($con);
         if (!$con->commit()) {
             throw new \Exception('Could not commit transaction');
         }
     } catch (\Exception $e) {
         $con->rollBack();
         throw $e;
     }
     return $member;
 }