Skip to content
Code-Schnipsel Gruppen Projekte
getList.php 1,92 KiB
Newer Older
  • Learn to ignore specific revisions
  • 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\Permissions\Permission;
    
    use QUI\Utils\Grid;
    use QUI\Utils\Security\Orthos;
    
    Patrick Müller's avatar
    Patrick Müller committed
    
    /**
     * 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 = [];
            $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
    
                        try {
                            $User = $Users->get($usage['userId']);
                        } catch (QUI\Exception $Exception) {
                            continue;
                        }
    
    
                        $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'
    );