Esempio n. 1
0
 public function testLevelApplyingWithFreeRegistration()
 {
     $sylvheim = Member::getByNum(\SystemStats::ACCOUNT_SYLVHEIM);
     $sylvheim_total = new TransactionTotalsAssertions($sylvheim, $this);
     /* Setup - This member is set as paid but no money is spread.
         * Because this one is just for testing purpose
        ---------------------------------------------*/
     $marketingLeader = DbEntityHelper::createMember($sylvheim, ['Type' => Member::TYPE_MARKETINGLEADER]);
     $marketingLeader->reload(self::$propelCon);
     $marketingLeader_total = new TransactionTotalsAssertions($marketingLeader, $this);
     /* Create invitation
        ---------------------------------------------*/
     $invitation = Invitation::create($marketingLeader, ['type' => Member::TYPE_ORGLEADER, 'free_signup' => 1], self::$propelCon);
     /* Create member with created invitation code
        ---------------------------------------------*/
     list($valid, $data, $referralMember, $invitation) = \Member::validateSignupForm(array_merge(self::$singupFormData, ['referral_member_num' => $marketingLeader->getNum(), 'invitation_code' => $invitation->getHash()]));
     // Because the marketing leader is level 1 this org leader will be
     // transfered to be child of sylvheim
     $orgLeader = \Member::createFromSignup($data, $marketingLeader, $invitation, self::$propelCon);
     $orgLeader->reload(self::$propelCon);
     // Because orgleaders parent has to be sylvhelm, advertising someone first time
     // needs to bonus sylvheim
     DbEntityHelper::createSignupMember($orgLeader);
     // Spread money for creating this last member
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM, 1);
     $sylvheim_total->add(Transaction::REASON_ADVERTISED_INDIRECT, 1);
     // VL_BONUS - because, orgleader was VL first member and got transferred to
     // sylvheimm, therefore there is no VL between sylvheim and ol when ol
     // inviteds member
     $sylvheim_total->add(Transaction::REASON_VL_BONUS, 1);
     // marketing leader gets nothing from ol's advertising.
     $sylvheim_total->assertTotals();
     $marketingLeader_total->assertTotals();
 }
Esempio n. 2
0
 /**
  * @expectedException \Tbmt\ProvisionExceedMemberFeeException
  */
 public function testProvisionExceedMemberFreeException()
 {
     $marketingLeader = DbEntityHelper::createMember(null, ['type' => Member::TYPE_MARKETINGLEADER, 'LastName' => 'vl']);
     $marketingLeader->reload(self::$propelCon);
     $m1 = DbEntityHelper::createSignupMember($marketingLeader, true, ['lastName' => 'm1']);
     $m1->activity_setBonusLevel(\Tbmt\Config::get('member_fee', \Tbmt\TYPE_FLOAT, 100) + 10, self::$propelCon);
     $m1_3 = DbEntityHelper::createSignupMember($m1, true, ['lastName' => 'm1_3']);
 }
Esempio n. 3
0
 public function testReceivingChildrenOfDeletedFirstMemberWithDeepTree()
 {
     // NOTE: This tests what happen if my first advertising gets
     // deleted due to not paying fee.
     /* Setup
        ---------------------------------------------*/
     DbEntityHelper::setCon(self::$propelCon);
     $promoter1 = DbEntityHelper::createMember();
     $MYSELF = DbEntityHelper::createSignupMember($promoter1);
     $MYSELF_total = new TransactionTotalsAssertions($MYSELF, $this);
     $this->assertEquals($MYSELF->getFundsLevel(), Member::FUNDS_LEVEL1);
     /* Advertise 2 users
        ---------------------------------------------*/
     $MYSELF_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $franz = DbEntityHelper::createSignupMember($MYSELF);
     $WILL_NOT_PAY = DbEntityHelper::createSignupMember($MYSELF, false);
     /* WILL_NOT_PAY advertises 3 and these does either advertise a view
        ---------------------------------------------*/
     $MYSELF_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $MYSELF_total->add(Transaction::REASON_ADVERTISED_LVL2, 4);
     DbEntityHelper::createSignupMember($WILL_NOT_PAY);
     DbEntityHelper::createSignupMember($WILL_NOT_PAY);
     DbEntityHelper::createSignupMember($WILL_NOT_PAY);
     $deep1 = DbEntityHelper::createSignupMember($WILL_NOT_PAY);
     $deep1_lazy = DbEntityHelper::createSignupMember($WILL_NOT_PAY, false);
     $MYSELF_total->add(Transaction::REASON_ADVERTISED_INDIRECT, 2);
     $deep2 = DbEntityHelper::createSignupMember($deep1);
     DbEntityHelper::createSignupMember($deep1);
     DbEntityHelper::createSignupMember($deep1);
     DbEntityHelper::createSignupMember($deep1);
     $deep2_lazy = DbEntityHelper::createSignupMember($deep1, false);
     $MYSELF_total->add(Transaction::REASON_ADVERTISED_INDIRECT, 2);
     $deep3 = DbEntityHelper::createSignupMember($deep2, false);
     DbEntityHelper::createSignupMember($deep2);
     $WILL_NOT_PAY->deleteAndUpdateTree(self::$propelCon);
     DbEntityHelper::fireReceivedMemberFee($deep1_lazy, time());
     DbEntityHelper::fireReceivedMemberFee($deep2_lazy, time());
     DbEntityHelper::fireReceivedMemberFee($deep3, time());
     // ---- assert - ME
     $MYSELF_total->assertTotals();
 }
