/** * Uploads xml file into bank account * @param TransactionUploadListInterface $list given list * @return mixed bank instruction ID when upload was succesfull otherwise false */ public function uploadList(TransactionUploadListInterface $list) { foreach ($list->getTransactions() as $transaction) { $this->addTransactionToXml($transaction); } $request = $this->curlInit($this->urlBuilder->buildUpload()); $response = $this->parseResponseXml($this->curlProcess($request)); return $this->curlResult($response); }
/** * Initializes given list by given models * @param TransactionUploadList $list given list to be used * @param array $models given models * @return TransactionUploadList initialized list */ private function initTransactionUploadList(TransactionUploadListInterface $list, array $models) { foreach ($models as $model) { /** @var $model TransactionalRecordInterface */ if ($model instanceof TransactionalRecordInterface) { // TODO: check if transaction would be domestic or not $transaction = new components\transactions\DomesticTransaction(); $transaction->setCurrency(components\transactions\DomesticTransaction::CURRENCY_CZ); if ($this->test) { $transaction->setAccountFrom($this->testAccountNumFrom); $transaction->setAccountTo($this->testAccountNumTo); $transaction->setBankCode($this->testAccountBankCodeTo); $transaction->setAmount(round($model->getTransactionAmount() / self::TEST_AMOUNT_FACTOR, 2)); } else { $transaction->setAccountFrom($model->getTransactionSenderAccountNum()); $transaction->setAccountTo($model->getTransactionRecipientAccountNum()); $transaction->setBankCode($model->getTransactionRecipientBankCode()); $transaction->setAmount(round($model->getTransactionAmount(), 2)); } $transaction->setVariableSymbol($model->getTransactionVariableSymbol()); $transaction->setSpecificSymbol($model->primaryKey); $transaction->setDate(new \DateTime('NOW')); $transaction->setMessage($model->getTransactionComment()); if ($model->setTransactionAsReadyToPay() && $model->save()) { $list->addTransaction($transaction); } } } return $list; }