Пример #1
0
 public function cancelLoan(Loan $loan)
 {
     PropelDB::transaction(function ($con) use($loan) {
         $loan->setStatus(Loan::CANCELED)->setExpiredDate(new \DateTime());
         $loan->save($con);
         $borrower = $loan->getBorrower();
         $borrower->setActiveLoan(null)->setLoanStatus(Loan::NO_LOAN);
         $borrower->save($con);
         $this->changeLoanStage($con, $loan, Loan::OPEN, Loan::CANCELED);
         $this->refundLenders($con, $loan, Loan::CANCELED);
     });
     // TODO emails to refunded lenders
     return true;
 }