Esempio n. 4
0
 public function testSnowballModelLazyIncommingFeeExtensiv()
 {
     // NOTE: this is basically the exact same scenario as @see $this->testSnowballModel
     // with the only difference that the incomming of the member fee
     // happens lazy and in different order. Later advertised members does
     // pay earlier so that ReservedPaidEvents get created and triggered.
     /* Setup
        ---------------------------------------------*/
     $now = time();
     $promoter1 = DbEntityHelper::createMember();
     $MYSELF = DbEntityHelper::createSignupMember($promoter1);
     $MYSELF_total = new TransactionTotalsAssertions($MYSELF, $this);
     $this->assertEquals($MYSELF->getFundsLevel(), Member::FUNDS_LEVEL1);
     /* Advertise 2 users
        ---------------------------------------------*/
     $MYSELF_total->add(Transaction::REASON_ADVERTISED_LVL1, 2);
     $far_l1_1 = DbEntityHelper::createSignupMember($MYSELF, false);
     $bea_l1_2 = DbEntityHelper::createSignupMember($MYSELF, false);
     /* Advertise 1 more user - chris
        ---------------------------------------------*/
     $MYSELF_total->add(Transaction::REASON_ADVERTISED_LVL2);
     $CHRIS_l1_3 = DbEntityHelper::createSignupMember($MYSELF, false);
     $CHRIS_total = new TransactionTotalsAssertions($CHRIS_l1_3, $this);
     /* chris advertise 1 user - dean
        ---------------------------------------------*/
     $MYSELF_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $CHRIS_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $DEAN_l2_1 = DbEntityHelper::createSignupMember($CHRIS_l1_3, false);
     /* chris advertise 1 user - emi
        ---------------------------------------------*/
     $MYSELF_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $CHRIS_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $EMI_l2_2 = DbEntityHelper::createSignupMember($CHRIS_l1_3, false);
     /* dean advertise 1 user - franz
        ---------------------------------------------*/
     $MYSELF_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $FRANZ_l3_1 = DbEntityHelper::createSignupMember($DEAN_l2_1, false);
     $MYSELF_total->add(Transaction::REASON_ADVERTISED_INDIRECT, 3);
     $anonym1 = DbEntityHelper::createSignupMember($DEAN_l2_1, false);
     $anonym2 = DbEntityHelper::createSignupMember($EMI_l2_2, false);
     $anonym3 = DbEntityHelper::createSignupMember($EMI_l2_2, false);
     $CHRIS_total->add(Transaction::REASON_ADVERTISED_LVL2);
     $CHRIS_total->add(Transaction::REASON_ADVERTISED_INDIRECT, 4);
     $ALF_l2_3 = DbEntityHelper::createSignupMember($CHRIS_l1_3, false);
     $GUST_l3_1 = DbEntityHelper::createSignupMember($ALF_l2_3, false);
     $anonym4 = DbEntityHelper::createSignupMember($ALF_l2_3, false);
     $anonym5 = DbEntityHelper::createSignupMember($GUST_l3_1, false);
     $anonym6 = DbEntityHelper::createSignupMember($GUST_l3_1, false);
     /* fee incomming in different order for all users
        ---------------------------------------------*/
     DbEntityHelper::fireReceivedMemberFee($anonym6, $now);
     DbEntityHelper::fireReceivedMemberFee($anonym5, $now);
     DbEntityHelper::fireReceivedMemberFee($anonym4, $now);
     DbEntityHelper::fireReceivedMemberFee($GUST_l3_1, $now);
     DbEntityHelper::fireReceivedMemberFee($anonym3, $now);
     DbEntityHelper::fireReceivedMemberFee($anonym2, $now);
     DbEntityHelper::fireReceivedMemberFee($anonym1, $now);
     DbEntityHelper::fireReceivedMemberFee($FRANZ_l3_1, $now);
     // the following order does matter. ALF has to be the third so that
     // MYSELF does not receive anynthing from his advertisings
     DbEntityHelper::fireReceivedMemberFee($DEAN_l2_1, $now);
     DbEntityHelper::fireReceivedMemberFee($EMI_l2_2, $now);
     DbEntityHelper::fireReceivedMemberFee($ALF_l2_3, $now);
     DbEntityHelper::fireReceivedMemberFee($bea_l1_2, $now);
     DbEntityHelper::fireReceivedMemberFee($far_l1_1, $now);
     // ---- assert - correct reserved paid events count
     $this->assertEquals(ReservedPaidEventQuery::create()->count(), 11);
     // ---- assert - ME got 10 since chris has not paid yet
     $MYSELF_total_before = new TransactionTotalsAssertions($MYSELF, $this);
     $MYSELF_total_before->add(Transaction::REASON_ADVERTISED_LVL1, 2);
     $MYSELF_total_before->assertTotals();
     // ---- assert - chris pais now as least. this trigger all remaining
     // reserved paid events
     DbEntityHelper::fireReceivedMemberFee($CHRIS_l1_3, $now);
     $this->assertEquals($MYSELF->getFundsLevel(), Member::FUNDS_LEVEL2);
     $this->assertEquals(ReservedPaidEventQuery::create()->count(), 0);
     // ---- assert - CHRIS - should be 90 euro
     $CHRIS_total->assertTotals();
     // ---- assert - ME
     $MYSELF_total->assertTotals();
 }
Esempio n. 5
0
 public function testFixRecursiveIndirectBonusSpreading()
 {
     $promoter1 = DbEntityHelper::createMember(null, ['LastName' => 'promoter1', 'FundsLevel' => \Member::FUNDS_LEVEL2]);
     $S1 = DbEntityHelper::createSignupMember($promoter1, true, ['lastName' => 'S1']);
     $S2 = DbEntityHelper::createSignupMember($S1, true, ['lastName' => 'S2']);
     $S3 = DbEntityHelper::createSignupMember($S2, true, ['lastName' => 'S3']);
     $S4 = DbEntityHelper::createSignupMember($S3, true, ['lastName' => 'S4']);
     // DbEntityHelper::createSignupMember($egal);
     $promoter1_total = new TransactionTotalsAssertions($promoter1, $this);
     $S1_total = new TransactionTotalsAssertions($S1, $this);
     $S2_total = new TransactionTotalsAssertions($S2, $this);
     $S3_total = new TransactionTotalsAssertions($S3, $this);
     $S4_total = new TransactionTotalsAssertions($S4, $this);
     // Zahlung s1
     $promoter1_total->add(Transaction::REASON_ADVERTISED_LVL2);
     // zahlung s2
     $promoter1_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $S1_total->add(Transaction::REASON_ADVERTISED_LVL1);
     // zahlung s3
     $promoter1_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $S2_total->add(Transaction::REASON_ADVERTISED_LVL1);
     // zahlung s4
     $promoter1_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $S3_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $promoter1_total->assertTotals();
     $S1_total->assertTotals();
     $S2_total->assertTotals();
     $S3_total->assertTotals();
 }
