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

Merge branch 'next' into 'master'

Next

See merge request !13
Übergeordnete edbd4840 a60ad4c9
No related branches found
Tags 1.6.0
2 Merge Requests!140Update 'next-4.x' with latest changes from 'main',!13Next
Pipeline #4504 bestanden mit Phase
in 30 Sekunden
include:
- project: 'quiqqer/stabilization/semantic-release'
file: '/ci-templates/.gitlab-ci.yml'
Datei verschoben
......@@ -49,7 +49,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
return new Class({
Extends: QUIControl,
Type : 'package/quiqqer/erp/bin/backend/controls/articles/Article',
Type: 'package/quiqqer/erp/bin/backend/controls/articles/Article',
Binds: [
'$onEditTitle',
......@@ -72,41 +72,41 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
],
options: {
id : false,
articleNo : '',
description : '',
discount : '-',
position : 0,
price : 0,
quantity : 1,
id: false,
articleNo: '',
description: '',
discount: '-',
position: 0,
price: 0,
quantity: 1,
quantityUnit: '',
title : '',
unitPrice : 0,
vat : '',
'class' : 'QUI\\ERP\\Accounting\\Article',
params : false, // mixed value for API Articles
currency : false,
title: '',
unitPrice: 0,
vat: '',
'class': 'QUI\\ERP\\Accounting\\Article',
params: false, // mixed value for API Articles
currency: false,
showSelectCheckbox: false, // select this article via checkbox instead of click
// Determine article fields that can be edited
editFields: {
articleNo : true,
articleNo: true,
titleAndDescription: true,
quantity : true,
quantityUnit : true,
unitPrice : true,
vat : true,
discount : true
quantity: true,
quantityUnit: true,
unitPrice: true,
vat: true,
discount: true
},
customFields: {}, // Custom fields (=fields where user can select/input a value)
User: false, // special user object (see this.addUser)
deletable : true, // show "delete" button
deletable: true, // show "delete" button
replaceable: true, // show "replace" button
calcByList : true // calculate article prices by the associated ArticleList
calcByList: true // calculate article prices by the associated ArticleList
},
initialize: function (options) {
......@@ -172,20 +172,20 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
let FieldDataClone = Object.clone(FieldData);
CustomFieldValues[fieldId] = {
title : FieldDataClone.title,
title: FieldDataClone.title,
valueText: nl2br(FieldDataClone.valueText)
};
}
this.$Elm.set({
html : Mustache.render(template, {
html: Mustache.render(template, {
showSelectCheckbox: showSelectCheckbox,
customFields : Object.values(CustomFieldValues),
buttonReplace : QUILocale.get(lg, 'articleList.article.button.replace'),
buttonDelete : QUILocale.get(lg, 'articleList.article.button.delete'),
customFields: Object.values(CustomFieldValues),
buttonReplace: QUILocale.get(lg, 'articleList.article.button.replace'),
buttonDelete: QUILocale.get(lg, 'articleList.article.button.delete'),
}),
'tabindex': -1,
styles : {
styles: {
outline: 'none'
}
});
......@@ -329,15 +329,15 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
}).inject(this.$Total, 'after');
this.$Loader = new Element('div', {
html : '<span class="fa fa-spinner fa-spin"></span>',
html: '<span class="fa fa-spinner fa-spin"></span>',
styles: {
background: '#fff',
display : 'none',
left : 0,
padding : 10,
position : 'absolute',
top : 0,
width : '100%'
display: 'none',
left: 0,
padding: 10,
position: 'absolute',
top: 0,
width: '100%'
}
}).inject(this.$Position);
......@@ -361,9 +361,9 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
new QUIButton({
'class': 'quiqqer-erp-backend-erpArticle-text-btn-editor',
title : QUILocale.get(lg, 'erp.articleList.article.button.editor'),
icon : 'fa fa-edit',
events : {
title: QUILocale.get(lg, 'erp.articleList.article.button.editor'),
icon: 'fa fa-edit',
events: {
onClick: this.$onEditDescription
}
}).inject(this.$Text);
......@@ -488,7 +488,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
}
Node.set({
html : text,
html: text,
title: text
});
};
......@@ -516,7 +516,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
if (typeof this.$bruttoCalc !== 'undefined' &&
typeof this.$bruttoCalc.display_unitPrice !== 'undefined') {
this.$UnitPriceBrutto.set('html', this.$bruttoCalc.display_unitPrice);
this.$UnitPriceBrutto.set('data-value', this.$bruttoCalc.unitPrice);
//this.$UnitPriceBrutto.set('data-value', this.$bruttoCalc.unitPrice);
this.$UnitPriceBrutto.set('data-value', this.$bruttoCalc.calculated.basisPrice);
}
if (typeof this.$bruttoCalc !== 'undefined' &&
......@@ -541,8 +542,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
let Calc;
const self = this,
attr = self.getAttributes(),
pos = parseInt(attr.position);
attr = self.getAttributes(),
pos = parseInt(attr.position);
let calcByList = false;
......@@ -553,12 +554,12 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
Calc = new Promise(function (resolve, reject) {
QUIAjax.get('package_quiqqer_erp_ajax_products_calc', resolve, {
'package': 'quiqqer/erp',
onError : reject,
articles : JSON.encode({
onError: reject,
articles: JSON.encode({
articles: [attr]
}),
user : JSON.encode(self.$user),
currency : self.getAttribute('currency')
user: JSON.encode(self.$user),
currency: self.getAttribute('currency')
});
});
}
......@@ -633,8 +634,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
Currency.getCurrency(currency).then((currency) => {
this.$Formatter = QUILocale.getNumberFormatter({
style : 'currency',
currency : currency.code,
style: 'currency',
currency: currency.code,
minimumFractionDigits: currency.precision,
maximumFractionDigits: currency.precision
});
......@@ -644,8 +645,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
console.error(err);
this.$Formatter = QUILocale.getNumberFormatter({
style : 'currency',
currency : 'EUR',
style: 'currency',
currency: 'EUR',
minimumFractionDigits: 2,
maximumFractionDigits: 2
});
......@@ -838,7 +839,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
setDiscount: function (discount) {
const self = this;
let value = '',
type = '';
type = '';
if (discount === '' || !discount) {
discount = '-';
......@@ -947,14 +948,14 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
*/
openDeleteDialog: function () {
new QUIConfirm({
icon : 'fa fa-trash',
texticon : 'fa fa-trash',
title : QUILocale.get(lg, 'dialog.delete.article.title'),
icon: 'fa fa-trash',
texticon: 'fa fa-trash',
title: QUILocale.get(lg, 'dialog.delete.article.title'),
information: QUILocale.get(lg, 'dialog.delete.article.information'),
text : QUILocale.get(lg, 'dialog.delete.article.text'),
maxHeight : 400,
maxWidth : 600,
events : {
text: QUILocale.get(lg, 'dialog.delete.article.text'),
maxHeight: 400,
maxWidth: 600,
events: {
onSubmit: this.remove.bind(this)
}
}).open();
......@@ -987,14 +988,14 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
const self = this;
new QUIConfirm({
title : QUILocale.get(lg, 'dialog.edit.description.title', {
articleNo : this.getAttribute('articleNo'),
title: QUILocale.get(lg, 'dialog.edit.description.title', {
articleNo: this.getAttribute('articleNo'),
articleTitle: this.getAttribute('title')
}),
icon : 'fa fa-edit',
icon: 'fa fa-edit',
maxHeight: 600,
maxWidth : 800,
events : {
maxWidth: 800,
events: {
onOpen: function (Win) {
Win.Loader.show();
......@@ -1006,8 +1007,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
Content.set({
html: '' +
'<label><input type="text" name="title" /></label>' +
'<div class="quiqqer-erp-dialog-edit-article-description-editor"></div>'
'<label><input type="text" name="title" /></label>' +
'<div class="quiqqer-erp-dialog-edit-article-description-editor"></div>'
});
const Title = Content.getElement('[name="title"]');
......@@ -1028,47 +1029,47 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
[
[
{
type : "button",
type: "button",
button: "Source"
},
{
type: "separator"
},
{
type : "button",
type: "button",
button: "Bold"
},
{
type : "button",
type: "button",
button: "Italic"
},
{
type : "button",
type: "button",
button: "Underline"
},
{
type: "separator"
},
{
type : "button",
type: "button",
button: "FontSize"
},
{
type: "separator"
},
{
type : "button",
type: "button",
button: "RemoveFormat"
},
{
type: "separator"
},
{
type : "button",
type: "button",
button: "NumberedList"
},
{
type : "button",
type: "button",
button: "BulletedList"
}
]
......@@ -1160,7 +1161,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
events: {
onSubmit: function (Win, value, title) {
self.setQuantityUnit({
id : value,
id: value,
title: title
});
......@@ -1301,18 +1302,18 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
return new Promise(function (resolve) {
const Edit = new Element('input', {
type : type,
value : value,
type: type,
value: value,
styles: {
border : 0,
left : 0,
border: 0,
left: 0,
lineHeight: 20,
textAlign : 'right',
padding : 5,
margin : 5,
position : 'absolute',
top : 0,
width : 'calc(100% - 10px)'
textAlign: 'right',
padding: 5,
margin: 5,
position: 'absolute',
top: 0,
width: 'calc(100% - 10px)'
}
}).inject(Container);
......@@ -1396,7 +1397,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
if (!PreviousArticle) {
PreviousArticle = Cell.getParent('.quiqqer-erp-backend-erpItems-items')
.getLast('.article');
.getLast('.article');
}
Next = PreviousArticle.getLast('.cell-editable');
......@@ -1421,7 +1422,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
if (!NextArticle) {
NextArticle = Cell.getParent('.quiqqer-erp-backend-erpItems-items')
.getElement('.article');
.getElement('.article');
}
Next = NextArticle.getElement('.cell-editable');
......@@ -1472,7 +1473,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
}
const result = {
id : i,
id: i,
title: title
};
......@@ -1497,8 +1498,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
return new Promise(function (resolve) {
QUIAjax.get('package_quiqqer_erp_ajax_calcNettoPrice', resolve, {
'package': 'quiqqer/erp',
price : value,
vat : self.getAttribute('vat'),
price: value,
vat: self.getAttribute('vat'),
formatted: formatted ? 1 : 0
});
});
......@@ -1517,8 +1518,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
return new Promise(function (resolve) {
QUIAjax.get('package_quiqqer_erp_ajax_calcBruttoPrice', resolve, {
'package': 'quiqqer/erp',
price : value,
vat : self.getAttribute('vat'),
price: value,
vat: self.getAttribute('vat'),
formatted: formatted ? 1 : 0
});
});
......@@ -1533,9 +1534,9 @@ define('package/quiqqer/erp/bin/backend/controls/articles/Article', [
$sanitizeArticleDescription: function (description) {
return new Promise((resolve, reject) => {
QUIAjax.get('package_quiqqer_erp_ajax_utils_sanitizeArticleDescription', resolve, {
'package' : 'quiqqer/erp',
'package': 'quiqqer/erp',
description: description,
onError : reject
onError: reject
});
});
}
......
......@@ -36,7 +36,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
return new Class({
Extends: QUIControl,
Type : 'package/quiqqer/erp/bin/backend/controls/articles/ArticleList',
Type: 'package/quiqqer/erp/bin/backend/controls/articles/ArticleList',
Binds: [
'$onArticleDelete',
......@@ -53,7 +53,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
],
options: {
currency : false, // bool || string -> EUR, USD ...
currency: false, // bool || string -> EUR, USD ...
nettoinput: true
},
......@@ -69,14 +69,14 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
this.$calculations = {
currencyData: {},
isEuVat : 0,
isNetto : true,
nettoSubSum : 0,
nettoSum : 0,
subSum : 0,
sum : 0,
vatArray : [],
vatText : []
isEuVat: 0,
isNetto: true,
nettoSubSum: 0,
nettoSum: 0,
subSum: 0,
sum: 0,
vatArray: [],
vatText: []
};
this.$Container = null;
......@@ -103,15 +103,15 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
this.$Elm.set({
html: Mustache.render(template, {
titleArticleNo : QUILocale.get(lg, 'products.articleNo'),
titleDescription : QUILocale.get(lg, 'products.description'),
titleQuantity : QUILocale.get(lg, 'products.quantity'),
titleArticleNo: QUILocale.get(lg, 'products.articleNo'),
titleDescription: QUILocale.get(lg, 'products.description'),
titleQuantity: QUILocale.get(lg, 'products.quantity'),
titleQuantityUnit: QUILocale.get(lg, 'products.quantityUnit'),
titleUnitPrice : QUILocale.get(lg, 'products.unitPrice'),
titlePrice : QUILocale.get(lg, 'products.price'),
titleVAT : QUILocale.get(lg, 'products.table.vat'),
titleDiscount : QUILocale.get(lg, 'products.discount'),
titleSum : QUILocale.get(lg, 'products.sum')
titleUnitPrice: QUILocale.get(lg, 'products.unitPrice'),
titlePrice: QUILocale.get(lg, 'products.price'),
titleVAT: QUILocale.get(lg, 'products.table.vat'),
titleDiscount: QUILocale.get(lg, 'products.discount'),
titleSum: QUILocale.get(lg, 'products.sum')
})
});
......@@ -125,11 +125,11 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
const SwitchDesc = this.$Elm.getElement('.quiqqer-erp-backend-erpItems-container-switch-desc');
this.$Switch = new QUISwitch({
switchTextOn : 'netto',
switchTextOnIcon : false,
switchTextOff : 'brutto',
switchTextOn: 'netto',
switchTextOnIcon: false,
switchTextOff: 'brutto',
switchTextOffIcon: false,
events : {
events: {
onChange: function () {
self.$Loader.show();
self.setAttribute('nettoinput', !!self.$Switch.getStatus());
......@@ -177,7 +177,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
});
return {
articles : articles,
articles: articles,
priceFactors: this.$priceFactors
};
},
......@@ -319,12 +319,12 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
Child.setAttribute('List', this);
Child.addEvents({
onDelete : this.$onArticleDelete,
onSelect : this.$onArticleSelect,
onUnSelect : this.$onArticleUnSelect,
onReplace : this.$onArticleReplace,
onDelete: this.$onArticleDelete,
onSelect: this.$onArticleSelect,
onUnSelect: this.$onArticleUnSelect,
onReplace: this.$onArticleReplace,
onEditCustomFields: this.$onArticleEditCustomFields,
onCalc : this.$executeCalculation
onCalc: this.$executeCalculation
});
if (this.$Container) {
......@@ -416,7 +416,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
*/
$executeCalculation: function () {
const self = this;
if (this.$isIncalculationFrame) {
this.fireEvent('calc', [
this,
......@@ -461,13 +461,13 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
resolve(result);
}, {
'package' : 'quiqqer/erp',
articles : JSON.encode({articles: articles}),
'package': 'quiqqer/erp',
articles: JSON.encode({articles: articles}),
priceFactors: JSON.encode(this.getPriceFactors()),
user : JSON.encode(this.$user),
currency : this.getAttribute('currency'),
nettoInput : this.getAttribute('nettoinput') ? 1 : 0,
onError : function (err) {
user: JSON.encode(this.$user),
currency: this.getAttribute('currency'),
nettoInput: this.getAttribute('nettoinput') ? 1 : 0,
onError: function (err) {
console.error(err);
reject();
}
......@@ -639,8 +639,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
enableSorting: function () {
const self = this;
const Elm = this.getElm(),
elements = Elm.getElements('.article');
const Elm = this.getElm(),
elements = Elm.getElements('.article');
elements.each(function (Node) {
const Article = QUI.Controls.getById(Node.get('data-quiid'));
......@@ -652,14 +652,14 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
new Element('div', {
'class': 'quiqqer-erp-sortableClone-placeholder',
html : Mustache.render(templateSortablePlaceholder, attributes)
html: Mustache.render(templateSortablePlaceholder, attributes)
}).inject(Node);
});
this.$Sortables = new Sortables(this.$Container, {
revert: {
duration : 500,
duration: 500,
transition: 'elastic:out'
},
......@@ -671,16 +671,16 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
}
const size = Target.getSize(),
pos = Target.getPosition(self.$Container);
pos = Target.getPosition(self.$Container);
return new Element('div', {
styles: {
background: 'rgba(0,0,0,0.5)',
height : size.y,
position : 'absolute',
top : pos.y,
width : size.x,
zIndex : 1000
height: size.y,
position: 'absolute',
top: pos.y,
width: size.x,
zIndex: 1000
}
});
},
......@@ -689,9 +689,9 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
element.addClass('quiqqer-erp-sortableClone');
self.$Container.setStyles({
height : self.$Container.getSize().y,
height: self.$Container.getSize().y,
overflow: 'hidden',
width : self.$Container.getSize().x
width: self.$Container.getSize().x
});
},
......@@ -699,9 +699,9 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
element.removeClass('quiqqer-erp-sortableClone');
self.$Container.setStyles({
height : null,
height: null,
overflow: null,
width : null
width: null
});
self.$recalculatePositions();
......@@ -718,9 +718,9 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
disableSorting: function () {
this.$sorting = false;
const self = this,
Elm = this.getElm(),
elements = Elm.getElements('.article');
const self = this,
Elm = this.getElm(),
elements = Elm.getElements('.article');
Elm.getElements('.quiqqer-erp-sortableClone-placeholder').destroy();
......@@ -756,8 +756,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
*/
$onArticleSetPosition: function (Article) {
Article.getElm()
.getElement('.quiqqer-erp-backend-erpArticlePlaceholder-pos')
.set('html', Article.getAttribute('position'));
.getElement('.quiqqer-erp-backend-erpArticlePlaceholder-pos')
.set('html', Article.getAttribute('position'));
},
/**
......@@ -766,8 +766,8 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
$recalculatePositions: function () {
let i, len, Article;
const Elm = this.getElm(),
elements = Elm.getElements('.article');
const Elm = this.getElm(),
elements = Elm.getElements('.article');
for (i = 0, len = elements.length; i < len; i++) {
Article = QUI.Controls.getById(elements[i].get('data-quiid'));
......@@ -791,7 +791,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
let i, len, Current;
let self = this,
let self = this,
articles = [],
position = 1;
......@@ -876,7 +876,7 @@ define('package/quiqqer/erp/bin/backend/controls/articles/ArticleList', [
const AddProductControl = new AddProductWindow({
fieldValues: FieldValues,
editAmount : false
editAmount: false
});
const productId = EditArticle.getAttribute('id');
......
......@@ -164,7 +164,7 @@ public static function getDocumentPdfDownloadUrl($entityId, string $entityType):
$url = URL_OPT_DIR . 'quiqqer/erp/bin/output/frontend/download.php?';
$url .= http_build_query([
'id' => $entityId,
't' => $entityType
't' => $entityType
]);
return $url;
......@@ -217,7 +217,7 @@ public static function sendPdfViaMail(
$pdfFile = $OutputTemplate->getPDFDocument()->createPDF();
// Re-name PDF
$pdfDir = QUI::getPackage('quiqqer/erp')->getVarDir();
$pdfDir = QUI::getPackage('quiqqer/erp')->getVarDir();
$mailFile = $pdfDir . $OutputProvider::getDownloadFileName($entityId) . '.pdf';
rename($pdfFile, $mailFile);
......@@ -247,8 +247,10 @@ public static function sendPdfViaMail(
// Additional attachments
foreach ($attachedMediaFiles as $MediaFile) {
if (!($MediaFile instanceof QUI\Projects\Media\File) &&
!($MediaFile instanceof QUI\Projects\Media\Image)) {
if (
!($MediaFile instanceof QUI\Projects\Media\File) &&
!($MediaFile instanceof QUI\Projects\Media\Image)
) {
continue;
}
......@@ -307,7 +309,7 @@ public static function getOutputTemplateProviderByPackage(string $package)
*/
public static function getTemplates(string $entityType = null): array
{
$templates = [];
$templates = [];
$outputProviders = [];
if (empty($entityType)) {
......@@ -322,12 +324,12 @@ public static function getTemplates(string $entityType = null): array
foreach (self::getAllOutputTemplateProviders() as $provider) {
/** @var OutputTemplateProviderInterface $class */
$class = $provider['class'];
$class = $provider['class'];
$package = $provider['package'];
/** @var OutputProviderInterface $OutputProvider */
foreach ($outputProviders as $OutputProvider) {
$entityType = $OutputProvider::getEntityType();
$entityType = $OutputProvider::getEntityType();
$defaultOutputTemplate = self::getDefaultOutputTemplateForEntityType($entityType);
foreach ($class::getTemplates($entityType) as $providerTemplateId) {
......@@ -342,12 +344,12 @@ public static function getTemplates(string $entityType = null): array
$defaultOutputTemplate['id'] === $providerTemplateId;
$providerTemplate = [
'id' => $providerTemplateId,
'title' => $templateTitle,
'provider' => $package,
'id' => $providerTemplateId,
'title' => $templateTitle,
'provider' => $package,
'isSystemDefault' => $provider['isSystemDefault'],
'isDefault' => $isDefault,
'entityType' => $entityType,
'isDefault' => $isDefault,
'entityType' => $entityType,
'entityTypeTitle' => $OutputProvider::getEntityTypeTitle()
];
......@@ -381,13 +383,13 @@ public static function getTemplates(string $entityType = null): array
public static function getDefaultOutputTemplateForEntityType(string $entityType): array
{
$fallBackTemplate = [
'id' => 'system_default',
'provider' => 'quiqqer/erp-accounting-templates',
'id' => 'system_default',
'provider' => 'quiqqer/erp-accounting-templates',
'hideSystemDefault' => false
];
try {
$Conf = QUI::getPackage('quiqqer/erp')->getConfig();
$Conf = QUI::getPackage('quiqqer/erp')->getConfig();
$defaultTemplates = $Conf->get('output', 'default_templates');
if (empty($defaultTemplates)) {
......@@ -419,7 +421,7 @@ public static function getDefaultOutputTemplateProviderForEntityType(string $ent
$defaultEntityTypeTemplate = self::getDefaultOutputTemplateForEntityType($entityType);
foreach (self::getAllOutputTemplateProviders() as $provider) {
if ($provider['package'] === $defaultEntityTypeTemplate['provider']) {
if (isset($defaultEntityTypeTemplate['provider']) && $provider['package'] === $defaultEntityTypeTemplate['provider']) {
return $provider['class'];
}
}
......@@ -427,7 +429,7 @@ public static function getDefaultOutputTemplateProviderForEntityType(string $ent
// Fallback: Choose next available provider
foreach (self::getAllOutputTemplateProviders() as $provider) {
/** @var OutputTemplateProviderInterface $class */
$class = $provider['class'];
$class = $provider['class'];
$providerTemplates = $class::getTemplates($entityType);
if (!empty($providerTemplates)) {
......@@ -445,7 +447,7 @@ public static function getDefaultOutputTemplateProviderForEntityType(string $ent
*/
protected static function getAllOutputProviders(): array
{
$packages = QUI::getPackageManager()->getInstalled();
$packages = QUI::getPackageManager()->getInstalled();
$providerClasses = [];
foreach ($packages as $installedPackage) {
......@@ -469,7 +471,7 @@ protected static function getAllOutputProviders(): array
}
$providerClasses[] = [
'class' => $class,
'class' => $class,
'package' => $installedPackage['name']
];
}
......@@ -488,7 +490,7 @@ protected static function getAllOutputProviders(): array
*/
protected static function getAllOutputTemplateProviders(): array
{
$packages = QUI::getPackageManager()->getInstalled();
$packages = QUI::getPackageManager()->getInstalled();
$providerClasses = [];
foreach ($packages as $installedPackage) {
......@@ -512,8 +514,8 @@ protected static function getAllOutputTemplateProviders(): array
}
$providerClasses[] = [
'class' => $class,
'package' => $installedPackage['name'],
'class' => $class,
'package' => $installedPackage['name'],
'isSystemDefault' => $installedPackage['name'] === 'quiqqer/erp-accounting-templates'
];
}
......
0% oder .
You are about to add 0 people to the discussion. Proceed with caution.
Bearbeitung dieser Nachricht zuerst beenden!
Bitte registrieren oder zum Kommentieren