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

feat: integrated global erp timestamp and date formats - all ERP modules...

feat: integrated global erp timestamp and date formats - all ERP modules should use these date / timestamp settings
Übergeordneter 363f2bea
Keine zugehörigen Branchen gefunden
Keine zugehörigen Tags gefunden
Keine zugehörigen Merge Requests gefunden
......@@ -5,6 +5,7 @@
<event on="onUserSaveBegin" fire="\QUI\ERP\EventHandler::onUserSave"/>
<event on="onUserSaveBegin" fire="\QUI\ERP\EventHandler::onUserSaveBegin"/>
<event on="onPackageConfigSave" fire="\QUI\ERP\EventHandler::onPackageConfigSave"/>
<event on="onQuiqqer::frontend-users::profile::customer-data-begin"
fire="\QUI\ERP\EventHandler::onFrontendUserCustomerBegin"
......
......@@ -143,6 +143,10 @@
<de><![CDATA[Verwendete Nachkommastellen]]></de>
<en><![CDATA[Used decimal digits]]></en>
</locale>
<locale name="menu.erp.general.dateFormats.title">
<de><![CDATA[Datums Formate]]></de>
<en><![CDATA[Date Formats]]></en>
</locale>
<locale name="shop.settings.general.precision.description">
<de><![CDATA[
Diese Einstellung legt fest mit wieviele Nachkommenstellen das System rechnen soll.
......@@ -151,6 +155,59 @@
This setting determines how many decimal places the system should use for calculation.
]]></en>
</locale>
<locale name="shop.settings.general.timestampFormat" html="true">
<de><![CDATA[
Vorgabe für Zeitstempel
]]></de>
<en><![CDATA[
Default for timestamps
]]></en>
</locale>
<locale name="shop.settings.general.timestampFormat.description" html="true">
<de><![CDATA[
Dieses Datumsformat wird für ein komplettes Datumsformat verwendet (z.B: dd.mm.YYYY H:i:s).
<br /><br />
Einstellungen und oder mögliche Datumsformate finden Sie unter:<br />
<a href="http://php.net/manual/de/function.strftime.php#refsect1-function.strftime-parameters">
http://php.net/manual/de/function.strftime.php#refsect1-function.strftime-parameters
</a>
]]></de>
<en><![CDATA[
This date format is used for a complete date format (e.g.: dd.mm.YYYYY H:i:s).
<br /><br />
Settings and or possible date formats can be found under:<br />
<a href="http://php.net/manual/en/function.strftime.php#refsect1-function.strftime-parameters">
http://php.net/manual/en/function.strftime.php#refsect1-function.strftime-parameters
</a>
]]></en>
</locale>
<locale name="shop.settings.general.dateFormat">
<de><![CDATA[
Vorgabe für Datum
]]></de>
<en><![CDATA[
Default for dates
]]></en>
</locale>
<locale name="shop.settings.general.dateFormat.description">
<de><![CDATA[
Dieses Datumsformat wird für ein partiell Datumsformat verwendet (z.B: dd.mm.YYYY).
<br /><br />
Einstellungen und oder mögliche Datumsformate finden Sie unter:<br />
<a href="http://php.net/manual/de/function.strftime.php#refsect1-function.strftime-parameters">
http://php.net/manual/de/function.strftime.php#refsect1-function.strftime-parameters
</a>
]]></de>
<en><![CDATA[
This date format is used for a partial date format (e.g.: dd.mm.YYYYY).
<br /><br />
Settings and or possible date formats can be found under:<br />
<a href="http://php.net/manual/en/function.strftime.php#refsect1-function.strftime-parameters">
http://php.net/manual/en/function.strftime.php#refsect1-function.strftime-parameters
</a>
]]></en>
</locale>
<locale name="shop.settings.businessType">
<de><![CDATA[Vertriebsart]]></de>
<en><![CDATA[Business type]]></en>
......
......@@ -23,6 +23,8 @@
</section>
<section name="paymentsChangeable"/>
<section name="timestampFormat"/>
<section name="dateFormat"/>
</config>
<window name="ERP">
......@@ -78,6 +80,37 @@
</input>
</settings>
<settings title="dateFormats" name="dateFormats">
<title>
<locale group="quiqqer/erp" var="menu.erp.general.dateFormats.title"/>
</title>
<input conf="timestampFormat"
data-qui="controls/system/AvailableLanguages"
data-qui-options-placeholder="%c"
>
<text>
<locale group="quiqqer/erp" var="shop.settings.general.timestampFormat"/>
</text>
<description>
<locale group="quiqqer/erp" var="shop.settings.general.timestampFormat.description"/>
</description>
</input>
<input conf="dateFormat"
data-qui="controls/system/AvailableLanguages"
data-qui-options-placeholder="%D"
>
<text>
<locale group="quiqqer/erp" var="shop.settings.general.dateFormat"/>
</text>
<description>
<locale group="quiqqer/erp" var="shop.settings.general.dateFormat.description"/>
</description>
</input>
</settings>
<settings title="numberRanges" name="numberRanges">
<title>
<locale group="quiqqer/erp" var="menu.erp.general.numberRanges.title"/>
......
......@@ -81,8 +81,9 @@ public function getErpApiProvider()
*/
public function getMenuItems()
{
$cache = 'erp/provider/menuItems';
$Map = new QUI\Controls\Sitemap\Map();
$cache = 'erp/provider/menuItems';
$Map = new QUI\Controls\Sitemap\Map();
$Locale = QUI::getLocale();
try {
return QUI\Cache\Manager::get($cache);
......@@ -95,8 +96,17 @@ public function getMenuItems()
}
}
$result = $Map->toArray();
$sorting = function ($a, $b) {
$result = $Map->toArray();
$sorting = function ($a, $b) use ($Locale) {
if (!isset($a['priority']) && !isset($b['priority'])) {
// sort by text
$aLocale = $Locale->get($a['text'][0], $a['text'][1]);
$bLocale = $Locale->get($b['text'][0], $b['text'][1]);
return strcmp($aLocale, $bLocale);
}
if (!isset($a['priority'])) {
return 1;
}
......
......@@ -15,6 +15,16 @@
*/
class Defaults
{
/**
* @var null|string
*/
protected static $timestampFormat = [];
/**
* @var null|string
*/
protected static $dateFormat = [];
/**
* Return the default area for the ERP system
*
......@@ -103,4 +113,76 @@ public static function getPrecision()
return 8;
}
/**
* Return the main timestamp format
*
* @param false|string $lang - language of the wanted timestamp
* @return int|null|string
*/
public static function getTimestampFormat($lang = false)
{
if ($lang === false) {
$lang = QUI::getLocale()->getCurrent();
}
if (!isset(self::$timestampFormat[$lang])) {
return self::$timestampFormat[$lang];
}
self::$timestampFormat[$lang] = '%c';
try {
$Package = QUI::getPackage('quiqqer/erp');
$Config = $Package->getConfig();
} catch (QUI\Exception $Exception) {
QUI\System\Log::writeException($Exception);
return self::$timestampFormat[$lang];
}
$value = $Config->get('timestampFormat', $lang);
if ($value !== false) {
self::$timestampFormat[$lang] = $value;
}
return self::$timestampFormat[$lang];
}
/**
* Return the main date format
*
* @param bool|string $lang
* @return mixed
*/
public static function getDateFormat($lang = false)
{
if ($lang === false) {
$lang = QUI::getLocale()->getCurrent();
}
if (!isset(self::$dateFormat[$lang])) {
return self::$dateFormat[$lang];
}
self::$dateFormat[$lang] = '%D';
try {
$Package = QUI::getPackage('quiqqer/erp');
$Config = $Package->getConfig();
} catch (QUI\Exception $Exception) {
QUI\System\Log::writeException($Exception);
return self::$dateFormat[$lang];
}
$value = $Config->get('dateFormat', $lang);
if ($value !== false) {
self::$dateFormat[$lang] = $value;
}
return self::$dateFormat[$lang];
}
}
......@@ -32,11 +32,47 @@ public static function onAdminLoadFooter()
*/
public static function onPackageSetup(Package $Package)
{
if ($Package->getName() != 'quiqqer/erp') {
if ($Package->getName() !== 'quiqqer/erp') {
return;
}
}
public static function onPackageConfigSave(QUI\Package\Package $Package, array $params)
{
if ($Package->getName() !== 'quiqqer/erp') {
return;
}
$languages = QUI::availableLanguages();
$languages = array_flip($languages);
try {
$Config = $Package->getConfig();
// timestampFormat
if (isset($params['timestampFormat'])) {
foreach ($params['timestampFormat'] as $language => $format) {
if (isset($languages[$language])) {
$Config->setValue('timestampFormat', $language, $format);
}
}
}
// dateFormat
if (isset($params['dateFormat'])) {
foreach ($params['dateFormat'] as $language => $format) {
if (isset($languages[$language])) {
$Config->setValue('dateFormat', $language, $format);
}
}
}
$Config->save();
} catch (QUI\Exception $Exception) {
QUI\System\Log::writeException($Exception);
}
}
/**
* event: on user save
* @todo prüfung auch für steuernummer
......
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