public function action_changeShort() { echo 'test2'; return; $member = \MemberQuery::create()->findOneById(1); $con = \Propel::getConnection(); if (!$con->beginTransaction()) { throw new \Exception('Could not begin transaction'); } try { $transfer = \TransferQuery::create()->findOneById(1); if (!$transfer) { $transfer = new \Transfer(); $transfer->setMemberId($member->getId()); $transfer->save($con); $transfer = \TransferQuery::create()->findOneById(1); } $transfer->setAmount($transfer->getAmount() + 2); $transfer->save($con); if (!$con->commit()) { throw new \Exception('Could not commit transaction'); } } catch (\Exception $e) { $con->rollBack(); throw $e; } print_r('<pre>'); print_r($transfer->toArray()); print_r('</pre>'); }
<?php echo 'test1'; include dirname(__FILE__) . '/bootstrap.php'; $member = \MemberQuery::create()->findOneById(1); $con = \Propel::getConnection(); if (!$con->beginTransaction()) { throw new \Exception('Could not begin transaction'); } try { $transfer = \TransferQuery::create()->findOneById(1); if (!$transfer) { $transfer = new \Transfer(); $transfer->setMemberId($member->getId()); $transfer->save($con); $transfer = \TransferQuery::create()->findOneById(1); } $transfer->setAmount($transfer->getAmount() + 2); $transfer->save($con); if (!$con->commit()) { throw new \Exception('Could not commit transaction'); } } catch (\Exception $e) { $con->rollBack(); throw $e; } print_r('<pre>'); print_r($transfer->toArray()); print_r('</pre>'); echo "\n CONSISTENCY 2\n";
/** * 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. * */ public function onReceivedMemberFee($currency, $when, PropelPDO $con) { $referer = $this->getMemberRelatedByParentId($con); if ($referer && !$referer->hadPaid()) { // if the parent hasnt paid yet. reserve this event until his fee is // comming in or we kick him from the list. $referer->reserveReceivedMemberFeeEvent($this, $currency, $when, $con); return; } $this->setPaidDate($when); TransferQuery::create()->filterByState(Transfer::STATE_RESERVED)->filterByMember($this)->update(['State' => Transfer::STATE_COLLECT], $con); // TODO - replace config value with real received value from bank transaction $memberFee = new \Tbmt\MemberFee(\Tbmt\Config::get('member_fee'), $this, $currency); // @see resources/snowball.txt - processes - P2 if ($referer) { $referer->payAdvertisingFor($memberFee, $this, $currency, $when, $con); $newAdvertisedCount = $referer->convertOutstandingAdvertisedCount(1); if ($newAdvertisedCount == 2) { $referer->setFundsLevel(Member::FUNDS_LEVEL2); $referer->setMemberRelatedByParentId(null); } $referer->save($con); } $memberFee->addRemainingToAccounts($when, $con); $this->fireReservedReceivedMemberFeeEvents($con); $this->save($con); }
/** * 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); }