public function addRemainingToAccounts($when, \PropelPDO $con) { $systemAccount = \SystemStats::getSystemAccount(); $transfer = $systemAccount->getCurrentTransferBundle($this->currency, $con); $transaction = $transfer->createTransaction($systemAccount, $this->toSystemAccount, \Transaction::REASON_REMAINING_MEMBER_FEE, $this->member->getId(), $when, $con); $systemAccount->save($con); }
public function testSnowballModel() { /* 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); $this->assertEquals($MYSELF->getFundsLevel(), Member::FUNDS_LEVEL2); $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_LVL2); $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 $MYSELF_total->add(Transaction::REASON_ADVERTISED_INDIRECT); $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_LEVEL2); // ---- assert - ME $MYSELF_total->add(Transaction::REASON_ADVERTISED_INDIRECT); $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 $MYSELF_total->add(Transaction::REASON_ADVERTISED_INDIRECT); $MYSELF_total->assertTotals(); DbEntityHelper::createSignupMember($DEAN_l2_1); DbEntityHelper::createSignupMember($EMI_l2_2); DbEntityHelper::createSignupMember($EMI_l2_2); $CHRIS_total->add(Transaction::REASON_ADVERTISED_LVL2); $CHRIS_total->add(Transaction::REASON_ADVERTISED_INDIRECT, 2); $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 $MYSELF_total->add(Transaction::REASON_ADVERTISED_INDIRECT, 3); $MYSELF_total->assertTotals(); $CHRIS_total->add(Transaction::REASON_ADVERTISED_INDIRECT, 2); DbEntityHelper::createSignupMember($GUST_l3_1); DbEntityHelper::createSignupMember($GUST_l3_1); // ---- assert - CHRIS - at 90 euro $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(); }