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

fix: refactor: order process -> complete process tested

Übergeordneter 31e6c5d0
Keine zugehörigen Branchen gefunden
Keine zugehörigen Tags gefunden
Keine zugehörigen Merge Requests gefunden
......@@ -14,8 +14,6 @@
QUI::$Ajax->registerFunction(
'package_quiqqer_order_ajax_frontend_basket_clear',
function ($basketId) {
\QUI\System\Log::writeRecursive($basketId);
$Basket = new \QUI\ERP\Order\Basket\Basket($basketId);
$Basket->clear();
$Basket->save();
......@@ -23,5 +21,4 @@ function ($basketId) {
return $Basket->toArray();
},
['basketId']
);
......@@ -41,7 +41,9 @@ define('package/quiqqer/order/bin/frontend/controls/OrderProcess', [
'$onNextClick',
'$onPreviousClick',
'$onChangeState',
'$refreshButtonEvents'
'$refreshButtonEvents',
'$beginResultRendering',
'$endResultRendering'
],
options: {
......@@ -136,7 +138,10 @@ define('package/quiqqer/order/bin/frontend/controls/OrderProcess', [
this.$refreshButtonEvents();
this.setAttribute('orderHash', this.$Form.get('data-order-hash'));
if (this.$Form.get('data-order-hash') && this.$Form.get('data-order-hash') !== '') {
this.setAttribute('orderHash', this.$Form.get('data-order-hash'));
}
var Current = this.$TimelineContainer.getFirst('ul li.current');
......@@ -159,7 +164,7 @@ define('package/quiqqer/order/bin/frontend/controls/OrderProcess', [
this.getElm().set('data-quiid', this.getId());
var Prom = new Promise(function () {
return self.setAttribute('orderHash');
return self.getAttribute('orderHash');
});
if (!this.getAttribute('orderHash')) {
......@@ -227,7 +232,7 @@ define('package/quiqqer/order/bin/frontend/controls/OrderProcess', [
}
if (!this.$getCount()) {
return Promise.resolve();
return this.refreshCurrentStep();
}
var self = this;
......@@ -237,13 +242,14 @@ define('package/quiqqer/order/bin/frontend/controls/OrderProcess', [
return this.saveCurrentStep().then(function () {
return new Promise(function (resolve, reject) {
QUIAjax.get('package_quiqqer_order_ajax_frontend_order_getNext', function (result) {
self.$renderResult(result, 1).then(resolve);
self.$renderResult(result, 1).then(function () {
self.$endResultRendering();
resolve();
});
if (Router) {
Router.navigate(result.url);
}
self.$endResultRendering();
}, {
'package': 'quiqqer/order',
orderHash: self.getAttribute('orderHash'),
......@@ -275,13 +281,14 @@ define('package/quiqqer/order/bin/frontend/controls/OrderProcess', [
return this.saveCurrentStep().then(function () {
return new Promise(function (resolve) {
QUIAjax.get('package_quiqqer_order_ajax_frontend_order_getPrevious', function (result) {
self.$renderResult(result, -1).then(resolve);
self.$renderResult(result, -1).then(function () {
self.$endResultRendering();
resolve();
});
if (Router) {
Router.navigate(result.url);
}
self.$endResultRendering();
}, {
'package': 'quiqqer/order',
orderHash: self.getAttribute('orderHash'),
......@@ -310,13 +317,14 @@ define('package/quiqqer/order/bin/frontend/controls/OrderProcess', [
return this.saveCurrentStep().then(function () {
return new Promise(function (resolve, reject) {
QUIAjax.get('package_quiqqer_order_ajax_frontend_order_send', function (result) {
self.$renderResult(result).then(resolve);
self.$renderResult(result).then(function () {
self.$endResultRendering();
resolve();
});
if (Router) {
Router.navigate(result.url);
}
self.$endResultRendering();
}, {
'package': 'quiqqer/order',
orderHash: self.getAttribute('orderHash'),
......@@ -356,16 +364,20 @@ define('package/quiqqer/order/bin/frontend/controls/OrderProcess', [
return new Promise(function (resolve) {
QUIAjax.get('package_quiqqer_order_ajax_frontend_order_getStep', function (result) {
if (self.getCurrentStepData().step === step) {
self.$renderResult(result, 0).then(resolve);
self.$renderResult(result, 0).then(function () {
self.$endResultRendering();
resolve();
});
} else {
self.$renderResult(result, 1).then(resolve);
self.$renderResult(result, 1).then(function () {
self.$endResultRendering();
resolve();
});
}
if (Router) {
Router.navigate(result.url);
}
self.$endResultRendering();
}, {
'package': 'quiqqer/order',
orderHash: self.getAttribute('orderHash'),
......
......@@ -65,8 +65,7 @@ public function __construct($basketId, $User = false)
$this->List = new ProductList();
$this->List->duplicate = true;
$data = QUI\ERP\Order\Handler::getInstance()->getBasketData($basketId, $User);
$data = QUI\ERP\Order\Handler::getInstance()->getBasketData($basketId, $User);
$this->id = $basketId;
$this->User = $User;
$this->hash = $data['hash'];
......
......@@ -179,10 +179,11 @@ public function import($products = [])
}
/**
* Save the basket
* Save the basket -> order
*/
public function save()
{
$this->updateOrder();
}
/**
......@@ -274,6 +275,7 @@ public function getOrder()
*/
public function updateOrder()
{
$this->Order->save();
}
//endregion
......
......@@ -90,11 +90,18 @@ public function getBody()
&& $Order->getDataEntry('orderedWithCosts') == 1) {
$Payment = $Order->getPayment();
$payment = $Order->getDataEntry('orderedWithCostsPayment');
if ($payment == $Payment->getId() && $Payment->getPaymentType()->isGateway()) {
$Engine->assign('Gateway', $Payment->getPaymentType());
$Engine->assign('gatewayDisplay', $Payment->getPaymentType()->getGatewayDisplay($Order));
}
//
// if ($payment == $Payment->getId() && $Payment->getPaymentType()->isGateway()) {
//
// QUI\System\Log::writeRecursive($Payment);
// QUI\System\Log::writeRecursive($Payment->getPaymentType());
//
// $Engine->assign('Gateway', $Payment->getPaymentType());
// $Engine->assign(
// 'gatewayDisplay',
// $Payment->getPaymentType()->getGatewayDisplay($Order, new Processing())
// );
// }
}
$text = QUI::getLocale()->get(
......@@ -178,7 +185,7 @@ public function validate()
public function save()
{
if (isset($_REQUEST['termsAndConditions']) && !empty($_REQUEST['termsAndConditions'])) {
$Order = $this->getAttribute('Order');
$Order = $this->getOrder();
QUI::getSession()->set(
'termsAndConditions-'.$Order->getHash(),
......
......@@ -15,6 +15,18 @@
*/
class Finish extends QUI\ERP\Order\Controls\AbstractOrderingStep
{
/**
* Finish constructor.
*
* @param array $attributes
*/
public function __construct(array $attributes = [])
{
parent::__construct($attributes);
$this->addCSSClass('quiqqer-order-step-finish');
}
/**
* @return string
*
......
......@@ -315,8 +315,6 @@ protected function executePayableStatus()
// processing step
// eq: payment gateway
if ($this->ProcessingProvider !== null) {
$this->ProcessingProvider;
/* @var $Checkout AbstractOrderingStep */
$Checkout = current(array_filter($this->getSteps(), function ($Step) {
/* @var $Step AbstractOrderingStep */
......@@ -400,6 +398,12 @@ public function getBody()
$this->checkSubmission();
// check if order is finished
if ($this->getOrder()->isSuccessful()) {
return $this->renderFinish();
}
// check all previous steps
// is one invalid, go to them
foreach ($steps as $name => $Step) {
......@@ -601,6 +605,38 @@ protected function checkProcessing()
return false;
}
/**
* @return mixed
* @throws Basket\Exception
* @throws Exception
* @throws QUI\Exception
* @throws QUI\ExceptionStack
*/
protected function renderFinish()
{
$template = dirname(__FILE__).'/Controls/OrderProcess.html';
$Engine = QUI::getTemplateManager()->getEngine();
$Engine->assign([
'listWidth' => floor(100 / count($this->getSteps())),
'this' => $this,
'error' => false,
'next' => false,
'previous' => false,
'payableToOrder' => false,
'steps' => $this->getSteps(),
'CurrentStep' => $this->getCurrentStep(),
'currentStepContent' => QUI\ControlUtils::parse($this->getCurrentStep()),
'Site' => $this->getSite(),
'Order' => $this->getOrder()
]);
$this->Events->fireEvent('getBody', [$this]);
$this->Events->fireEvent('renderFinish', [$this]);
return QUI\Output::getInstance()->parse($Engine->fetch($template));
}
/**
* Return the current Step
*
......
......@@ -20,12 +20,12 @@ class Search extends Singleton
/**
* @var array
*/
protected $filter = array();
protected $filter = [];
/**
* @var array
*/
protected $limit = array(0, 20);
protected $limit = [0, 20];
/**
* @var string
......@@ -35,15 +35,15 @@ class Search extends Singleton
/**
* @var array
*/
protected $allowedFilters = array(
protected $allowedFilters = [
'from',
'to'
);
];
/**
* @var array
*/
protected $cache = array();
protected $cache = [];
/**
* Set a filter
......@@ -60,7 +60,7 @@ public function setFilter($filter, $value)
}
if (!is_array($value)) {
$value = array($value);
$value = [$value];
}
// foreach ($value as $val) {
......@@ -85,7 +85,7 @@ public function setFilter($filter, $value)
*/
public function clearFilter()
{
$this->filter = array();
$this->filter = [];
}
/**
......@@ -96,7 +96,7 @@ public function clearFilter()
*/
public function limit($from, $to)
{
$this->limit = array((int)$from, (int)$to);
$this->limit = [(int)$from, (int)$to];
}
/**
......@@ -135,7 +135,7 @@ public function search()
*/
public function searchForGrid()
{
$this->cache = array();
$this->cache = [];
// select display orders
$orders = $this->executeQueryParams($this->getQuery());
......@@ -165,10 +165,10 @@ public function searchForGrid()
$Grid = new QUI\Utils\Grid();
return array(
return [
'grid' => $Grid->parseResult($result, $count),
'total' => $calc
);
];
}
/**
......@@ -193,25 +193,25 @@ protected function getQuery($count = false)
if (empty($this->filter)) {
if ($count) {
return array(
return [
'query' => " SELECT COUNT(*) AS count FROM {$table}",
'binds' => array()
);
'binds' => []
];
}
return array(
return [
'query' => "
SELECT id
FROM {$table}
ORDER BY {$order}
{$limit}
",
'binds' => array()
);
'binds' => []
];
}
$where = array();
$binds = array();
$where = [];
$binds = [];
$fc = 0;
foreach ($this->filter as $filter) {
......@@ -230,10 +230,10 @@ protected function getQuery($count = false)
continue;
}
$binds[$bind] = array(
$binds[$bind] = [
'value' => $filter['value'],
'type' => \PDO::PARAM_STR
);
];
$fc++;
}
......@@ -242,17 +242,17 @@ protected function getQuery($count = false)
if ($count) {
return array(
return [
"query" => "
SELECT COUNT(*) AS count
FROM {$table}
{$whereQuery}
",
'binds' => $binds
);
];
}
return array(
return [
"query" => "
SELECT id
FROM {$table}
......@@ -261,7 +261,7 @@ protected function getQuery($count = false)
{$limit}
",
'binds' => $binds
);
];
}
/**
......@@ -277,7 +277,7 @@ protected function getQueryCount()
* @return array
* @throws QUI\Exception
*/
protected function executeQueryParams($queryData = array())
protected function executeQueryParams($queryData = [])
{
$PDO = QUI::getDataBase()->getPDO();
$binds = $queryData['binds'];
......@@ -294,7 +294,7 @@ protected function executeQueryParams($queryData = array())
return $Statement->fetchAll(\PDO::FETCH_ASSOC);
} catch (\Exception $Exception) {
QUI\System\Log::writeRecursive($Exception);
QUI\System\Log::writeException($Exception);
QUI\System\Log::writeRecursive($query);
QUI\System\Log::writeRecursive($binds);
throw new QUI\Exception('Something went wrong');
......@@ -325,7 +325,7 @@ protected function parseListForGrid($data)
);
// helper
$needleFields = array(
$needleFields = [
'invoice_id',
'customer_id',
'customer_name',
......@@ -350,7 +350,7 @@ protected function parseListForGrid($data)
'processing_status',
'taxId',
'euVatId'
);
];
$fillFields = function (&$data) use ($needleFields) {
foreach ($needleFields as $field) {
......@@ -360,7 +360,7 @@ protected function parseListForGrid($data)
}
};
$result = array();
$result = [];
foreach ($data as $entry) {
if (isset($this->cache[$entry['id']])) {
......
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