<link href="/css/pages/search.css" rel="stylesheet">

<div id="page_search" class="container flex-grow-1 d-flex">
    <?php

    use phpDocumentor\Reflection\DocBlock\Tags\Var_;

    if (isset($timer) && $timer > 0) : ?>

        <div class="row py-3 w-100">
            <section class="col">
                <div class="d-flex flex-column mx-auto">
                    <p class="px-2 mb-1 text-center d-flex justify-content-center">Слишком частые запросы, повторите попытку через: <?= $timer ?? 5 ?> секунд</p>
                    <small class="mb-3 text-center d-flex justify-content-center">Подождите или нажмите на кнопку вручную</small>
                    <a class="btn text-white button_clean button_blue mx-auto" title="Перезагрузить страницу" role="button" onclick="window.location.reload();">Повторить</a>
                </div>
                <script type="text/javascript">
                    setTimeout('window.location.reload()', <?= $timer ?? 5 ?> + '000');
                </script>

            <?php else : ?>
                <?php if (isset($response) && is_array($response) && $response) : ?>

                    <div class="row py-3 w-100">
                        <section class="col">

                            <?php
                            // Инициализация
                            $covr_not_found = true;
                            $i = 0;
                            $amount = count($response);
                            ?>

                            <?php foreach ($response as $row) : ?>

                                <?php
                                // Инициализация
                                extract($row);
                                $name ?? $name = 'Без названия';
                                // $dscr ?? $dscr = 'Описание';
                                $catg ?? $catg = 'Категория';
                                $catn ?? $catn = 'Неизвестно';

                                // Инициализация обложки
                                $covr = null;
                                foreach ($imgs ?? [] as $img) {
                                    // Перебор изображений для обложки

                                    if ($img['covr'] ?? false) {
                                        // Обложка найдена

                                        $covr = $img['h150'];

                                        break;
                                    }
                                }

                                if (is_null($covr)) {
                                    // Обложка не инициализирована

                                    if (!$covr = $imgs[0]['h150'] ?? false) {
                                        // Не удалось использовать первое изображение как обложку

                                        // Запись обложки по умолчанию
                                        $covr = '/img/covers/h150/product.png';
                                    }
                                }

                                // Инициализация буфера с HTML поставок
                                $supplies_html = '';

                                // Инициализация блокировщика для пустого блока (на случай, если нет поставок, чтобы не было дубликатов вывода)
                                $empty_block = false;

                                // Инициализация счётчика поставок
                                $supplies_amount = count($row['supplies']);

                                // Инициализация указателя номера цикла
                                $supply_iterator = 1;
                                ?>
                                <?php foreach (empty($row['supplies']) || count($row['supplies']) === 0 ? [null] : $row['supplies'] as $supply) : ?>
                                    <?php

                                    // Инициализация модификатора класса
                                    if ($supplies_amount > $supply_iterator) {
                                        // Это не последняя строка с товаром и его поставками

                                        $supply_class_modifier = 'mb-1';
                                    } else {
                                        // Это последняя строка с товаром и его поставками

                                        $supply_class_modifier = '';
                                    }

                                    if (is_null($supply)) {
                                        // Поставки отсутствуют

                                        // Генерация данных об отсутствии заказов
                                        goto no_supplies;
                                    } else {
                                        // Обычная обработка поставки

                                        // Инициализация переменных
                                        extract($supply);
                                    }

                                    // Инициализация цены
                                    $price_raw = $cost;
                                    $price = $price_raw . ' ' . $supply_edge_product[0]['onec']['Цены']['Цена']['Валюта'] ?? 'руб';

                                    // Инициализация количества
                                    $amount_raw = $amount =  $supply['amnt'] ?? $supply_edge_product[0]['onec']['Количество'];
                                    if (empty($amount_raw) || $amount_raw < 1) {
                                        // Уже не используется
                                        $amount = 'Под заказ';
                                    } else {
                                        $amount .= ' шт';
                                    }

                                    if ($amount_raw < 1 || $price_raw < 1) {
                                        // Нет в наличии или цена 0 рублей

                                        // Поставки отстутвуют
                                        no_supplies:

                                        // Проверка на блокировку
                                        if ($empty_block) continue;

                                        $supplies_html .= <<<HTML
                                            <div class="row $supply_class_modifier m-0 h-100 text-right">
                                                <a class="col-auto ml-auto my-auto text-dark" href="/order/new/custom" role="button" onclick="return false;">
                                                    <small>
                                                        Заказать поиск у оператора
                                                    </small>
                                                </a>
                                            </div>
                                        HTML;

                                        // Запись блокировщика
                                        $empty_block = true;

                                        // Обновление счётчика
                                        ++$supply_iterator;

                                        continue;
                                    }

                                    // Инициализация доставки
                                    if (isset($delivery['error']) || $delivery === '?') {
                                        // Не удалось рассчитать доставку

                                        // Инициализация типа доставки
                                        $delivery_type = $delivery['type'] ?? 'auto';

                                        // Инициализация индикатора
                                        $delivery_icon = '<i class="mr-1 fas fa-truck"></i>';

                                        // Инициализация времени
                                        $delivery = '?';
                                    } else {
                                        // Удалось рассчитать доставку

                                        // Инициализация типа доставки
                                        $delivery_type = $delivery['type'] ?? 'auto';

                                        // Инициализация индикатора
                                        $delivery_icon = match ($delivery_type) {
                                            'avia' => '<i class="mr-1 fas fa-plane"></i>',
                                            default => '<i class="mr-1 fas fa-truck"></i>'
                                        };

                                        // Инициализация даты отправки
                                        try {
                                            // Взять данные из "arrivalToOspSender" (Дата прибытия на терминал-отправитель)

                                            $delivery_send_date = DateTime::createFromFormat('Y-m-d', $delivery['orderDates']['arrivalToOspSender'])->getTimestamp();
                                        } catch (Throwable $e) {
                                            // Взять данные из "pickup" (Дата передачи груза на адресе отправителя)

                                            $delivery_send_date = DateTime::createFromFormat('Y-m-d', $delivery['orderDates']['pickup'])->getTimestamp();
                                        }

                                        // Инициализация времени доставки
                                        try {
                                            // Доставка по воздуху (подразумевается), данные из "giveoutFromOspReceiver" (Дата и время, с которого груз готов к выдаче на терминале)

                                            $delivery_converted = DateTime::createFromFormat('Y-m-d H:i:s', $delivery['orderDates']['giveoutFromOspReceiver'])->getTimestamp();
                                        } catch (Throwable $e) {
                                            // Автоматическая доставка (подразумевается), данные из "arrivalToOspReceiver" (Дата прибытия натерминал-получатель)

                                            $delivery_converted = DateTime::createFromFormat('Y-m-d', $delivery['orderDates']['arrivalToOspReceiver'])->getTimestamp();
                                        }
                                        $delivery = ceil(($delivery_converted - ($delivery_send_date ?? 0)) / 60 / 60 / 24) + 1;
                                    }

                                    // Инициализация индекса аккаунта
                                    $index = $account['indx'] ?? 'Неизвестен';

                                    // Генерация
                                    $supplies_html .= <<<HTML
                                        <div class="row $supply_class_modifier m-0 text-right">
                                            <small class="ml-auto col-1 ml-2 my-auto pl-2 pr-0">$index</small>
                                            <small class="col-1 my-auto pl-2 pr-0 text-center">$amount</small>
                                            <small class="col-auto mr-2 my-auto pl-2 pr-0 text-left" title="Ориентировочно">$delivery_icon $delivery дн</small>
                                            <b class="col-auto my-auto my-auto text-center">$price</b>
                                            <a class="col-1 ml-0 py-2 text-dark d-flex button_white rounded" title="Добавить $catn в корзину" role="button" onclick="return cart_write('{$supply['_id']}', '$delivery_type');">
                                                <i class="fas fa-cart-arrow-down pr-1 m-auto"></i>
                                            </a>
                                        </div>
                                    HTML;

                                    // Обновление счётчика
                                    ++$supply_iterator;
                                    ?>

                                <?php endforeach ?>

                                <div class="col pb-2">
                                    <div class="row p-2 rounded">
                                        <img class="ml-0 h-100 img-fluid rounded" src="<?= $covr ?>" />
                                        <div class="col-3 ml-3 p-0 d-flex flex-column row_fixed_height">
                                            <a class="my-auto text-dark" href="/product/<?= $catn ?>">
                                                <h5 class="m-0"><?= $name ?></h5>
                                                <h6 class="m-0"><small><?= $catn ?></small></h6>
                                            </a>
                                        </div>
                                        <!-- <div class="col-1 ml-2 p-0 d-flex flex-column row_fixed_height">
                                            <a class="my-auto text-dark" href="/product/<?= $catn ?>">
                                                <small><?= $catg ?></small>
                                            </a>
                                        </div> -->
                                        <div class="col ml-3 p-0 d-flex flex-column">
                                            <?= $supplies_html ?>
                                        </div>
                                    </div>
                                </div>

                            <?php endforeach ?>

                        </section>
                    </div>

                <?php else : ?>
                    <?php if ($advanced ?? false) : ?>

                        <h1 class="m-auto gilroy text-center"><b>Ничего не найдено</b></h1>

                    <?php else : ?>

                        <div class="row py-3 w-100">
                            <section class="col">
                                <div class="d-flex flex-column mx-auto">
                                    <p class="m-0 py-2 d-flex justify-content-center">Ничего не найдено</p>
                                </div>
                            </section>
                        </div>

                    <?php endif ?>
                <?php endif ?>

            </section>
        </div>

    <?php endif ?>

</div>

<script src="/js/cart.js" defer></script>
<script src="/js/product.js" defer></script>
<?php if (
    !yii::$app->user->isGuest
    && (yii::$app->user->identity->type === 'administrator'
        || yii::$app->user->identity->type === 'moderator')
) : ?>
    <script src="/js/product_panel.js" defer></script>
<?php endif ?>
