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

feat: #103

Übergeordneter a0430ad6
Keine zugehörigen Branchen gefunden
Keine zugehörigen Tags gefunden
Keine zugehörigen Merge Requests gefunden
......@@ -1144,11 +1144,15 @@
<en><![CDATA[The email was sent.]]></en>
</locale>
<locale name="erp.comment.order.created">
<de><![CDATA[Bestellung #[orderId] erstellt]]></de>
<en><![CDATA[Created order #[orderId]]]></en>
</locale>
<locale name="order.process.product.not.available">
<de><![CDATA[Das Produkt [articleNo] [title] ist leider nicht mehr verfügbar.]]></de>
<en><![CDATA[The Product [articleNo] [title] is no longer available anymore.]]></en>
</locale>
</groups>
<groups name="quiqqer/order" datatype="js">
......
......@@ -1586,7 +1586,7 @@ public function getHistory()
//endregion
//region history
//region frontend history
/**
* Add a feontend message´
......
......@@ -43,6 +43,11 @@ class Basket
*/
protected $hash = null;
/**
* @var QUI\ERP\Comments
*/
protected $FrontendMessages = null;
/**
* Basket constructor.
*
......@@ -61,8 +66,9 @@ public function __construct($basketId, $User = false)
return;
}
$this->List = new ProductList();
$this->List->duplicate = true;
$this->List = new ProductList();
$this->List->duplicate = true;
$this->FrontendMessages = new QUI\ERP\Comments();
try {
$data = Handler::getInstance()->getBasketData($basketId, $User);
......@@ -176,14 +182,20 @@ public function import($products = [])
$products = [];
}
$OrderOrBasket = $this;
try {
$this->List->setOrder($this->getOrder());
$Order = $this->getOrder();
$this->List->setOrder($Order);
$OrderOrBasket = $Order;
} catch (QUI\Exception $Exception) {
}
$this->List = QUI\ERP\Order\Utils\Utils::importProductsToBasketList(
$this->List,
$products
$products,
$OrderOrBasket
);
try {
......@@ -468,4 +480,36 @@ protected function createNewOrder()
}
//endregion
//region frontend message
/**
* Add a frontend message
*
* @param string $message
*/
public function addFrontendMessage($message)
{
$this->FrontendMessages->addComment($message);
}
/**
* Return the frontend message object
*
* @return null|QUI\ERP\Comments
*/
public function getFrontendMessages()
{
return $this->FrontendMessages;
}
/**
* Clears the messages and save this status to the database
*/
public function clearFrontendMessages()
{
$this->FrontendMessages->clear();
}
//endregion
}
......@@ -46,6 +46,11 @@ class BasketOrder
*/
protected $id = null;
/**
* @var QUI\ERP\Comments|null
*/
protected $FrontendMessages = null;
/**
* Basket constructor.
*
......@@ -71,6 +76,7 @@ public function __construct($orderHash, $User = false)
$this->User = $User;
$this->hash = $orderHash;
$this->FrontendMessages = new QUI\ERP\Comments();
$this->readOrder();
// get basket id
......@@ -269,7 +275,8 @@ public function import($products = [])
$this->List = QUI\ERP\Order\Utils\Utils::importProductsToBasketList(
$this->List,
$products
$products,
$this->getOrder()
);
try {
......@@ -459,4 +466,36 @@ public function toOrder()
}
//endregion
//region frontend message
/**
* Add a frontend message
*
* @param string $message
*/
public function addFrontendMessage($message)
{
$this->FrontendMessages->addComment($message);
}
/**
* Return the frontend message object
*
* @return null|QUI\ERP\Comments
*/
public function getFrontendMessages()
{
return $this->FrontendMessages;
}
/**
* Clears the messages and save this status to the database
*/
public function clearFrontendMessages()
{
$this->FrontendMessages->clear();
}
//endregion
}
......@@ -53,6 +53,12 @@ public function __construct($attributes = [])
$this->addCSSFile(\dirname(__FILE__).'/Basket.css');
$this->addCSSClass('quiqqer-order-step-basket');
$this->setAttribute('nodeName', 'section');
$messages = $this->Basket->getFrontendMessages()->toArray();
foreach ($messages as $message) {
$this->getOrder()->addFrontendMessage($message['message']);
}
}
/**
......
......@@ -763,7 +763,6 @@ public function clear($PermissionUser = null)
*/
protected function saveFrontendMessages()
{
try {
QUI::getDataBase()->update(
Handler::getInstance()->table(),
......
......@@ -248,12 +248,14 @@ public static function isPaymentChangeable(
/**
* @param QUI\ERP\Products\Product\ProductList $List
* @param array $products
* @param null|QUI\ERP\Order\AbstractOrder|QUI\ERP\Order\Basket\Basket $Order - optional, to add messages to the order if needed
*
* @return QUI\ERP\Products\Product\ProductList
*/
public static function importProductsToBasketList(
QUI\ERP\Products\Product\ProductList $List,
$products = []
$products = [],
$Order = null
) {
if (!\is_array($products)) {
$products = [];
......@@ -304,11 +306,20 @@ public static function importProductsToBasketList(
$Real = QUI\ERP\Products\Handler\Products::getProduct($productData['id']);
if (!$Real->isActive()) {
// @todo quiqqer/order#103
if (!QUI::getUsers()->isSystemUser(QUI::getUserBySession())) {
QUI::getMessagesHandler()->addAttention(
'The Product '.$Real->getTitle().' is no available anymore.'
);
$message = QUI::getLocale()->get(
'quiqqer/order',
'order.process.product.not.available', [
'title' => $Real->getTitle(),
'articleNo' => $Real->getField(QUI\ERP\Products\Handler\Fields::FIELD_PRODUCT_NO)->getValue()
]
);
if ($Order && \method_exists($Order, 'addFrontendMessage')) {
$Order->addFrontendMessage($message);
} else {
if (!QUI::getUsers()->isSystemUser(QUI::getUserBySession())) {
QUI::getMessagesHandler()->addAttention($message);
}
}
continue;
......
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