<?php

use yii;

use app\models\connection\Dellin;

use DateTime;

?>

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

<div id="page_cart" class="container mb-auto py-3">
    <article class="py-3 px-4 rounded">
        <h4 class="ml-4 mt-2 mb-4"><i class="fas fa-shopping-cart mr-2"></i>Корзина</h4>
        <div class="col mb-4 list rounded overflow-hidden">
            <div class="row py-2">
                <div class="pl-3 mr-1">
                    <input id="checkbox_cart_all" type="checkbox" onchange="return cart_list_checkbox(this);" />
                </div>
                <div class="col-2">
                    <span>Артикул</span>
                </div>
                <div class="col-4">
                    <span>Описание</span>
                </div>
                <div class="col-1 ml-auto  px-0 text-center">
                    <span>Количество</span>
                </div>
                <div class="col-2 text-right">
                    <span>Доставка</span>
                </div>
                <div class="col-2 mr-3 text-right">
                    <span>Стоимость</span>
                </div>
            </div>
            <?php
            if (isset($connections) && !empty($connections)) {
                foreach ($connections as $connection) {
                    // Перебор поставок

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

                    // Инициализация цены
                    $price_raw = $cost;

                    // Инициализация комментария
                    $comment = $order_edge_supply[0]['comm'] ?? 'Комментарий к заказу';

                    if ($amount['auto'] > 0) {
                        // Найдены поставки с автоматической доставкой

                        // Инициализация цены
                        $price_auto = $price_raw['auto'] . ' ' . $currency;

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

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

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

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

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

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

                                // Оставлено на всякий случай для дальнейших разбирательств

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

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

                        // Генерация HTML
                        echo <<<HTML
                            <div class="row py-2 cart_list_target">
                                <div class="col">
                                    <div class="row">
                                        <div class="pl-3 my-auto mr-1">
                                            <input id="cart_list_checkbox_{$supply['catn']}_auto" type="checkbox" onchange="return cart_list_checkbox(this);"/>
                                        </div>
                                        <div class="col-2 my-auto">
                                            {$supply['catn']}
                                        </div>
                                        <div class="col-4 my-auto">
                                            {$supply['dscr']}
                                        </div>
                                        <div class="col-1 my-auto ml-auto">
                                            <input id="cart_list_amnt_{$supply['catn']}_auto" class="form-control text-center" type="text" value="{$amount['auto']}" onchange="return cart_list_amount_update('{$supply['catn']}', 'auto', this)" aria-invalid="false">
                                        </div>
                                        <div class="col-2 my-auto text-right">
                                            <p title="Ориентировочно"><i class="mr-1 fas fa-truck"></i> <b>~</b>$delivery_auto дн</p>
                                        </div>
                                        <div class="col-2 my-auto mr-3 text-right">
                                            $price_auto
                                        </div>
                                    </div>
                                    <div class="dropdown-divider"></div>
                                    <div class="row mb-1">
                                        <div class="col-12">
                                            <p id="cart_list_comment_{$supply['catn']}_auto" class="mt-0 ml-0 text-break pointer-event" role="button" onclick="return cart_list_comment_edit('{$supply['catn']}', 'auto', this);">$comment</p>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        HTML;
                    }

                    if ($amount['avia'] > 0) {
                        // Найдены поставки с доставкой по воздуху

                        // Инициализация цены
                        $price_avia = $price_raw['avia'] . ' ' . $currency;

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

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

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

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

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

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

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

                                // Оставлено на всякий случай для дальнейших разбирательств

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

                        // Генерация HTML
                        echo <<<HTML
                            <div class="row py-2 cart_list_target">
                                <div class="col">
                                    <div class="row">
                                        <div class="pl-3 my-auto mr-1">
                                            <input id="cart_list_checkbox_{$supply['catn']}_avia" type="checkbox" onchange="return cart_list_checkbox(this);"/>
                                        </div>
                                        <div class="col-2 my-auto">
                                            {$supply['catn']}
                                        </div>
                                        <div class="col-4 my-auto">
                                            {$supply['dscr']}
                                        </div>
                                        <div class="col-1 my-auto ml-auto">
                                            <input id="cart_list_amnt_{$supply['catn']}_avia" class="form-control text-center" type="text" value="{$amount['avia']}" onchange="return cart_list_amount_update('{$supply['catn']}', 'avia', this)" aria-invalid="false">
                                        </div>
                                        <div class="col-2 my-auto text-right">
                                            <p title="Ориентировочно"><i class="mr-1 fas fa-plane"></i> <b>~</b>$delivery_avia дн</p>
                                        </div>
                                        <div class="col-2 my-auto mr-3 text-right">
                                            $price_avia
                                        </div>
                                    </div>
                                    <div class="dropdown-divider"></div>
                                    <div class="row mb-1">
                                        <div class="col-12">
                                            <p id="cart_list_comment_{$supply['catn']}_avia" class="mt-0 ml-0 text-break pointer-event" role="button" onclick="return cart_list_comment_edit('{$supply['catn']}', 'avia', this);">$comment</p>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        HTML;
                    }
                }
            } else {
                echo <<<HTML
                    <div class="row py-2">
                        <div class="mx-auto py-2">
                            Корзина пуста
                        </div>
                    </div>
                HTML;
            }
            ?>
        </div>
        <div class="row mb-2 mx-0">
            <select id="cart_list_action" class="form-control mr-3 button_clean w-auto" name="CartListAction">
                <option value="none" hidden>Действие с выбранными</option>
                <option value="delete" onclick="return cart_list_delete();">Удалить</option>
            </select>
            <a class="mr-3 btn button_red button_clean" title="Очистить корзину" href="/cart" role="button" onclick="return cart_delete();">
                Очистить
            </a>
            <p class="ml-auto mr-3 cart_field_cost">
                <span id="cart_cost">0</span>
                руб
            </p>
            <a class="btn button_clean button_blue" title="Оформить заказ" href="/orders" role="button" onclick="return cart_request();">
                Оформить заказ
            </a>
        </div>
    </article>
</div>

<script src="/js/textarea.js" defer></script>
<script src="/js/cart.js" defer></script>
<script defer>
    if (document.readyState === "complete") {
        cart_cost_calculate();
    } else {
        document.addEventListener('DOMContentLoaded', function() {
            cart_cost_calculate();
        }, false);
    }
</script>