Esempio n. 6
0
 public static function setUpBonusMembers($doReset = true, $options = false)
 {
     if (!\MemberQuery::create()->findOneByNum(SystemStats::ACCOUNT_NUM_SYSTEM)) {
         \Tbmt\SystemSetup::setCon(self::$con);
         \Tbmt\SystemSetup::doSetup();
     }
     $options = array_merge(['IT' => true, 'VL' => true, 'OL' => true, 'PM' => true, 'VS2' => true, 'VS1' => true], $options ? $options : []);
     $currentParent = null;
     $currentBonusIds = '[]';
     /* it specialists
        ---------------------------------------------*/
     $IT_t = 0;
     $IT = null;
     if ($options['IT']) {
         if ($doReset === true || self::$it_member === null) {
             $IT_t = 0;
             $IT = self::$it_member = DbEntityHelper::createMember($currentParent, ['Type' => Member::TYPE_ITSPECIALIST, 'FundsLevel' => Member::FUNDS_LEVEL2]);
         } else {
             $IT = self::$it_member;
             $IT_t = self::$it_member->getOutstandingTotal()[DbEntityHelper::$currency];
         }
         $currentBonusIds = MemberBonusIds::populate($IT, '[]');
     }
     /* marketing leader
        ---------------------------------------------*/
     $VL_t = 0;
     $VL = null;
     if ($options['VL']) {
         $VL = DbEntityHelper::createMember($currentParent, ['Type' => Member::TYPE_MARKETINGLEADER, 'FundsLevel' => Member::FUNDS_LEVEL2, 'BonusIds' => $currentBonusIds]);
         $currentBonusIds = MemberBonusIds::populate($VL, $VL->getBonusIds());
         $currentParent = $VL;
     }
     /* org leader
        ---------------------------------------------*/
     $OL_t = 0;
     $OL = null;
     if ($options['OL']) {
         $OL = DbEntityHelper::createMember($currentParent, ['Type' => Member::TYPE_ORGLEADER, 'FundsLevel' => Member::FUNDS_LEVEL2, 'BonusIds' => $currentBonusIds]);
         $currentBonusIds = MemberBonusIds::populate($OL, $OL->getBonusIds());
         $currentParent = $OL;
     }
     /* promoter
        ---------------------------------------------*/
     $PM_t = 0;
     $PM = null;
     if ($options['PM']) {
         $IT_t += Transaction::getAmountForReason(Transaction::REASON_IT_BONUS);
         $VL_t += Transaction::getAmountForReason(Transaction::REASON_VL_BONUS);
         if (!$OL) {
             $OL_t =& $VL_t;
         }
         $OL_t += Transaction::getAmountForReason(Transaction::REASON_ADVERTISED_LVL2) + Transaction::getAmountForReason(Transaction::REASON_OL_BONUS) + Transaction::getAmountForReason(Transaction::REASON_PM_BONUS);
         // TODO question:
         // kriegt der ol in diesem fall 22 oder 21 euro ?
         // 22 weil der ja den bonus der promoters kriegt wenn er jemand
         // wirbt ohne das ein promoter dazwischen ist?
         if ($currentParent) {
             $PM = DbEntityHelper::createSignupMember($currentParent);
         } else {
             $PM = DbEntityHelper::createMember($currentParent, ['BonusIds' => $currentBonusIds]);
             $IT_t -= Transaction::getAmountForReason(Transaction::REASON_IT_BONUS);
             $VL_t -= Transaction::getAmountForReason(Transaction::REASON_VL_BONUS);
             $OL_t -= Transaction::getAmountForReason(Transaction::REASON_ADVERTISED_LVL2) + Transaction::getAmountForReason(Transaction::REASON_OL_BONUS) + Transaction::getAmountForReason(Transaction::REASON_PM_BONUS);
         }
         $PM->setType(Member::TYPE_PROMOTER)->setFundsLevel(Member::FUNDS_LEVEL2)->save(self::$con);
         $currentParent = $PM;
     }
     /* funds level 2
        ---------------------------------------------*/
     $VS2_t = 0;
     $VS2 = null;
     if ($options['VS2']) {
         $IT_t += Transaction::getAmountForReason(Transaction::REASON_IT_BONUS) * 3;
         $VL_t += Transaction::getAmountForReason(Transaction::REASON_VL_BONUS) * 3;
         if (!$OL) {
             $OL_t =& $VL_t;
         }
         $OL_t += Transaction::getAmountForReason(Transaction::REASON_OL_BONUS) * 3;
         if (!$PM) {
             $PM_t =& $OL_t;
         }
         $PM_t += Transaction::getAmountForReason(Transaction::REASON_ADVERTISED_LVL2) + Transaction::getAmountForReason(Transaction::REASON_PM_BONUS) + 2 * (Transaction::getAmountForReason(Transaction::REASON_PM_BONUS) + Transaction::getAmountForReason(Transaction::REASON_ADVERTISED_INDIRECT));
         $VS2_t += 2 * Transaction::getAmountForReason(Transaction::REASON_ADVERTISED_LVL1);
         $VS2 = DbEntityHelper::createSignupMember($currentParent);
         DbEntityHelper::createSignupMember($VS2);
         DbEntityHelper::createSignupMember($VS2);
         $currentParent = $VS2;
     }
     /* funds level 1
        ---------------------------------------------*/
     $VS1_t = 0;
     $VS1 = null;
     if ($options['VS1']) {
         $IT_t += Transaction::getAmountForReason(Transaction::REASON_IT_BONUS);
         $VL_t += Transaction::getAmountForReason(Transaction::REASON_VL_BONUS);
         if (!$OL) {
             $OL_t =& $VL_t;
         }
         $OL_t += Transaction::getAmountForReason(Transaction::REASON_OL_BONUS);
         if (!$PM) {
             $PM_t =& $OL_t;
         }
         $PM_t += Transaction::getAmountForReason(Transaction::REASON_PM_BONUS);
         if (!$VS2) {
             $VS2_t =& $PM_t;
         }
         $VS2_t += Transaction::getAmountForReason(Transaction::REASON_ADVERTISED_LVL2);
         $VS1 = DbEntityHelper::createSignupMember($currentParent);
     }
     return [[$IT, $VL, $OL, $PM, $VS2, $VS1], [$IT_t, $VL_t, $OL_t, $PM_t, $VS2_t, $VS1_t]];
 }
 public function testBuildCurrentCompleteUseCase()
 {
     // @see resources/docs/Test 13.04.2016.docx
     //
     $CEO = Member::getByNum(\SystemStats::ACCOUNT_NUM_CEO1);
     $CEO_total = new TransactionTotalsAssertions($CEO, $this);
     $this->totals['CEO1'] = $CEO_total;
     $sylvheim = Member::getByNum(\SystemStats::ACCOUNT_SYLVHEIM);
     $sylvheim_total = new TransactionTotalsAssertions($sylvheim, $this);
     $this->totals['sylvheim'] = $sylvheim_total;
     /**
      * director 01
      *
      */
     $director1 = DbEntityHelper::createMemberWithInvitation($sylvheim, ['type' => \Member::TYPE_MARKETINGLEADER, 'free_signup' => 1], ['firstName' => 'Director', 'lastName' => '01']);
     $director1_total = new TransactionTotalsAssertions($director1, $this);
     $this->totals['director1'] = $director1_total;
     $this->assertTotals();
     /**
      * Spender 01
      */
     $spender01 = DbEntityHelper::createSignupMember($director1, true, ['firstName' => 'spender', 'lastName' => '01']);
     $spender01_total = new TransactionTotalsAssertions($spender01, $this);
     $this->totals['spender01'] = $spender01_total;
     $CEO_total->add(Transaction::REASON_CEO1_BONUS);
     $sylvheim_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     $director1_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $director1_total->add(Transaction::REASON_PM_BONUS);
     $director1_total->add(Transaction::REASON_VL_BONUS);
     $director1_total->add(Transaction::REASON_OL_BONUS);
     $this->assertTotals();
     /**
      * Spender 02
      *
      * director 1 gets level 2
      */
     $spender02 = DbEntityHelper::createSignupMember($director1, true, ['firstName' => 'spender', 'lastName' => '02']);
     $spender02_total = new TransactionTotalsAssertions($spender02, $this);
     $this->totals['spender02'] = $spender02_total;
     $CEO_total->add(Transaction::REASON_CEO1_BONUS);
     $sylvheim_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     $director1_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $director1_total->add(Transaction::REASON_PM_BONUS);
     $director1_total->add(Transaction::REASON_VL_BONUS);
     $director1_total->add(Transaction::REASON_OL_BONUS);
     $this->assertTotals();
     /**
      * Spender 03
      */
     $spender03 = DbEntityHelper::createSignupMember($spender02, true, ['firstName' => 'spender', 'lastName' => '03']);
     $spender03_total = new TransactionTotalsAssertions($spender03, $this);
     $this->totals['spender03'] = $spender03_total;
     $CEO_total->add(Transaction::REASON_CEO1_BONUS);
     $sylvheim_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     $sylvheim_total->add(Transaction::REASON_PM_BONUS);
     $sylvheim_total->add(Transaction::REASON_VL_BONUS);
     $sylvheim_total->add(Transaction::REASON_OL_BONUS);
     $spender02_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $this->assertTotals();
     /**
      * Spender 04
      */
     $spender04 = DbEntityHelper::createSignupMember($spender03, true, ['firstName' => 'spender', 'lastName' => '04']);
     $spender04_total = new TransactionTotalsAssertions($spender04, $this);
     $this->totals['spender04'] = $spender04_total;
     $CEO_total->add(Transaction::REASON_CEO1_BONUS);
     $sylvheim_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     $sylvheim_total->add(Transaction::REASON_PM_BONUS);
     $sylvheim_total->add(Transaction::REASON_VL_BONUS);
     $sylvheim_total->add(Transaction::REASON_OL_BONUS);
     $spender03_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $this->assertTotals();
     /**
      * Spender 05
      */
     $spender05 = DbEntityHelper::createSignupMember($spender04, true, ['firstName' => 'spender', 'lastName' => '05']);
     $spender05_total = new TransactionTotalsAssertions($spender05, $this);
     $this->totals['spender05'] = $spender05_total;
     $CEO_total->add(Transaction::REASON_CEO1_BONUS);
     $sylvheim_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     $sylvheim_total->add(Transaction::REASON_PM_BONUS);
     $sylvheim_total->add(Transaction::REASON_VL_BONUS);
     $sylvheim_total->add(Transaction::REASON_OL_BONUS);
     $spender04_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $this->assertTotals();
     /**
      * Spender 06
      */
     $spender06 = DbEntityHelper::createSignupMember($spender05, true, ['firstName' => 'spender', 'lastName' => '06']);
     $spender06_total = new TransactionTotalsAssertions($spender06, $this);
     $this->totals['spender06'] = $spender06_total;
     $CEO_total->add(Transaction::REASON_CEO1_BONUS);
     $sylvheim_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     $sylvheim_total->add(Transaction::REASON_PM_BONUS);
     $sylvheim_total->add(Transaction::REASON_VL_BONUS);
     $sylvheim_total->add(Transaction::REASON_OL_BONUS);
     $spender05_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $this->assertTotals();
     /**
      * Spender 07
      */
     $spender07 = DbEntityHelper::createSignupMember($spender01, true, ['firstName' => 'spender', 'lastName' => '07']);
     $spender07_total = new TransactionTotalsAssertions($spender07, $this);
     $this->totals['spender07'] = $spender07_total;
     $CEO_total->add(Transaction::REASON_CEO1_BONUS);
     $sylvheim_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     $sylvheim_total->add(Transaction::REASON_PM_BONUS);
     $sylvheim_total->add(Transaction::REASON_VL_BONUS);
     $sylvheim_total->add(Transaction::REASON_OL_BONUS);
     $spender01_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $this->assertTotals();
     /**
      * Spender 08
      */
     $spender08 = DbEntityHelper::createSignupMember($spender07, true, ['firstName' => 'spender', 'lastName' => '08']);
     $spender08_total = new TransactionTotalsAssertions($spender08, $this);
     $this->totals['spender08'] = $spender08_total;
     $CEO_total->add(Transaction::REASON_CEO1_BONUS);
     $sylvheim_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     $sylvheim_total->add(Transaction::REASON_PM_BONUS);
     $sylvheim_total->add(Transaction::REASON_VL_BONUS);
     $sylvheim_total->add(Transaction::REASON_OL_BONUS);
     $spender07_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $this->assertTotals();
     /**
      * Spender 09
      */
     $spender09 = DbEntityHelper::createSignupMember($spender08, true, ['firstName' => 'spender', 'lastName' => '09']);
     $spender09_total = new TransactionTotalsAssertions($spender09, $this);
     $this->totals['spender09'] = $spender09_total;
     $CEO_total->add(Transaction::REASON_CEO1_BONUS);
     $sylvheim_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     $sylvheim_total->add(Transaction::REASON_PM_BONUS);
     $sylvheim_total->add(Transaction::REASON_VL_BONUS);
     $sylvheim_total->add(Transaction::REASON_OL_BONUS);
     $spender08_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $this->assertTotals();
     /**
      * Spender 10
      */
     $spender10 = DbEntityHelper::createSignupMember($spender09, true, ['firstName' => 'spender', 'lastName' => '10']);
     $spender10_total = new TransactionTotalsAssertions($spender10, $this);
     $this->totals['spender10'] = $spender10_total;
     $CEO_total->add(Transaction::REASON_CEO1_BONUS);
     $sylvheim_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     $sylvheim_total->add(Transaction::REASON_PM_BONUS);
     $sylvheim_total->add(Transaction::REASON_VL_BONUS);
     $sylvheim_total->add(Transaction::REASON_OL_BONUS);
     $spender09_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $this->assertTotals();
     /**
      * Spender 11
      */
     $spender11 = DbEntityHelper::createSignupMember($director1, true, ['firstName' => 'spender', 'lastName' => '11']);
     $spender11_total = new TransactionTotalsAssertions($spender11, $this);
     $this->totals['spender11'] = $spender11_total;
     $CEO_total->add(Transaction::REASON_CEO1_BONUS);
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     $director1_total->add(Transaction::REASON_ADVERTISED_LVL2);
     $director1_total->add(Transaction::REASON_PM_BONUS);
     $director1_total->add(Transaction::REASON_VL_BONUS);
     $director1_total->add(Transaction::REASON_OL_BONUS);
     $this->assertTotals();
     /**
      * promoter 01
      * free invitation, no bonuses
      */
     $promoter01 = DbEntityHelper::createMemberWithInvitation($director1, ['type' => \Member::TYPE_PROMOTER, 'free_signup' => 1], ['firstName' => 'promoter', 'lastName' => '01']);
     $promoter01_total = new TransactionTotalsAssertions($promoter01, $this);
     $this->totals['promoter01'] = $promoter01_total;
     $this->assertTotals();
     /**
      * Spender 12
      */
     $spender12 = DbEntityHelper::createSignupMember($promoter01, true, ['firstName' => 'spender', 'lastName' => '12']);
     $spender12_total = new TransactionTotalsAssertions($spender12, $this);
     $this->totals['spender12'] = $spender12_total;
     $CEO_total->add(Transaction::REASON_CEO1_BONUS);
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     $director1_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $director1_total->add(Transaction::REASON_VL_BONUS);
     $director1_total->add(Transaction::REASON_OL_BONUS);
     $promoter01_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $promoter01_total->add(Transaction::REASON_PM_BONUS);
     $this->assertTotals();
     /**
      * promoter 02
      */
     $promoter02 = DbEntityHelper::createMemberWithInvitation($director1, ['type' => \Member::TYPE_PROMOTER], ['firstName' => 'promoter', 'lastName' => '02']);
     $promoter02_total = new TransactionTotalsAssertions($promoter02, $this);
     $this->totals['promoter02'] = $promoter02_total;
     $CEO_total->add(Transaction::REASON_CEO1_BONUS);
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     $director1_total->add(Transaction::REASON_ADVERTISED_LVL2);
     $director1_total->add(Transaction::REASON_VL_BONUS);
     $director1_total->add(Transaction::REASON_OL_BONUS);
     $director1_total->add(Transaction::REASON_PM_BONUS);
     $this->assertTotals();
     /**
      * Spender 13
      */
     $spender13 = DbEntityHelper::createSignupMember($promoter02, true, ['firstName' => 'spender', 'lastName' => '13']);
     $spender13_total = new TransactionTotalsAssertions($spender13, $this);
     $this->totals['spender13'] = $spender13_total;
     $CEO_total->add(Transaction::REASON_CEO1_BONUS);
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     $director1_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $director1_total->add(Transaction::REASON_VL_BONUS);
     $director1_total->add(Transaction::REASON_OL_BONUS);
     $promoter02_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $promoter02_total->add(Transaction::REASON_PM_BONUS);
     $this->assertTotals();
     /**
      * ol 01
      * free invitation, no bonuses
      */
     $ol01 = DbEntityHelper::createMemberWithInvitation($director1, ['type' => \Member::TYPE_ORGLEADER, 'free_signup' => 1], ['firstName' => 'ol', 'lastName' => '02']);
     $ol01_total = new TransactionTotalsAssertions($ol01, $this);
     $this->totals['ol01'] = $ol01_total;
     $this->assertTotals();
     // We need to stop here because the ol is not allowed to invitate before
     // becomming level 2
     // return;
     // /**
     //  * promoter 03
     //  */
     // $promoter03 = DbEntityHelper::createMemberWithInvitation($ol01, [
     //     'type' => \Member::TYPE_PROMOTER,
     //     'free_signup' => 1
     // ], [
     //     'firstName' => 'promoter',
     //     'lastName' => '03'
     // ]);
     // $promoter03_total = new TransactionTotalsAssertions($promoter03, $this);
     // $this->totals['promoter03'] = $promoter03_total;
     // $this->assertTotals();
     // /**
     //  * Spender 14
     //  */
     // $spender14 = DbEntityHelper::createSignupMember($promoter03, true, [
     //     'firstName' => 'spender',
     //     'lastName' => '14'
     // ]);
     // $spender14_total = new TransactionTotalsAssertions($spender14, $this);
     // $this->totals['spender14'] = $spender14_total;
     // $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     // $director1_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     // $director1_total->add(Transaction::REASON_VL_BONUS);
     // $director1_total->add(Transaction::REASON_OL_BONUS);
     // $promoter03_total->add(Transaction::REASON_ADVERTISED_LVL1);
     // $promoter03_total->add(Transaction::REASON_PM_BONUS);
     // $this->assertTotals();
     /**
      * CEO Tree beginns here
      */
     /**
      * Spender I.
      */
     $spenderI = DbEntityHelper::createSignupMember($CEO, true, ['firstName' => 'spender', 'lastName' => 'I.']);
     $spenderI_total = new TransactionTotalsAssertions($spenderI, $this);
     $this->totals['spenderI'] = $spenderI_total;
     $CEO_total->add(Transaction::REASON_CEO1_BONUS);
     $CEO_total->add(Transaction::REASON_SYLVHEIM);
     $CEO_total->add(Transaction::REASON_VL_BONUS);
     $CEO_total->add(Transaction::REASON_OL_BONUS);
     $CEO_total->add(Transaction::REASON_PM_BONUS);
     $CEO_total->add(Transaction::REASON_ADVERTISED_LVL2);
     $this->assertTotals();
     /**
      * director I.
      *
      */
     $directorI = DbEntityHelper::createMemberWithInvitation($CEO, ['type' => \Member::TYPE_MARKETINGLEADER, 'free_signup' => 1], ['firstName' => 'Director', 'lastName' => 'I']);
     $directorI_total = new TransactionTotalsAssertions($directorI, $this);
     $this->totals['directorI'] = $directorI_total;
     $this->assertTotals();
     /**
      * Spender II
      */
     $spenderII = DbEntityHelper::createSignupMember($directorI, true, ['firstName' => 'spender', 'lastName' => 'II']);
     $spenderII_total = new TransactionTotalsAssertions($spenderII, $this);
     $this->totals['spenderII'] = $spenderII_total;
     $CEO_total->add(Transaction::REASON_CEO1_BONUS);
     $CEO_total->add(Transaction::REASON_SYLVHEIM);
     $CEO_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $directorI_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $directorI_total->add(Transaction::REASON_VL_BONUS);
     $directorI_total->add(Transaction::REASON_OL_BONUS);
     $directorI_total->add(Transaction::REASON_PM_BONUS);
     $this->assertTotals();
     /**
      * Spender III
      */
     $spenderIII = DbEntityHelper::createSignupMember($spenderII, true, ['firstName' => 'spender', 'lastName' => 'III']);
     $spenderIII_total = new TransactionTotalsAssertions($spenderIII, $this);
     $this->totals['spenderIII'] = $spenderIII_total;
     $CEO_total->add(Transaction::REASON_CEO1_BONUS);
     $CEO_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $CEO_total->add(Transaction::REASON_SYLVHEIM);
     $CEO_total->add(Transaction::REASON_VL_BONUS);
     $CEO_total->add(Transaction::REASON_OL_BONUS);
     $CEO_total->add(Transaction::REASON_PM_BONUS);
     $spenderII_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $this->assertTotals();
     /**
      * Spender IV.
      */
     $spenderIV = DbEntityHelper::createSignupMember($CEO, true, ['firstName' => 'spender', 'lastName' => 'IV']);
     $spenderIV_total = new TransactionTotalsAssertions($spenderIV, $this);
     $this->totals['spenderIV'] = $spenderIV_total;
     $CEO_total->add(Transaction::REASON_ADVERTISED_LVL2);
     $CEO_total->add(Transaction::REASON_CEO1_BONUS);
     $CEO_total->add(Transaction::REASON_SYLVHEIM);
     $CEO_total->add(Transaction::REASON_VL_BONUS);
     $CEO_total->add(Transaction::REASON_OL_BONUS);
     $CEO_total->add(Transaction::REASON_PM_BONUS);
     $this->assertTotals();
 }
 public function test_105_director_marketingleader_promoter()
 {
     $sylvheim = Member::getByNum(\SystemStats::ACCOUNT_SYLVHEIM);
     $sylvheim_total = new TransactionTotalsAssertions($sylvheim, $this);
     $this->assertEquals(Member::FUNDS_LEVEL2, $sylvheim->getFundsLevel());
     /* advertise director
        ---------------------------------------------*/
     $director = DbEntityHelper::createMemberWithInvitation($sylvheim, Member::TYPE_MARKETINGLEADER);
     $director_total = new TransactionTotalsAssertions($director, $this);
     $this->assertEquals(0, $director->getAdvertisedCount());
     $sylvheim_total->add(Transaction::REASON_ADVERTISED_LVL2);
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     $sylvheim_total->add(Transaction::REASON_VL_BONUS);
     $sylvheim_total->add(Transaction::REASON_OL_BONUS);
     $sylvheim_total->add(Transaction::REASON_PM_BONUS);
     $sylvheim_total->assertTotals();
     /* director advertise orgleader
        ---------------------------------------------*/
     $orgleader = DbEntityHelper::createMemberWithInvitation($director, Member::TYPE_ORGLEADER);
     $orgleader_total = new TransactionTotalsAssertions($orgleader, $this);
     $sylvheim_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     $director_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $director_total->add(Transaction::REASON_VL_BONUS);
     $director_total->add(Transaction::REASON_OL_BONUS);
     $director_total->add(Transaction::REASON_PM_BONUS);
     // $orgleader wird sylvheim nachgestellt
     $this->assertEquals($orgleader->getParentId(), $sylvheim->getId());
     $sylvheim_total->assertTotals();
     $director_total->assertTotals();
     $this->assertEquals(1, $director->getAdvertisedCount());
     $this->assertEquals(Member::FUNDS_LEVEL1, $director->getFundsLevel());
     /* orgleader advertise promoter
        ---------------------------------------------*/
     $promoter = DbEntityHelper::createMemberWithInvitation($orgleader, Member::TYPE_PROMOTER);
     $promoter_total = new TransactionTotalsAssertions($promoter, $this);
     $this->assertEquals(1, $director->getAdvertisedCount());
     $this->assertEquals(Member::FUNDS_LEVEL1, $director->getFundsLevel());
     $sylvheim_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     $sylvheim_total->add(Transaction::REASON_VL_BONUS);
     $orgleader_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $orgleader_total->add(Transaction::REASON_OL_BONUS);
     $orgleader_total->add(Transaction::REASON_PM_BONUS);
     // $promoter wird sylvheim nachgestellt
     $this->assertEquals($promoter->getParentId(), $sylvheim->getId());
     $sylvheim_total->assertTotals();
     $director_total->assertTotals();
     $orgleader_total->assertTotals();
     /* promoter advertise member
        ---------------------------------------------*/
     $donator = DbEntityHelper::createSignupMember($promoter);
     $sylvheim_total->add(Transaction::REASON_ADVERTISED_INDIRECT);
     $sylvheim_total->add(Transaction::REASON_SYLVHEIM);
     $sylvheim_total->add(Transaction::REASON_VL_BONUS);
     $sylvheim_total->add(Transaction::REASON_OL_BONUS);
     $promoter_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $promoter_total->add(Transaction::REASON_PM_BONUS);
     $this->assertEquals($donator->getParentId(), $sylvheim->getId());
     $sylvheim_total->assertTotals();
     $director_total->assertTotals();
     $orgleader_total->assertTotals();
     $promoter_total->assertTotals();
 }
 public function testSingleDistributionModel()
 {
     /* Setup
        ---------------------------------------------*/
     $systemAccount = SystemStats::getSystemAccount();
     $systemTransfer = new TransactionTotalsAssertions($systemAccount, $this);
     $promoter1 = DbEntityHelper::createMember();
     $MYSELF = DbEntityHelper::createSignupMember($promoter1);
     $this->assertEquals($MYSELF->getFundsLevel(), Member::FUNDS_LEVEL1);
     /* Advertise 2 users
        ---------------------------------------------*/
     $far_l1_1 = DbEntityHelper::createSignupMember($MYSELF);
     $bea_l1_2 = DbEntityHelper::createSignupMember($MYSELF);
     // Funds level never changes
     $this->assertEquals($MYSELF->getFundsLevel(), Member::FUNDS_LEVEL1);
     $MYSELF_total = new TransactionTotalsAssertions($MYSELF, $this);
     $MYSELF_total->add(Transaction::REASON_ADVERTISED_LVL1, 2);
     $MYSELF_total->assertTotals();
     /* Advertise 1 more user - chris
        ---------------------------------------------*/
     $CHRIS_l1_3 = DbEntityHelper::createSignupMember($MYSELF);
     // ---- assert - ME
     $MYSELF_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $MYSELF_total->assertTotals();
     /* chris advertise 1 user - dean
        ---------------------------------------------*/
     $DEAN_l2_1 = DbEntityHelper::createSignupMember($CHRIS_l1_3);
     // ---- assert - CHRIS
     $CHRIS_transfer = DbEntityHelper::getCurrentTransferBundle($CHRIS_l1_3);
     $CHRIS_total = new TransactionTotalsAssertions($CHRIS_l1_3, $this);
     $CHRIS_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $CHRIS_total->assertTotals();
     // ---- assert - ME
     // unchanged
     $MYSELF_total->assertTotals();
     /* chris advertise 1 user - emi
        ---------------------------------------------*/
     $EMI_l2_2 = DbEntityHelper::createSignupMember($CHRIS_l1_3);
     // ---- assert - CHRIS
     $CHRIS_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $CHRIS_total->assertTotals();
     $this->assertEquals($CHRIS_l1_3->getFundsLevel(), Member::FUNDS_LEVEL1);
     // ---- assert - ME
     // unchanged
     $MYSELF_total->assertTotals();
     /* dean advertise 1 user - franz
        ---------------------------------------------*/
     $FRANZ_l3_1 = DbEntityHelper::createSignupMember($DEAN_l2_1);
     // ---- assert - CHRIS - remain at 10 euro
     $CHRIS_total->assertTotals();
     // ---- assert - ME
     // unchanged
     $MYSELF_total->assertTotals();
     DbEntityHelper::createSignupMember($DEAN_l2_1);
     DbEntityHelper::createSignupMember($EMI_l2_2);
     DbEntityHelper::createSignupMember($EMI_l2_2);
     $CHRIS_total->add(Transaction::REASON_ADVERTISED_LVL1);
     $ALF_l2_3 = DbEntityHelper::createSignupMember($CHRIS_l1_3);
     $GUST_l3_1 = DbEntityHelper::createSignupMember($ALF_l2_3);
     DbEntityHelper::createSignupMember($ALF_l2_3);
     // ---- assert - CHRIS - at 60 euro
     $CHRIS_total->assertTotals();
     // ---- assert - ME
     // unchanged
     $MYSELF_total->assertTotals();
     DbEntityHelper::createSignupMember($GUST_l3_1);
     DbEntityHelper::createSignupMember($GUST_l3_1);
     // ---- assert - CHRIS - at 90 euro
     // unchanged
     $CHRIS_total->assertTotals();
     /* if anyone advertised more than 2 user i dont get anything from the third on
        ---------------------------------------------*/
     DbEntityHelper::createSignupMember($CHRIS_l1_3);
     DbEntityHelper::createSignupMember($CHRIS_l1_3);
     DbEntityHelper::createSignupMember($CHRIS_l1_3);
     DbEntityHelper::createSignupMember($GUST_l3_1);
     DbEntityHelper::createSignupMember($GUST_l3_1);
     DbEntityHelper::createSignupMember($GUST_l3_1);
     DbEntityHelper::createSignupMember($ALF_l2_3);
     DbEntityHelper::createSignupMember($ALF_l2_3);
     DbEntityHelper::createSignupMember($ALF_l2_3);
     DbEntityHelper::createSignupMember($EMI_l2_2);
     DbEntityHelper::createSignupMember($EMI_l2_2);
     /* as well, i dont get anything but 5euro from my first advertisings
        ---------------------------------------------*/
     DbEntityHelper::createSignupMember($bea_l1_2);
     DbEntityHelper::createSignupMember($bea_l1_2);
     DbEntityHelper::createSignupMember($bea_l1_2);
     // ---- assert - MYSELF
     $MYSELF_total->assertTotals();
 }
