Ejemplo n.º 1
0
 /**
  * creates payout references for deposit
  * does not flush
  *
  * @param Deposit $deposit
  */
 public function createPayout(Deposit $deposit)
 {
     $payout = new Payout();
     $payout->setAccount($deposit->getAccount());
     $payout->setAmount($deposit->getAmount() * $this->round->getPayoutPercent() / 100);
     $payout->setExpectedAmount($payout->getAmount());
     $payout->setFee($payout->getAmount() * $this->round->getPayoutFeePercent() / 100);
     $payout->setType(Payout::TYPE_DEFAULT_PAYOUT);
     if ($deposit->isConfirmed()) {
         $payout->setReadyForPayout(true);
     }
     $payout->setDeposit($deposit);
     $this->em->persist($payout);
     $deposit->getPayouts()->add($payout);
     // referrer payout
     if ($deposit->getAccount()->getReferrer()) {
         $payout = new Payout();
         $payout->setAccount($deposit->getAccount()->getReferrer());
         $payout->setAmount($deposit->getAmount() * $this->round->getReferrerPayoutPercent() / 100);
         $payout->setExpectedAmount($payout->getAmount());
         $payout->setFee($payout->getAmount() * $this->round->getPayoutFeePercent() / 100);
         $payout->setType(Payout::TYPE_REFERRER_PAYOUT);
         if ($deposit->isConfirmed()) {
             $payout->setReadyForPayout(true);
         }
         $payout->setDeposit($deposit);
         $this->em->persist($payout);
         $deposit->getPayouts()->add($payout);
     }
 }