Skip to content
Code-Schnipsel Gruppen Projekte
Commit 8457f568 erstellt von Henning Leutz's avatar Henning Leutz :martial_arts_uniform:
Dateien durchsuchen

feat: payment gateway integration

Übergeordneter 84227482
Keine zugehörigen Branchen gefunden
Keine zugehörigen Tags gefunden
Keine zugehörigen Merge Requests gefunden
......@@ -299,7 +299,7 @@ define('package/quiqqer/order/bin/frontend/controls/OrderProcess', [
if (typeof showFromRight === 'undefined') {
showFromRight = true;
}
console.warn(result);
this.setAttribute('current', result.step);
// render container
......
......@@ -82,10 +82,21 @@ public function getIcon()
return 'fa-shopping-cart';
}
/**
* @throws QUI\ERP\Order\Exception
*/
public function validate()
{
// TODO: Implement validate() method.
$Orders = Handler::getInstance();
$Order = $Orders->getOrderInProcess($this->getAttribute('orderId'));
$Payment = $Order->getPayment();
if (!$Payment) {
throw new QUI\ERP\Order\Exception(array(
'quiqqer/order',
'exception.order.payment.missing'
));
}
}
/**
......@@ -113,8 +124,9 @@ public function save()
$Order->setData('orderedWithCostsPayment', $Payment->getId());
$Order->save();
if (!$Payment->getPaymentType()->isGateway()) {
$Order->createOrder(QUI::getUsers()->getSystemUser());
}
// wird über process provider gemacht
// if (!$Payment->getPaymentType()->isGateway()) {
// $Order->createOrder(QUI::getUsers()->getSystemUser());
// }
}
}
......@@ -59,6 +59,9 @@ public function validate()
{
}
/**
* placeholder
*/
public function save()
{
}
......
......@@ -150,57 +150,85 @@ protected function send()
}
/**
* @return string
* Execute the payable step
*
* @return bool|string
*/
public function getBody()
protected function executePayableStatus()
{
if (!isset($_REQUEST['payableToOrder'])) {
return false;
}
$template = dirname(__FILE__).'/Controls/OrderProcess.html';
$Engine = QUI::getTemplateManager()->getEngine();
if (isset($_REQUEST['payableToOrder'])) {
try {
$this->send();
try {
$this->send();
// processing step
// eq: payment gateway
if ($this->ProcessingProvider !== null) {
$this->ProcessingProvider;
$ProcessingStep = new Controls\ProcessingProviderStep();
$ProcessingStep->setProcessingProvider($this->ProcessingProvider);
$ProcessingStep->setAttribute('Order', $this->getOrder());
$Engine->assign(array(
'listWidth' => floor(100 / count($this->getSteps())),
'this' => $this,
'error' => false,
'next' => false,
'previous' => false,
'previous' => 'checkout',
'payableToOrder' => false,
'steps' => $this->getSteps(),
'CurrentStep' => $this->getCurrentStep(),
'CurrentStep' => $ProcessingStep,
'Site' => $this->getSite(),
'Order' => $this->getOrder()
));
return $Engine->fetch($template);
} catch (QUI\Exception $Exception) {
if (DEBUG_MODE) {
QUI\System\Log::writeException($Exception);
}
}
}
// processing step
if ($this->ProcessingProvider !== null) {
$ProcessingStep = new Controls\ProcessingProviderStep();
$ProcessingStep->setProcessingProvider($this->ProcessingProvider);
$Engine->assign(array(
'listWidth' => floor(100 / count($this->getSteps())),
'this' => $this,
'error' => false,
'next' => false,
'previous' => 'checkout',
'previous' => false,
'payableToOrder' => false,
'steps' => $this->getSteps(),
'CurrentStep' => $ProcessingStep,
'CurrentStep' => $this->getCurrentStep(),
'Site' => $this->getSite(),
'Order' => $this->getOrder()
));
return $Engine->fetch($template);
} catch (QUI\Exception $Exception) {
if (DEBUG_MODE) {
QUI\System\Log::writeException($Exception);
}
}
return false;
}
/**
* @return string
*/
public function getBody()
{
$template = dirname(__FILE__).'/Controls/OrderProcess.html';
$Engine = QUI::getTemplateManager()->getEngine();
// payable step
if (isset($_REQUEST['payableToOrder'])) {
$result = $this->executePayableStatus();
if ($result !== false) {
return $result;
}
}
// standard procedure
......@@ -307,15 +335,6 @@ public function getNextStep($StartStep = null)
// @todo prüfen ob bezahlung schon da ist oder gemacht wurde
// wenn es order id gibt und bezahlung, dann abschluss anzeigen
if ($step === 'finish') {
$Payment = $this->getOrder()->getPayment();
$PaymentType = $Payment->getPaymentType();
// checkout gateway
if ($Payment && $PaymentType && $PaymentType->isGateway()) {
return $this->getStepByName('checkout');
}
}
$steps = $this->getSteps();
......
0% Lade oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren