/** * Fail Action * * @return void */ public function paymentCancelAction() { if ($this->request->hasArgument('hash') && !empty($this->request->getArgument('hash'))) { $hash = $this->request->getArgument('hash'); $querySettings = $this->objectManager->get(\TYPO3\CMS\Extbase\Persistence\Generic\Typo3QuerySettings::class); $querySettings->setStoragePageIds(array($this->settings['order']['pid'])); $this->cartRepository->setDefaultQuerySettings($querySettings); $this->cart = $this->cartRepository->findOneByFHash($hash); if ($this->cart) { $orderItem = $this->cart->getOrderItem(); $payment = $orderItem->getPayment(); $payment->setStatus('canceled'); $this->paymentRepository->update($payment); $this->persistenceManager->persistAll(); $this->addFlashMessage(\TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('tx_cart.controller.order.action.payment_cancel.successfully_canceled', $this->extensionName), '', \TYPO3\CMS\Core\Messaging\AbstractMessage::OK); $this->sendMails($orderItem, 'cancel', __CLASS__, __FUNCTION__); $this->view->assign('orderItem', $orderItem); } else { $this->addFlashMessage(\TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('tx_cart.controller.order.action.payment_cancel.error_occured', $this->extensionName), '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR); } } else { $this->addFlashMessage(\TYPO3\CMS\Extbase\Utility\LocalizationUtility::translate('tx_cart.controller.order.action.payment_cancel.access_denied', $this->extensionName), '', \TYPO3\CMS\Core\Messaging\AbstractMessage::ERROR); } }
/** * Add Payment * * @return void */ protected function addPayment() { $payment = $this->cart->getPayment(); /** * Order Payment * @var $orderPayment \Extcode\Cart\Domain\Model\Order\Payment */ $orderPayment = $this->objectManager->get('Extcode\\Cart\\Domain\\Model\\Order\\Payment'); $orderPayment->setPid($this->storagePid); $orderPayment->setServiceId($payment->getId()); $orderPayment->setName($payment->getName()); $orderPayment->setProvider($payment->getProvider()); $orderPayment->setStatus($payment->getStatus()); $orderPayment->setGross($payment->getGross()); $orderPayment->setNet($payment->getNet()); $orderPayment->setTaxClass($this->taxClasses[$payment->getTaxClass()->getId()]); $orderPayment->setTax($payment->getTax()); $orderPayment->setNote($payment->getNote()); $this->paymentRepository->add($orderPayment); $this->orderItem->setPayment($orderPayment); }