<?php

declare(strict_types=1);

use yii;
use yii\bootstrap\ActiveForm;

use app\models\AccountEdgeOrder;
use app\models\Order;
use app\models\Settings;

?>
<?php if (!empty($moderator_data)) : ?>
    <?php foreach ($moderator_data as $moderator_data) : ?>
        <div id="<?= $moderator_data['order']->_key ?>_panel" class="page_order_panel mb-2 py-3 px-4 rounded">
            <h5 class="row mt-1 mb-3">
                <?php
                // Инициализация времени отправки заказа
                $date = time();

                foreach ($moderator_data['order']->jrnl as $entry) {
                    // Перебор записей в журнале

                    if ($entry['action'] === 'requested') {
                        // Найдена запись со временем запроса заказа

                        if (empty($date) || $date <= $entry['date']) {
                            // Буфер не инициализирован или в него записано более старое событие

                            // Запись в буфер
                            $date = $entry['date'];
                        }
                    }
                }

                preg_match_all('/UTC([\+\-0-9:]*)/', $account->zone ?? Settings::searchActive()['timezone_default'] ?? 'UTC+3', $timezone);
                $timezone = $timezone[1][0];

                // Конвертация данных из буфера
                $date = [
                    'H:i' => (new DateTime())->setTimestamp($date)->setTimezone(new DateTimeZone($timezone))->format('H:i'),
                    'd.m.Y' => (new DateTime())->setTimestamp($date)->setTimezone(new DateTimeZone($timezone))->format('d.m.Y')
                ];

                ?>
                <p class="col-auto ml-1 font-weight-bold">#<?= $moderator_data['order']->_key ?></p>
                <p class="col-auto mr-1 font-weight-bold">
                    <span><small><small><?= $date['H:i'] ?? 'Неизвестно' ?></small></small></span>
                    <span><?= $date['d.m.Y'] ?? 'Неизвестно' ?></span>
                </p>
            </h5>
            <div class="dropdown-divider mb-3"></div>
            <div class="row px-3">
                <div id="orders_panel_supplies_<?= $moderator_data['order']->_key ?>" class="col-3 unselectable">
                    <?php if (!empty($moderator_data['supplies'])) : ?>
                        <?php
                        // Инициализация счетчика поставок для отрисовки горизонтального разделителя
                        $count = 1;
                        ?>

                        <?php foreach ($moderator_data['supplies'] as $prod => $list) : ?>
                            <?php foreach ($list as $catn => $deliveries) : ?>
                                <?php foreach ($deliveries as $delivery => $supply) : ?>
                                    <?php
                                    // Инициализация обложки
                                    $covr = null;

                                    foreach ($supply['product']->imgs ?? [] as $img) {
                                        // Перебор изображений для обложки

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

                                            $covr = $img['h150'];

                                            break;
                                        }
                                    }

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

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

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

                                    if ($supply['amount'] > 0) {
                                        // Пройдена проверка на количество поставок в заказе

                                        if (Order::checkSuppliesStts($supply['edge'])) $status = "<span id=\"{$moderator_data['order']->_key}_{$prod}_{$catn}_{$delivery}_supply_stts_indicator_icon\" class=\"ml-auto my-auto fas fa-check\"></span>";
                                        else $status = '';

                                        // Инициализация иконки
                                        $icon = $delivery === 'avia' ? 'fa-plane' : 'fa-truck';

                                        // Генерация HTML
                                        echo <<<HTML
                                            <a id="{$moderator_data['order']->_key}_{$prod}_{$catn}_{$delivery}_supply" class="row mb-2 p-2 px-0 rounded row_supply" type="button" onclick="return orders_supply_edit('{$moderator_data['order']->_key}', '$prod', '$catn', '$delivery');">
                                                <img class="col-auto px-0 h-100 img-fluid rounded" src="$covr" />
                                                <p id="{$moderator_data['order']->_key}_{$prod}_{$catn}_{$delivery}_supply_stts_indicator" class="col d-flex text-dark">
                                                    {$catn}
                                                    <small class="ml-2 my-auto fas $icon"></small>
                                                    $status
                                                </p>
                                            </a>
                                        HTML;
                                    }
                                    ?>
                                    <?php if ($count++ < count($moderator_data['supplies'])) : ?>
                                        <div class="dropdown-divider mb-2"></div>
                                    <?php endif ?>
                                <?php endforeach ?>
                            <?php endforeach ?>
                        <?php endforeach ?>
                    <?php else : ?>
                        <div class="row">
                            <p>Поставки не найдены</p>
                        </div>
                    <?php endif ?>
                </div>
                <div id="orders_panel_edit_<?= $moderator_data['order']->_key ?>" class="px-4 col-6 d-flex flex-column">
                    <p class="my-auto">Выберите поставку</p>
                </div>
                <div id="orders_panel_info_<?= $moderator_data['order']->_key ?>" class="col-3 d-flex flex-column">
                    <?php $form = ActiveForm::begin([
                            'id' => 'form_profile_settings',
                            'action' => false,
                            'fieldConfig' => [
                                'template' => '{label}{input}',
                            ],
                            'options' => [
                                'onsubmit' => 'return false;',
                                'class' => 'row'
                            ]
                        ]);

                        // Инициализация ребра до заказа
                        $account_edge_order = AccountEdgeOrder::searchByOrder($moderator_data['order']->readId())[0];
                        ?>

                        <?= $form->field($account_edge_order, 'stts', ['options' => ['class' => "mb-1 w-100"]])
                            ->dropDownList(Order::statusListInRussian($account_edge_order->stts), [
                                'onChange' => "return orders_status_edit('{$moderator_data['order']->_key}', this);",
                                'data-old-value' => $account_edge_order->stts
                            ])->label(false); ?>
                        <small class="d-block mb-1 w-100 text-center"><b>Покупатель будет уведомлён</b></small>
                    <?php ActiveForm::end(); ?>
                    </div>
            </div>
            <script defer>
                document.addEventListener(
                    'DOMContentLoaded',
                    function() {
                        order_init('<?= $moderator_data['order']->_key ?>');
                    },
                    false
                );
            </script>
        </div>
    <?php endforeach ?>
<?php else : ?>
    <div class="page_order_panel py-3 px-4 rounded">
        <p class="text-center">Заказов нет</p>
    </div>
<?php endif ?>
