/**
  * Gets a Transaction Support record
  *
  * @param int $id
  * @return Model_Core_TransactionSupport|null
  */
 public function getTransactionSupport($id)
 {
     $select = $this->select();
     $select->where('TransID = ?', $id);
     $row = $this->fetchRow($select);
     // There should only be a single transactionSupport with the given id
     if (count($row) == 1) {
         $transactionSupport = new Model_Core_TransactionSupport();
         $transactionSupport->setTransId($row->TransID)->setEnquiryId($row->EnquiryID)->setProductId($row->ProductID)->setAgentTypeId($row->AgentTypeID)->setDealAgentTypeId($row->DealAgentTypeID)->setGuarantor($row->Guarantor)->setBand($row->Band)->setDuration($row->Duration)->setRenewal($row->Renewal)->setRunningAmount($row->RunningAmount)->setInsurance($row->Insurance)->setIpt($row->IPT)->setIncome($row->Income)->setInvoiced($row->Invoiced)->setTransdate($row->Transdate)->setStatusChangeDate($row->StatusChangeDate);
         return $transactionSupport;
     }
     return null;
 }
 /**
  * Creates a transaction
  *
  * @param string $transactionDate
  * @param float $premium
  * @param float $insuranceNetAmount
  * @param int|null $previousId
  * @return bool
  */
 protected function createTransaction($transactionDate, $premium, $insuranceNetAmount, $previousId = null)
 {
     $product = $this->container->get('rrp.legacy.datasource.product');
     $productData = $product->getProductByName($this->appData->getProductName());
     $ipt = round($premium * $this->iptPercent / 100.0, 2);
     $this->transData->setId(0)->setPreviousId($previousId)->setEnquiryId(0)->setAmount($premium + $ipt)->setStatusId($this->transStatusLive)->setInsuranceNetAmount($insuranceNetAmount)->setTransactionDate($transactionDate)->setTermId($this->termId)->setMtaId($this->mtaId);
     $transId = $this->transaction->createTransaction($this->transData);
     $this->tsData->setTransId($transId)->setEnquiryId(0)->setProductId($productData->key)->setAgentTypeId(0)->setDealAgentTypeId(0)->setGuarantor(0)->setBand($this->band)->setDuration($this->appData->getPolicyLength())->setRunningAmount($premium + $ipt)->setInsurance($insuranceNetAmount)->setIpt($ipt)->setIncome($premium - $insuranceNetAmount)->setInvoiced(0)->setTransDate($transactionDate);
     if ($previousId) {
         $this->tsData->setStatusChangeDate($this->currentDateAt->format('Y-m-d'));
     }
     $this->transactionAmount += $premium + $ipt;
     return $this->transactionSupport->createTransactionSupport($this->tsData);
 }