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

Merge branch 'dev'

Übergeordnete 4f755f41 76c726df
Keine zugehörigen Branchen gefunden
Keine zugehörigen Tags gefunden
Keine zugehörigen Merge Requests gefunden
......@@ -28,6 +28,7 @@
"quiqqer\/customer": "1.*|dev-master|dev-dev",
"quiqqer\/qui-php": "1.*|>=0.11|dev-master|dev-dev",
"quiqqer\/smarty3": ">=1.7|dev-master|dev-dev",
"quiqqer\/countries": ">=1.3|dev-master|dev-dev",
"quiqqer\/frontend-users": "1.*|dev-master|dev-dev"
},
"autoload": {
......
......@@ -31,6 +31,11 @@ class ArticleList extends ArticleListUnique implements \IteratorAggregate
*/
protected $User = null;
/**
* @var QUI\ERP\Order\AbstractOrder
*/
protected $Order = null;
/**
* @var QUI\ERP\Currency\Currency
*/
......@@ -419,4 +424,24 @@ public function importPriceFactors(QUI\ERP\Accounting\PriceFactors\FactorList $P
}
//endregion
//region order
/**
* @param QUI\ERP\Order\AbstractOrder $Order
*/
public function setOrder(QUI\ERP\Order\AbstractOrder $Order)
{
$this->Order = $Order;
}
/**
* @return QUI\ERP\Order\AbstractOrder|null
*/
public function getOrder()
{
return $this->Order;
}
//endregion
}
......@@ -157,21 +157,26 @@ public function calcArticleList(ArticleList $List, $callback = false)
return $List->calc();
}
// user order address
$Order = $List->getOrder();
if ($Order) {
$this->getUser()->setAttribute('CurrentAddress', $Order->getDeliveryAddress());
}
$this->Currency = $List->getCurrency();
$articles = $List->getArticles();
$isNetto = QUI\ERP\Utils\User::isNettoUser($this->getUser());
$isEuVatUser = QUI\ERP\Tax\Utils::isUserEuVatUser($this->getUser());
// @todo get currency decimal precision
$Currency = $this->getCurrency();
$precision = 2;
$precision = $Currency->getPrecision();
$subSum = 0;
$nettoSum = 0;
$vatArray = [];
/* @var $Article Article */
foreach ($articles as $Article) {
// add netto price
try {
......
......@@ -50,13 +50,13 @@ public static function getArea()
}
/**
* @return QUI\Countries\Country
* Return the default country
*
* @todo ERP standard land als einstellung
* @return QUI\Countries\Country
*/
public static function getCountry()
{
return QUI\Countries\Manager::get('de');
return QUI\Countries\Manager::getDefaultCountry();
}
/**
......
......@@ -8,6 +8,7 @@
use QUI;
use QUI\Interfaces\Users\User as UserInterface;
use QUI\Users\Address;
/**
* Class User Utils
......@@ -192,6 +193,31 @@ public static function isNettoUser(UserInterface $User)
*/
public static function getUserArea(UserInterface $User)
{
$CurrentAddress = $User->getAttribute('CurrentAddress');
if ($CurrentAddress instanceof Address) {
$Country = $CurrentAddress->getCountry();
$Area = QUI\ERP\Areas\Utils::getAreaByCountry($Country);
if ($Area) {
return $Area;
}
}
try {
$addressId = $User->getAttribute('quiqqer.erp.address');
$Address = $User->getAddress($addressId);
$Country = $Address->getCountry();
$Area = QUI\ERP\Areas\Utils::getAreaByCountry($Country);
if ($Area) {
return $Area;
}
} catch (QUI\Exception $Exception) {
QUI\System\Log::addDebug($Exception->getMessage());
}
$Country = $User->getCountry();
$Area = QUI\ERP\Areas\Utils::getAreaByCountry($Country);
......@@ -294,4 +320,19 @@ public static function filterCustomerAttributes($attributes = [])
return $result;
}
/**
* @param UserInterface $User
* @param $Address
*/
public static function setUserCurrentAddress(
QUI\Interfaces\Users\User $User,
$Address
) {
if (\class_exists('QUI\ERP\Tax\Utils')) {
QUI\ERP\Tax\Utils::cleanUpUserTaxCache($User);
}
$User->setAttribute('CurrentAddress', $Address);
}
}
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