Esempio n. 10
0
<?php

include dirname(__FILE__) . '/bootstrap.php';
$con = Propel::getConnection();
DbEntityHelper::setCon($con);
DbEntityHelper::truncateDatabase();
list(list($IT, $VL, $OL, $PM, $VS2, $VS1), list($trfIT, $trfVL, $trfOL, $trfPM, $trfVS2, $trfVS1), ) = DbEntityHelper::setUpBonusMembers(false);
$pm1 = DbEntityHelper::createSignupMember($PM);
$pm2 = DbEntityHelper::createSignupMember($PM);
$pm3 = DbEntityHelper::createSignupMember($PM);
$pm4 = DbEntityHelper::createSignupMember($PM);
$pm5 = DbEntityHelper::createSignupMember($PM);
$pm1_1 = DbEntityHelper::createSignupMember($pm1);
$pm1_2 = DbEntityHelper::createSignupMember($pm1);
$pm1_3 = DbEntityHelper::createSignupMember($pm1);
$pm1_4 = DbEntityHelper::createSignupMember($pm1);
$pm1_5 = DbEntityHelper::createSignupMember($pm1);
$pm1_6 = DbEntityHelper::createSignupMember($pm1);
$pm2_1 = DbEntityHelper::createSignupMember($pm2);
$pm2_1_1 = DbEntityHelper::createSignupMember($pm2_1);
$pm2_1_1_1 = DbEntityHelper::createSignupMember($pm2_1_1);
$pm2_1_1_1_1 = DbEntityHelper::createSignupMember($pm2_1_1_1);
$pm2_1_1_1_1_1 = DbEntityHelper::createSignupMember($pm2_1_1_1_1);
DbEntityHelper::createSignupMember($pm2_1_1_1_1_1);
DbEntityHelper::createSignupMember($pm2_1_1_1_1_1);
DbEntityHelper::createSignupMember($pm2_1_1_1_1_1);
DbEntityHelper::createSignupMember($pm4);
DbEntityHelper::createSignupMember($pm4);
Esempio n. 11
0
 public function testVariant12()
 {
     /**
      * OL - Neues Mitglied
      * 22$
      * ------------------------------------------*/
     /* Setup
        ---------------------------------------------*/
     DbEntityHelper::setCon(self::$propelCon);
     list(list($IT, $VL, $OL, $PM, $VS2, $VS1), list($trfIT, $trfVL, $trfOL, $trfPM, $trfVS2, $trfVS1), ) = DbEntityHelper::setUpBonusMembers(true, ['VL' => false]);
     $new = DbEntityHelper::createSignupMember($OL);
     $trfIT += Transaction::getAmountForReason(Transaction::REASON_IT_BONUS);
     // $trfVL += Transaction::getAmountForReason(Transaction::REASON_VL_BONUS);
     $trfOL += Transaction::getAmountForReason(Transaction::REASON_OL_BONUS) + Transaction::getAmountForReason(Transaction::REASON_PM_BONUS) + Transaction::getAmountForReason(Transaction::REASON_ADVERTISED_LVL2);
     // $trfPM += Transaction::getAmountForReason(Transaction::REASON_PM_BONUS);
     // $trfVS2 += Transaction::getAmountForReason(Transaction::REASON_ADVERTISED_INDIRECT);
     // $trfVS1 += Transaction::getAmountForReason(Transaction::REASON_ADVERTISED_LVL1);
     $this->assertTransferTotal($trfIT, $IT);
     // $this->assertTransferTotal($trfVL, $VL);
     $this->assertTransferTotal($trfOL, $OL);
     $this->assertTransferTotal($trfPM, $PM);
     $this->assertTransferTotal($trfVS2, $VS2);
     $this->assertTransferTotal($trfVS1, $VS1);
 }
