Skip to content
Code-Schnipsel Gruppen Projekte
edit.php 1,88 KiB
Newer Older
<?php

/**
 * This file contains package_quiqqer_coupons_ajax_create
 */

use QUI\ERP\Coupons\CouponCodeException;
use QUI\ERP\Coupons\Handler;
use QUI\Utils\Security\Orthos;

/**
 * Edit a CouponCode
 *
 * @param array $attributes
 * @return bool - success
 */
QUI::$Ajax->registerFunction(
    'package_quiqqer_coupons_ajax_edit',
    function ($id, $attributes) {
        $id = (int)$id;
        $attributes = Orthos::clearArray(json_decode($attributes, true));

        try {
            $discountIds = [];

            if (!empty($attributes['discountIds'])) {
                $discountIds = explode(',', $attributes['discountIds']);
            Handler::editCouponCode($id, $discountIds, $attributes);
        } catch (CouponCodeException $Exception) {
            QUI::getMessagesHandler()->addError(
                QUI::getLocale()->get(
                    'quiqqer/coupons',
                    'message.ajax.edit.error',
                    [
                        'error' => $Exception->getMessage()
                    ]
                )
            );

            return false;
        } catch (QUI\Permissions\Exception $Exception) {
            throw $Exception;
        } catch (Exception $Exception) {
            QUI\System\Log::writeException($Exception);

            QUI::getMessagesHandler()->addError(
                QUI::getLocale()->get(
                    'quiqqer/coupons',
                    'message.ajax.general_error'
                )
            );

            return false;
        }

        QUI::getMessagesHandler()->addSuccess(
            QUI::getLocale()->get(
                'quiqqer/coupons',
                'message.ajax.edit.success',
                [
                    'id' => $id
                ]
            )
        );

        return true;
    },
    ['id', 'attributes'],
    'Permission::checkAdminUser'
);