Skip to content
Code-Schnipsel Gruppen Projekte
load.js 4,01 KiB
Newer Older
Henning Leutz's avatar
Henning Leutz committed
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
Henning Leutz's avatar
Henning Leutz committed
                });
            });
        });
    }

    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',
Henning Leutz's avatar
Henning Leutz committed
                    marginRight: '10px'
                },
                events: {
Henning Leutz's avatar
Henning Leutz committed
                    click: function (e) {
                        e.stop();

                        require([
                            'package/quiqqer/coupons/bin/backend/controls/Window'
                        ], function (CouponWindow) {
                            new CouponWindow({
                                multiple: true,
                                events: {
Henning Leutz's avatar
Henning Leutz committed
                                    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,
Henning Leutz's avatar
Henning Leutz committed
                                                calculation_basis: 2,
                                                description: couponData.title,
                                                identifier: "",
                                                index: ArticleList.countPriceFactors(),
                                                nettoSum: data.nettoSum,
Henning Leutz's avatar
Henning Leutz committed
                                                nettoSumFormatted: data.nettoSumFormatted,
                                                sum: data.sum,
                                                sumFormatted: data.sumFormatted,
                                                title: couponData.title,
                                                value: data.sum,
                                                valueText: data.valueText,
                                                vat: vat,
                                                visible: 1
Henning Leutz's avatar
Henning Leutz committed
                                            };

                                            ArticleList.addPriceFactor(priceFactor);
                                            PriceFactorWindow.refresh();
                                        });
                                    }
                                }
                            }).open();
                        });
                    }
                }
            }).inject(Buttons);
        });
    });
});