Skip to content
Code-Schnipsel Gruppen Projekte
getList.php 1,86 KiB
Newer Older
Patrick Müller's avatar
Patrick Müller committed
<?php

/**
 * This file contains package_quiqqer_coupons_ajax_getList
 */

use QUI\ERP\Coupons\Handler;
use QUI\Utils\Security\Orthos;
use QUI\Utils\Grid;
use QUI\Permissions\Permission;

/**
 * Get list of CouponCodes
 *
 * @param array $searchParams
 * @return array
 */
QUI::$Ajax->registerFunction(
    'package_quiqqer_coupons_ajax_getList',
    function ($searchParams) {
        Permission::hasPermission(Handler::PERMISSION_VIEW);

        $searchParams = Orthos::clearArray(\json_decode($searchParams, true));
        $couponCodes  = [];
Patrick Müller's avatar
Patrick Müller committed
        $Users        = QUI::getUsers();
        $L            = QUI::getLocale();
Patrick Müller's avatar
Patrick Müller committed

        try {
            foreach (Handler::search($searchParams) as $CouponCode) {
                $couponCode = $CouponCode->toArray();
Patrick Müller's avatar
Patrick Müller committed

                foreach ($couponCode['usages'] as $k => $usage) {
Patrick Müller's avatar
Patrick Müller committed
                    // User
                    $User                                 = $Users->get($usage['userId']);
                    $couponCode['usages'][$k]['userName'] = $User->getUsername();
Patrick Müller's avatar
Patrick Müller committed

                    // Date
                    $Date                             = new DateTime($usage['date']);
                    $couponCode['usages'][$k]['date'] = $L->formatDate($Date->getTimestamp());
Patrick Müller's avatar
Patrick Müller committed
                }

                $couponCodes[] = $couponCode;
Patrick Müller's avatar
Patrick Müller committed
            }
        } catch (\Exception $Exception) {
            QUI\System\Log::writeException($Exception);

            QUI::getMessagesHandler()->addError(
Patrick Müller's avatar
Patrick Müller committed
                QUI::getLocale()->get(
                    'quiqqer/coupons',
Patrick Müller's avatar
Patrick Müller committed
                    'message.ajax.general_error'
                )
            );

            return false;
        }

        $Grid = new Grid($searchParams);

        return $Grid->parseResult(
            $couponCodes,
Patrick Müller's avatar
Patrick Müller committed
            Handler::search($searchParams, true)
        );
    },
Patrick Müller's avatar
Patrick Müller committed
    ['searchParams'],
Patrick Müller's avatar
Patrick Müller committed
    'Permission::checkAdminUser'
);