require(['qui/QUI'], function (QUI) { "use strict"; function getCouponPrice(couponId, vat) { return new Promise(function (resolve) { require(['Ajax'], function (QUIAjax) { QUIAjax.get('package_quiqqer_coupons_ajax_backend_getCouponPrice', resolve, { 'package': 'quiqqer/coupons', couponId : couponId, vat : vat }); }); }); } QUI.addEvent('quiqqerErpPriceFactorWindow', function (PriceFactorWindow) { const Content = PriceFactorWindow.getContent(); const Buttons = Content.getElement('.quiqqer-erp-priceFactors-button'); const ArticleList = PriceFactorWindow.getArticleList(); require(['Locale'], function (QUILocale) { new Element('button', { 'class': 'qui-button', html : '<span class="fa fa-credit-card-alt"></span>', title : QUILocale.get('quiqqer/coupons', 'add.coupon.priceFactor'), styles : { 'float' : 'right', marginRight: '10px' }, events : { click: function (e) { e.stop(); require([ 'package/quiqqer/coupons/bin/backend/controls/Window' ], function (CouponWindow) { new CouponWindow({ multiple: true, events : { onSubmit: function (Instance, value) { if (!value.length) { return; } const currency = ArticleList.getAttribute('currency'); const vat = ArticleList.getVat(); let couponData; getCouponPrice(value[0].id, vat).then(function (result) { couponData = result; return PriceFactorWindow.getPriceFactorData( couponData.price, vat, currency ); }).then((data) => { let priceFactor = { calculation : 2, calculation_basis: 2, description : couponData.title, identifier : "", index : ArticleList.countPriceFactors(), nettoSum : data.nettoSum, nettoSumFormatted: data.nettoSumFormatted, sum : data.sum, sumFormatted : data.sumFormatted, title : couponData.title, value : data.sum, valueText : data.valueText, vat : vat, visible : 1 }; ArticleList.addPriceFactor(priceFactor); PriceFactorWindow.refresh(); }); } } }).open(); }); } } }).inject(Buttons); }); }); });