Esempio n. 12
0
 public function testTopLevelBonusSpreading()
 {
     $ceo = Member::getByNum(\SystemStats::ACCOUNT_NUM_CEO1);
     $it = Member::getByNum(\SystemStats::ACCOUNT_NUM_IT);
     $sylvheim = Member::getByNum(\SystemStats::ACCOUNT_SYLVHEIM);
     $executive = Member::getByNum(\SystemStats::ACCOUNT_EXECUTIVE);
     $ceo_total = new TransactionTotalsAssertions($ceo, $this);
     $it_total = new TransactionTotalsAssertions($it, $this);
     $sylvheim_total = new TransactionTotalsAssertions($sylvheim, $this);
     $executive_total = new TransactionTotalsAssertions($executive, $this);
     // Any advertise any
     $any = DbEntityHelper::createSignupMember($executive);
     $ceo_total->add(Transaction::REASON_CEO1_BONUS, 1);
     $ceo_total->add(Transaction::REASON_VL_BONUS, 1);
     $ceo_total->add(Transaction::REASON_OL_BONUS, 1);
     $ceo_total->add(Transaction::REASON_PM_BONUS, 1);
     $ceo_total->add(Transaction::REASON_SYLVHEIM, 1);
     $it_total->add(Transaction::REASON_IT_BONUS, 1);
     // Sylvhelm gets nothing here!
     $ceo_total->assertTotals();
     $it_total->assertTotals();
     $sylvheim_total->assertTotals();
 }