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

refactor: gateway handling

Übergeordneter a13e27f1
Keine zugehörigen Branchen gefunden
Keine zugehörigen Tags gefunden
Keine zugehörigen Merge Requests gefunden
......@@ -185,6 +185,10 @@
<de><![CDATA[Überprüfen & bestellen]]></de>
<en><![CDATA[Checkout & order]]></en>
</locale>
<locale name="ordering.step.title.CheckoutPayment">
<de><![CDATA[Bezahlung durchführen]]></de>
<en><![CDATA[Process payment]]></en>
</locale>
<locale name="ordering.step.title.Finish">
<de><![CDATA[Fertig!]]></de>
<en><![CDATA[Done!]]></en>
......@@ -253,6 +257,16 @@
You will receive a confirmation to your e-mail address.
]]></en>
</locale>
<locale name="ordering.step.checkoutPayment.text" html="true">
<de><![CDATA[
Vielen Dank für Ihre Bestellung. Ihre Bestellung wurde erfolgreich übermittelt.<br />
Um die Bestellung nun abzuschließen führen Sie bitte die Bezahlung aus.
]]></de>
<en><![CDATA[
Thank you for your order. Your order has been successfully submitted.<br />
To complete the order now, please perform the payment.
]]></en>
</locale>
<locale name="ordering.step.checkout.billing.address">
<de><![CDATA[Rechnungsaddresse]]></de>
<en><![CDATA[Billing address]]></en>
......
{if isset($Gateway)}
<section class="quiqqer-order-step-checkout quiqqer-order-step-checkout-gateway">
<header>
<h1>{locale group="quiqqer/order" var="ordering.step.title.CheckoutPayment"}</h1>
</header>
{locale group="quiqqer/order" var="ordering.step.checkoutPayment.text"}
GATEWAY
{$gatewayDisplay}
</section>
{else}
<section class="quiqqer-order-step-checkout">
......
......@@ -51,7 +51,8 @@ public function getBody()
$payment = $Order->getDataEntry('orderedWithCostsPayment');
if ($payment == $Payment->getId() && $Payment->getPaymentType()->isGateway()) {
$Engine->assign('Gateway', $Payment);
$Engine->assign('Gateway', $Payment->getPaymentType());
$Engine->assign('gatewayDisplay', $Payment->getPaymentType()->getGatewayDisplay($Order));
}
}
......@@ -102,32 +103,37 @@ public function validate()
/**
* Order was ordered with costs
*
* @return void
*/
public function save()
{
$Orders = Handler::getInstance();
$Order = $Orders->getOrderInProcess($this->getAttribute('orderId'));
$Payment = $Order->getPayment();
if (!$Payment) {
if (!isset($_REQUEST['current']) || $_REQUEST['current'] !== 'checkout') {
return;
}
if (!isset($_REQUEST['current']) || $_REQUEST['current'] !== 'checkout') {
if (!isset($_REQUEST['payableToOrder'])) {
return;
}
if (!isset($_REQUEST['payableToOrder'])) {
$this->forceSave();
}
/**
* Save order as start order payment
*/
public function forceSave()
{
$Orders = Handler::getInstance();
$Order = $Orders->getOrderInProcess($this->getAttribute('orderId'));
$Payment = $Order->getPayment();
if (!$Payment) {
return;
}
$Order->setData('orderedWithCosts', 1);
$Order->setData('orderedWithCostsPayment', $Payment->getId());
$Order->save();
// wird über process provider gemacht
// if (!$Payment->getPaymentType()->isGateway()) {
// $Order->createOrder(QUI::getUsers()->getSystemUser());
// }
}
}
......@@ -57,7 +57,7 @@ public function validate()
$Order = $this->getOrder();
if ($Order->isPosted() === false) {
throw new QUI\Exception(array(
throw new QUI\ERP\Order\Exception(array(
'quiqqer/order',
'exception.order.is.not.finished'
));
......
......@@ -31,6 +31,7 @@ class OrderProcess extends QUI\Control
/**
* @return string
* @todo make it variable
*/
public static function getUrl()
{
......@@ -111,7 +112,7 @@ protected function send()
$providers = QUI\ERP\Order\Handler::getInstance()->getOrderProcessProvider();
// check all previous steps
// is one is invalid, go to them
// is one invalid, go to them
foreach ($steps as $name => $Step) {
/* @var $Step AbstractOrderingStep */
if ($Step->getName() === 'checkout' || $Step->getName() === 'finish') {
......@@ -286,6 +287,17 @@ public function getBody()
$Current->validate();
} catch (QUI\ERP\Order\Exception $Exception) {
$error = $Exception->getMessage();
if (get_class($Current) === QUI\ERP\Order\Controls\Finish::class) {
$Current = $this->getPreviousStep();
if (method_exists($Current, 'forceSave')) {
$Current->forceSave();
}
$Current->validate();
$error = false;
}
}
$this->setAttribute('step', $Current->getName());
......
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