public static function createFromSignup($data, $refererMember, Invitation $invitation = null, PropelPDO $con) { // This functions expects this parameter to be valid! // E.g. the result from self::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'])->setCountry($data['country'])->setAge($data['age'])->setBankRecipient($data['bank_recipient'])->setIban($data['iban'])->setBic($data['bic'])->setPassword($data['password'])->setSignupDate($now); if ($invitation) { $member->setType($invitation->getType()); if ($invitation->getFreeSignup()) { $member->setPaidDate($now); } $invitation->setAcceptedDate($now); } $member->setRefererMember($refererMember, $con); $member->save($con); if ($invitation) { $invitation->setAcceptedMemberId($member->getId()); $invitation->save($con); } if (!$con->commit()) { throw new Exception('Could not commit transaction'); } } catch (Exception $e) { $con->rollBack(); throw $e; } return $member; }
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; }